The composition model that makes AI agents as simple as YAML
and as powerful as your imagination
1---
2bundle:
3 name: recipe-author
4 version: 1.0.0
5 description: Conversational recipe expert
6
7includes:
8 - bundle: git+https://...amplifier-foundation@main
9 - bundle: foundation:behaviors/recipes
10 - bundle: foundation:behaviors/amplifier-dev
11
12context:
13 - path: instructions.md
14---
Name, version, purpose — who this agent is
Foundation + two behaviors. Three lines that inherit 50+ agents, 10+ tools, 15+ hooks, and 8 providers
Custom context — the markdown body below the frontmatter is the system prompt. This line adds more.
includes: [foundation]context: [instructions]includes: not configures:Instead of hundreds of config flags, Amplifier uses includes: chains. Each behavior is a composable capability. Snap them together like crystalline bonds.
Delegation with context inheritance, session resume, self-delegation, and provider selection
Live terminal rendering of thinking blocks, tool calls, and token usage display
Multi-step workflows with approval gates, foreach loops, and automatic checkpointing
Progress tracking with visual bar and analysis-paralysis detection after 30 reads
includes: line. No merge conflicts. Just additive composition.
A behavior packages one capability — tools, hooks, agents, context, or any combination — into a composable unit. Anyone can include your behavior without inheriting your entire configuration.
bundle:
name: behavior-todo-reminder
tools:
- module: tool-todo
hooks:
- module: hooks-todo-reminder
- module: hooks-todo-display
The tool-todo module gives agents the ability to create and manage task lists
One hook reminds the agent about pending tasks. The other renders a visual progress bar in the terminal.
Any bundle gets all three by adding one line:- bundle: foundation:behaviors/todo-reminder
Same file format. Same tools: section. Same composition rules. An agent is a bundle with meta: instead of bundle: — loaded into a spawn context instead of the root session.
---
bundle:
name: recipe-author
version: 1.0.0
includes:
- bundle: foundation
tools:
- module: tool-recipes
---
---
meta:
name: bug-hunter
description: "Debugging expert"
tools:
- module: tool-filesystem
- module: tool-bash
- module: tool-lsp
---
Each layer adds exactly what it owns. Nothing bleeds across boundaries.
Resolution is parallel. Includes are loaded via asyncio.gather() with diamond deduplication and circular-reference detection.
Mount order is fixed. Orchestrator → Context → Providers → Tools → Hooks. Each loader.load() returns a mount function registered on the ModuleCoordinator.
Data as of: February 26, 2026
Feature status: Active — core composition model powering all Amplifier sessions
Research performed:
~/dev/amplifier-foundation/, ~/dev/amplifier-core/, and 4 additional cloned reposfind . -name "bundle.md" across all repos (6 local, 16 via MODULES.md catalog)find . -path "*/agents/*.md" (18 local production agents found)behaviors/ directories (19 behaviors across repos)MODULES.md catalogregistry.py, bundle.py, and session.pyGaps:
Primary repository: microsoft/amplifier-foundation (composition engine), microsoft/amplifier-core (kernel)
The composition is the architecture.