One Model Can't Review Itself

Provider diversity turns blind spots into caught bugs

The Problem

You wouldn't have one person review their own code

Yet a single model auditing itself reproduces its own systematic blind spots — one mind checking itself keeps exactly the same gaps.

So what does it take to make the reviewer genuinely see what the author missed?

The fix already ships as running code

amplifier-foundation's ensemble example runs the SAME prompt across multiple providers to "reduce bias from a single model" via consensus voting — and it exposes real distinct providers, not just Anthropic.

But adding more reviewers only helps if they actually differ.

421
lines in examples/17_multi_model_ensemble.py
5
provider bundle YAMLs under providers/
2
distinct modules: provider-anthropic + provider-openai
The Catch

Diversity only helps if reviewers actually differ

A copy of the same model brings the same blind spots. A reviewer that trusts the first one's report adds nothing. Sameness and believed self-reports are the failure mode any real swarm has to defeat.

amplifier-next defeats it by construction — here's how.

The auditor is a different model that re-runs the work

In amplifier-next's v0.2 harness, the L1 auditor is deliberately pinned to a different model family than the executor "for diversity" — and it never trusts the executor's self-report.

That difference is wired in through provider preference, not left to chance.

Executor and auditor invert their top provider

The executor leads with Anthropic; the auditor leads with Copilot. The top preference is swapped between the two roles, so each role's blind spot is checked by the other provider.

Difference within one task. The council extends independence across many reviewers.

executor
prefers anthropic / claude-haiku-*, then github-copilot / gpt-5-mini
auditor
prefers github-copilot / gpt-5-mini, then anthropic / claude-haiku-*

A cold Round-1 fan-out keeps reviewers independent

amplifier-bundle-council's convene-panel recipe guarantees a cold, independent Round-1 fan-out — every prompt references only the target, never a sibling reviewer's output.

Independent by dispatch. Now those independent views have to converge.

# convene-panel.yaml — Round 1 COLD / INDEPENDENT every Round-1 prompt references ONLY the target / target_type / repo_digest — never a sibling lens's r1_* output.

A debate loop closes the open items before it answers

After the independent fan-out, panel-guide.md's debate loop assesses convergence by extracting the open items — and only skips to synthesis once there are none left. Parallel-and-independent becomes one converged answer.

That completes the recipe for the swarm.

The Payoff

Parallel dispatch + cross-review + convergence is the swarm

Because the executor, auditor, and panelists run on different providers with independent context, one model's systematic blind spot is exactly what a different model is positioned to catch — one model's blind spot becomes another's caught bug. The pattern is composed from three verified repos, not a single shipped product.

amplifier-foundation ensembles it, amplifier-next audits it, amplifier-bundle-council converges it.

Sources

Research Methodology

Status: composed pattern across 3 repos

Data as of: based on git metadata through 2026-07-09 (amplifier-next v0.2 harness commit)

Research performed:

Gaps: "Multi-Provider Swarm" is a narrative label — no repo ships that name (grep -rli 'multi-provider swarm' found nothing). amplifier-bundle-council README says "Under construction"; its debate/convergence is concierge-driven, and its lenses run as independent sub-sessions rather than pinned to distinct API providers. The "40-60% cost savings" prose in example 17 is illustrative, not a measured benchmark. Code was not executed end-to-end (no live API keys).

Primary contributor: Samuel Lee <samueljklee@gmail.com> — authored the amplifier-foundation ensemble & provider-comparison examples.

Note: the originally suggested repo (provider-anthropic.broken) is a single-provider Anthropic connector, NOT the swarm mechanism.

More Amplifier Stories