includes, and the engine merges everything with well-defined rules โ 1,347 lines of composition logic.
How Amplifier bundles compose, merge, and load โ the engine that makes layered agent systems possible
Every new project re-declares the same providers, tools, and hooks. No inheritance means no consistency across projects.
When two configs define context files with the same name, one silently overwrites the other. No namespacing, no warning.
Want foundation behaviors plus your domain logic? Copy-paste everything. Changes upstream? Copy-paste again.
includes, and the engine merges everything with well-defined rules โ 1,347 lines of composition logic.
includes list from your bundlefoundation:behaviors.md) to avoid collisions.Each layer adds capabilities without seeing the layers above. Foundation provides the base. Domain bundles add specialization. Your bundle adds the final instruction and custom agents. compose() flattens this stack into one unified configuration.
Data as of: February 20, 2026
Feature status: Active โ bundle composition is the core loading mechanism in amplifier-foundation
Repository: amplifier-foundation (local clone)
Research performed:
find . -name "bundle.py" -path "*/amplifier_foundation/*" โ 1 filewc -l amplifier_foundation/bundle.py โ 1,347 linesgrep -n "compose|merge|include" bundle.py โ 30+ matches analyzedgrep -n "deep.*merge|replace|accumulate" bundle.py โ 10 matchessed -n '95,215p' bundle.py โ full compose() method verifiedgit log --oneline | wc -l โ 317git log --format="%an" | sort | uniq -c | sort -rn โ 5 entries (incl. bot)Gaps: PR-level data not queried. Merge strategy descriptions from source code docstrings and comments, not runtime testing. Bundle loading performance not measured.
Primary contributor: Brian Krabach โ 299 of 317 commits (~94.3%)
Add includes: [foundation] to your bundle.yaml and inherit the entire foundation layer โ providers, tools, hooks, agents, and behaviors.