breadExplicit by design.
A file-system-convention framework for building, running, and observing AI agents on the Vercel AI SDK — no silent defaults, no auto-wired fallbacks.
A file-system-convention framework for building, running, and observing AI agents on the Vercel AI SDK — no silent defaults, no auto-wired fallbacks.


bread refuses to guess on your behalf. Store, transport, and providers are arguments you pass, not conventions it infers — swap @breadai/store-sqlite for @breadai/store-postgres and nothing else in the app changes.
// bread.config.ts — store/transport/providers are never inferred
export default defineConfig({
entrypoints: ['researcher', 'writer'],
store: store({ path: './bread.db' }), // @breadai/store-sqlite
transport: transport(), // @breadai/transport-http-chunked
providers: providerLlm, // @breadai/provider-llm
})No registry, no decorators — an agent is a folder.
Dev server, build validation, production start, and an interactive REPL — the same commands from prototype to deploy. See the full list in CLI.
| Command | What it does |
|---|---|
bread dev | Dev server with hot reload |
bread build | Validate every agent's schema + model config |
bread start | Production server (no watch) |
bread chat [agent] | Interactive REPL — supports human-in-the-loop |
bread eval [path] | Run evals in agents/**/evals/*.eval.ts |
One choke point assigns a per-run seq, persists to the crumb log, and fans out to the client, your plugins, and other replicas — the same well-defined stream everywhere. See architecture.
curl -N -X POST localhost:3000/agents/researcher/run \
-d '{"input":"survey vector db options"}'
# → agent:run:start, text:delta, tool:call, tool:result, agent:run:endCompose agents without reaching for a second framework: