Active

Three Branches,
One Recipe

Merging parallel development into a unified recipe system

microsoft/amplifier-bundle-recipes · January 2026

The Problem

Recipe workflows needed three major capabilities — all at once, all independently developed.

No parallelism

Foreach steps ran sequentially. A 10-item batch meant 10× wall-clock time with no concurrency control.

🔀

Single-model lock-in

Every step used one provider. No fallback chains, no per-step model selection, no cost optimization.

🔄

Run-once execution

No loop patterns. Recipes couldn't iterate toward quality — no convergence checks, no retry-until-good.

Three independent problems. Three feature branches. One 21-day sprint to unify them.

Branch 1 997b85e

Bounded Parallelism

parallel: N on foreach steps — concurrent execution with controllable limits.

Before

steps: - foreach: items agent: reviewer # runs one at a time # 10 items = 10× latency

After

steps: - foreach: items agent: reviewer parallel: 5 # 5 concurrent workers # bounded, not unbounded

Why bounded?

Unbounded parallelism hits rate limits and overwhelms providers. parallel: N lets recipe authors tune concurrency to their provider quotas.

Merged

January 7, 2026 — first of the three branches to land.

Branch 2 Jan 13–27

Provider Preferences

Fallback chains and per-step model selection — the right model for each task.

steps: - agent: fast-reviewer provider_preferences: - provider: anthropic model: claude-haiku-* # cheap + fast first - provider: openai model: gpt-4o-mini # fallback if unavailable
🎯

Per-step selection

Heavy reasoning steps use capable models. Boilerplate steps use fast, cheap models. Cost scales with task complexity, not recipe length.

🛡️

Fallback chains

If the primary provider is down or rate-limited, execution continues on the fallback — no recipe failure.

🌐

Glob patterns

claude-haiku-* matches the latest haiku variant. Recipes stay current without hardcoding model versions.

Branch 3 d28d224

Convergence Loops

While-conditions and convergence checks — recipes that iterate toward quality.

steps: - agent: refiner while: condition: "quality_score < 0.9" max_iterations: 5 # keeps refining until threshold met # or max iterations reached
🧠

Meta-learning pattern

Agents evaluate their own output and decide whether to iterate. The recipe defines the convergence criteria; the agent finds the path.

🛑

Bounded iteration

max_iterations prevents infinite loops. Convergence is a goal, not a guarantee — the executor always terminates.

Merged January 28, 2026 — the final branch, completing the trilogy.

Three Branches → One Executor

Independent features, unified in the recipe executor — composable by design.

Jan 7 — Bounded Parallelism lands

Foreach steps gain parallel: N. Executor grows concurrent task scheduling.

Jan 13–27 — Provider Preferences merges

Per-step model selection with fallback chains. Each parallel worker can target different providers.

Jan 28 — Convergence Loops completes the set

While/convergence patterns. Loop bodies can use parallelism and provider preferences — full composition.

The composition payoff

# All three features compose in a single step: - foreach: documents parallel: 3 provider_preferences: - { provider: anthropic, model: claude-haiku-* } while: condition: "quality < threshold" max_iterations: 3

Parallel iteration, smart model routing, and convergence — in one declarative YAML block.

By the Numbers

All figures from git evidence. No estimates, no projections.

77

Total commits

51

Recipe YAML files

~13,837

Lines of YAML

21

Days, Jan 7–28

3

Feature branches merged

~10K

Lines in executor module

Contributors

Brian Krabach

71 commits · ~92%

Marc Goodner — 3 commits

Mollie Munoz — 1 commit

momuno — 1 commit

Sam Schillace — 1 commit

Sources & Methodology

Every claim in this deck traces to a verifiable git command.

Data sources

git rev-list --all --count → 77 total commits
find . -name "*.yaml" | wc -l → 51 recipe files
find . -name "*.yaml" | xargs wc -l → ~13,837 total lines
git shortlog -sn --all → contributor breakdown
git log --oneline → feature branch dates & commit SHAs

Methodology notes

Repository: microsoft/amplifier-bundle-recipes

Feature status: Active — latest commit January 28, 2026 (convergence loops).

This deck contains no estimated performance metrics. Claims from a prior version (execution times, quality scores, auto-fix counts) were removed because they could not be verified from git history.

🧪

Try the Recipe System

Parallel execution, smart model routing, and convergence loops — all in declarative YAML.

pip install amplifier-bundle-recipes # Run a recipe amplifier recipe run my-recipe.yaml

microsoft/amplifier-bundle-recipes · 51 recipes and growing

More Amplifier Stories