Amplifier Builds Amplifier

The GitHub Copilot provider story

Why a Copilot provider exists

Amplifier needs frontier models it doesn't host

GitHub Copilot already serves those models. A Copilot provider is the pragmatic bridge — access to frontier models without owning LLM infrastructure.

And that bridge isn't a sketch — it shipped.

It shipped as a public module — and it's actively sustained

A public microsoft/amplifier-module-provider-github-copilot: a compact module backed by a large test surface, unlocking 18 models with claude-opus-4.5 as the default.

Real and working — which makes the failure that came next matter.

4,786
lines of source across 11 Python files
571
test functions across 20 test files
18
AI models (Copilot SDK v0.1.24)
65
commits across all branches

The first version was fused to the SDK's agent loop

In one forensic session (a1a0af17), a single prompt ran away: the SDK's preToolUse deny returned an error, the LLM retried, and the loop accumulated tool calls until it spun for ~20 minutes.

One prompt. And it was captured verbatim in a regression test.

305
SDK turns in one session
607
tool calls (303 pairs)
~20
minutes spinning
303
bug-hunter agent spawns

Every SDK release deepened the wound

24 of 65 commit subjects begin with fix or hotfix — including a dedicated hotfix/sdk-0.1.28-permission-handler branch and a test-suite fix for SDK 0.1.28 compatibility.

Firefighting the SDK, release after release. That's what the rebuild had to end.

24 / 65
commit subjects begin with fix or hotfix
0.1.28
SDK version behind the permission-handler hotfix branch

The SDK Driver captures tool calls on the first turn — then kills the loop

The rebuild introduced an SDK Driver pattern (sdk_driver.py, 616 lines) — LoopController, ToolCaptureStrategy, CircuitBreaker, and SdkEventHandler — that captures tool calls early instead of letting the SDK's internal loop spiral.

The loop is defused. But defusing one incident isn't the same as staying safe.

A contract suite fails a test before the SDK breaks production

The tests/sdk_assumptions/ suite pins the SDK's undocumented behaviors — event ordering, deny hook, session lifecycle, tool registration — so an upstream change fails a test first. The SDK is confined to one pinned dependency.

SDK churn becomes a caught test, not a hotfix. And who did all this work?

The agent ecosystem authored the module that feeds it

45 of 65 commits carry a Co-Authored-By: Amplifier trailer, and 41 note "Generated with Amplifier." Amplifier built and sustains its own Copilot provider.

A fragile integration became a self-maintained one. Here's the pattern.

45 / 65
commits carry a Co-Authored-By: Amplifier trailer
41
commits note "Generated with Amplifier"
The pattern to keep

Isolate the dependency, and fragile becomes durable

Put the volatile SDK behind a driver and a contract test suite, and a hotfix-on-hotfix integration turns into a durable, self-maintained one — promoted to a well-known provider with zero Node.js and env-var auth (PR #9).

Beyond this one provider: driver + contract is the reusable move.

Sources

Sources & Research Methodology

Shipped & actively sustained

Source repo: git@github.com:microsoft/amplifier-module-provider-github-copilot.git (public microsoft org). Latest commit 2026-03-03; 65 commits across all branches.

Data as of: March 3, 2026.

Commands run:

Primary contributors: Brian Krabach (31 commits), Marc Goodner (16), Mowri Mohan (6), HDMowri (5); Amplifier agent co-authored 45 of 65 commits.

Gaps: The 305-turn/607-tool/~20-min figures come from the regression test docstring's documented "Original Failure," not a live re-run. v1.0.1 test results (Windows 692 pass / WSL 694 pass / 95% coverage) are self-reported inside commit 4a67053. "No prior Copilot provider existed" is narrative framing; a deprecated, different-implementation predecessor did exist.

More Amplifier Stories