Summary
Add a pre_seed phase that runs before preboot hook. This phase downloads zip archives from S3 and extracts them to the home directory, seeding the agent environment before OpenAB starts.
Motivation
Currently, users who want to pre-populate their agent environment need to manually install AWS CLI and write custom scripts to download and extract archives. A built-in pre_seed phase reduces this setup cost significantly.
Proposed Behavior
- Timing:
pre_seed runs before preboot in the lifecycle: pre_seed → preboot → (running) → pre_shutdown
- Source: Supports
s3:// URIs (zip files only for now)
- Multiple sources: Up to 5 zip URLs, extracted in order (first → last)
- Layering: Later archives overwrite earlier ones — like layers in a container image
- Extraction: Downloads and extracts to
$HOME by default
- Format: ZIP only (initial scope)
Example Configuration
pre_seed:
sources:
- s3://my-bucket/base-env.zip # Layer 1: base tools & configs
- s3://my-bucket/shared-memory.zip # Layer 2: shared team memory
- s3://my-bucket/agent-specific.zip # Layer 3: agent-specific overrides
# extracts to $HOME by default
# max 5 sources
Layer Concept
Layer 5 (last) ─── highest priority, overwrites all below
Layer 4 ─── overwrites layers 1-3
Layer 3 ─── overwrites layers 1-2
Layer 2 ─── overwrites layer 1
Layer 1 (first) ─── base layer
─────────────────
$HOME
Each zip is downloaded and extracted sequentially. Files from later layers overwrite files from earlier layers if paths conflict.
Scope (v1)
Future Considerations
- Support additional archive formats (tar.gz, tar.zst)
- Support custom extraction paths per layer
- Support HTTP(S) URLs
- Conditional layers (e.g., only extract if a file does not exist)
Summary
Add a
pre_seedphase that runs beforepreboothook. This phase downloads zip archives from S3 and extracts them to the home directory, seeding the agent environment before OpenAB starts.Motivation
Currently, users who want to pre-populate their agent environment need to manually install AWS CLI and write custom scripts to download and extract archives. A built-in
pre_seedphase reduces this setup cost significantly.Proposed Behavior
pre_seedruns beforeprebootin the lifecycle:pre_seed → preboot → (running) → pre_shutdowns3://URIs (zip files only for now)$HOMEby defaultExample Configuration
Layer Concept
Each zip is downloaded and extracted sequentially. Files from later layers overwrite files from earlier layers if paths conflict.
Scope (v1)
$HOMEFuture Considerations