# Stackbone agent manifest. Schema: stackbone.ai/v1.# Reference: https://docs.stackbone.ai/docs/cli/reference/agent-yaml/
apiVersion: stackbone.ai/v1name: starter-ragruntime: engine: node entry: src/index.tsdatabase: schema: ./src/schema.ts migrations: ./.stackbone/migrationsdev: autoMigrate: falserag: embeddingModel: openai/text-embedding-3-small autoMigrate: trueDeclare what your agent needs. We provision it per install.
You declare two blocks — a database and a retrieval index. Every agent also gets a full data plane: storage, a model key, queues and tracing. At install the control plane materializes all of it and injects the credentials. The creator never hardcodes a secret.
Two blocks are real keys in the strict agent.yaml schema — declaring them gates the resource they bind to. The rest of the data plane is provisioned for every agent whether you name it or not.
- database:Dedicated Postgres
relational + pgvector + tsvector + KV + _queue_jobs
- DATABASE_URL
- rag:pgvector index on the same Postgres
embeddingModel from the manifest
no separate credential — rides DATABASE_URL
- Object storageprovisioned by defaultObject storage bucket scoped to the agent
S3-compatible blob storage
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- S3_ENDPOINT
- Model accessprovisioned by defaultOpenRouter sub-key · monthly limit
openai SDK with a base-URL override
- OPENROUTER_API_KEY
- OPENROUTER_BASE_URL
advanced document parsing, pay-per-page
- LLAMA_PARSE_API_KEY
The saga writes the credentials straight into the agent's environment. Here is what printenv shows — every value masked.
- events / triggers
- pricing
- metadata
The shipped stackbone.ai/v1 manifest is reduced and strict; these are declared elsewhere today and land in the manifest as it grows (triggers, secrets, egress). Shown here as pending — never as live YAML.
Declare it once. We provision every install.