Capabilities that layer, share, and delegate
Tune one monolithic configuration in place and you can't layer, share, or delegate it. Amplifier splits mechanism from policy: capabilities become composable bundles over a tiny kernel of module protocols.
And that kernel is smaller and more countable than you'd expect.
The kernel defines six @runtime_checkable Protocol interfaces in amplifier_core/interfaces.py. Modules implement them by structural subtyping — no inheritance required.
Six interfaces is the count. But the deeper choice is what the kernel refuses to do.
The core bundle.md states the kernel “provides MECHANISMS only, never POLICIES.” Orchestration, provider, and logging choices live in swappable modules, not the center.
That's why raw protocols alone still aren't something you can hand to a teammate.
A bare protocol can't be layered, shared, or reused across teams.
Mechanisms are necessary — but they aren't yet a capability you can pass around. Something has to package them.
On top of the protocols, amplifier-foundation adds a bundle system: “One concept (bundle), one mechanism (includes: + compose()).” The foundation bundle composes 20 other bundles this way.
Once bundles compose, the reusable units they carry — like agents — become shareable too.
Each agent is a markdown file with YAML frontmatter (meta, model_role, provider_preferences, tools) plus an instruction body. Sixteen reusable agents ship in amplifier-foundation/agents/.
These named specialists are exactly what the next move hands work to.
A first-class tool-delegate module (wired via behaviors/agents.yaml, v2.0.0) lets a session delegate real work to specialist agents — “Delegation is not optional — it is the PRIMARY operating mode.”
Composition stops being an architecture diagram and starts doing the work.
Because the split holds, bundles are even polyglot — a module declares a python / rust / wasm / grpc transport in amplifier.toml. Downstream, a themed-bundles collection packages 15 archetype bundles to layer and share.
The center stays still; the edges — and the sharing — move fast.
Data as of: latest amplifier-core HEAD dated 2026-02-17.
Feature status: Kernel protocols, bundle composition, and agents/delegate are all shipped & stable in microsoft/amplifier-core and microsoft/amplifier-foundation.
Commands run:
grep -cE '^class .*\(Protocol\)' amplifier_core/interfaces.py → 6 (Orchestrator, Provider, Tool, ContextManager, HookHandler, ApprovalProvider)grep -n '2,600' README.md bundle.md (README.md:7, bundle.md:18 — documented design claim, not a raw line count)grep -c '^\s*- bundle:' bundle.md → 20; README.md:159 “includes: + compose()”ls agents/*.md | wc -l → 16; frontmatter from head -40 agents/zen-architect.mdcat behaviors/agents.yaml (tool-delegate, v2.0.0, max_turns 10, exclude_tools [tool-delegate])head -60 context/POLYGLOT_BUNDLES.md (python/rust/wasm/grpc transports)git log -1 --format='%ad' --date=short → 2026-02-17; core initial commit f6d8ed6 (2025-10-08)git shortlog -sn HEADGaps: “~2,600 lines” is the project's documented characterization; measured amplifier_core/*.py is 4,752 top-level / 8,134 full tree. The “monolith” contrast is authored narrative framing, not a repo quote.
Primary contributors: Brian Krabach (amplifier-core 130 commits; amplifier-foundation 470 commits), with Diego Colombo, Samuel Lee, Marc Goodner, Salil Das, Sam Schillace, and others.