[MODEL] Fable sessions fan out subagents that all inherit Fable instead of assigning sensible per-layer model tiers

Resolved 💬 1 comment Opened Jul 10, 2026 by LorenzoWynberg Closed Jul 10, 2026

Summary

In a Fable session, fanned-out subagents — both Workflow agent() calls and the Agent tool — default to the resolved main-loop model. When that model is Fable, omitting a per-agent model propagates Fable to every subagent, so a large workflow spawns dozens or hundreds of Fable agents doing work that a far cheaper tier handles fine. The orchestrator should assign model tiers by layer instead of blindly inheriting the session's Fable tier.

Type of behavior: Subagent behaved unexpectedly

Context on the task

I asked for a workflow to verify a plan by reading 100+ database migration files and flagging which columns hold sensitive data. Each fanned-out agent's job was trivial and mechanical — open one migration file, list the columns, mark the ones that look sensitive. That's a Haiku/Sonnet task; there's no deep reasoning in a single-file classification. The only place that warranted a stronger model was one layer up: a join/verification step that reconciles all the per-file findings, resolves disagreements, and sanity-checks the whole set (Opus) — and, at most, a single final synthesis pass (Fable, if at all).

Instead, all 100+ leaf agents ran on Fable — the session's tier propagated straight down, with a premium model doing work a cheap one does fine.

What I asked Claude to do

While reviewing a plan in a Fable session, I explicitly asked Claude to run a workflow to ground/verify the plan — read each of 100+ table migration files and classify which columns are sensitive.

What Claude actually did

Dispatched a 100+ agent workflow in which every subagent inherited Fable (the session's resolved model). Purely mechanical per-file classification — the leaf layer — ran entirely on Fable, with no per-layer tier assignment.

Expected behavior

The orchestrator should assign tiers by layer:

  • Sonnet for the wide layer of independent, mechanical per-file classification
  • Opus for the join/verification layer that reconciles and sanity-checks the findings
  • Fable only (if at all) for a single final synthesis check

Leaf subagents should not silently inherit the session's Fable tier.

Not the problem

The agent count was fine — fan-out breadth was appropriate for the task. The complaint is purely tier assignment: leaf tasks were near-zero complexity, the reasoning lived only in the verify/synthesis layers, and tier selection ignored that entirely.

Secondary point

In a Fable session, implicitly escalating to multi-agent workflows or research should require explicit opt-in. In this case it was explicit (I asked for the workflow), which is fine — but the default tier that fan-out inherits is what caused the problem.

Likely root cause

Workflow/Agent subagents default to the resolved main-loop model. The Workflow tool documentation states that omitting model makes an agent "inherit the main-loop model (the resolved session model)." When the session model is Fable, that means every agent without an explicit tier runs on Fable.

Suggested fix

When the session model is Fable:

  • Default leaf subagents to Sonnet (or force explicit per-agent tier selection), rather than inheriting Fable, and/or
  • Prompt the orchestrator to assign per-layer tiers deliberately, reserving Fable for a deliberate opt-in on the layers that actually benefit.

Impact

High — a premium model is spent en masse on mechanical work; the wrong tool for the layer, at significant cost.

Model

Fable (session model; leaf subagents inherited it).

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗