[MODEL] Fable sessions fan out subagents that all inherit Fable instead of assigning sensible per-layer model tiers
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).
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗