[Docs] Advisor tool is not inherited by background subagents, contradicting the advisor docs
Status Open
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 3 comments · opened Jul 10, 2026
Observation
The advisor docs (https://code.claude.com/docs/en/advisor) state:
"Subagents inherit the configured advisor and apply the same pairing check against their own model."
In practice (Claude Code v2.1.206, Windows 11, main model Fable 5, advisorModel set to fable via /advisor), inheritance only works for synchronous subagents:
- A subagent launched with
run_in_background: false(model: sonnet) had theadvisortool and called it successfully (the advisor confirmed it received the subagent transcript). - All subagents launched in the background (default since v2.1.198; models opus and sonnet,
subagent_type: general-purpose) consistently reported the advisor tool as unavailable — observed across ~8 independent runs in one session, zero exceptions.
Repro
# WORKS: foreground subagent gets the advisor tool
Agent(..., run_in_background: false)
# FAILS: background subagent has no advisor tool
Agent(..., run_in_background: true) # or omitted (background is the default)
Question / Request
Is this intentional (similar to MCP tools being unavailable in background subagents, #13254 — closed as not planned)?
If intentional, please document it on the advisor page, e.g.:
- "The advisor is not inherited by background subagents."
- "Set
run_in_background: falseif advisor consultation is required in a subagent."
If unintentional, enabling advisor inheritance for background subagents would be valuable — background is the default since v2.1.198, so in practice most subagents never get the advisor despite the documented inheritance.
Environment
- Claude Code v2.1.206, Windows 11 (native, PowerShell)
- Main model: Fable 5, advisor: Fable 5 (pairing valid per docs)
- Subscription auth (claude.ai), advisor works normally in the main loop
Cross-ref: #13254 (MCP tools unavailable in background subagents)
3 Comments
Additional datapoint — cannot reproduce the background-only gap on v2.1.209 (macOS), plus a confounder worth noting
Environment: Claude Code v2.1.209 (desktop app session), macOS (Darwin 25.5.0), main model Fable 5,
advisorModel: "fable"in settings.json, subagents forced to Sonnet 5 viaCLAUDE_CODE_SUBAGENT_MODEL=sonnet,subagent_type: general-purpose. All probes were minimal "calladvisor()exactly once and report the verbatim result" agents.Results from one session today (times relative):
| When | Caller |
run_in_background| Result ||---|---|---|---|
| T0 | Sonnet 5 subagent |
false| ❌The advisor tool is unavailable. Do not try to use it again.|| T0 +5 min | Fable 5 main loop | — | ❌ identical verbatim error |
| T0 +~1 h | Sonnet 5 subagent |
false| ✅ advisor responded with guidance || T0 +~1 h | Sonnet 5 subagent |
true| ✅ advisor responded with guidance || T0 +~1 h | Sonnet 5 subagent |
true| ✅ advisor responded with guidance || T0 +~1 h | Sonnet 5 subagent |
true| ✅ advisor responded with guidance |Two observations:
Given (2), the background/foreground correlation in the original report may be confounded by when the probes ran — the error string gives no way to distinguish "tool not inherited" from "server-side failure latched off". +1 to the ask in #67411 to surface the underlying error cause; that would make this issue directly diagnosable.
Follow-up from the original reporter's setup — a fresh Windows datapoint now supports @iam1412's confounder theory
Environment: Claude Code v2.1.207, same machine/config as the original report (Windows 11 native, PowerShell, main model Fable 5, advisor
fable, subscription auth). All probes below ran in one continuously running session, within ~3 minutes of each other:| When | Caller |
run_in_background| Result ||---|---|---|---|
| T0 | Fable 5 main loop | — | ❌
The advisor tool is unavailable. Do not try to use it again.|| T0 +1 min | Sonnet 5 subagent |
false| ✅ advisor responded (confirmed it received the subagent transcript) || T0 +3 min | Sonnet 5 subagent |
true| ✅ advisor responded || T0 +10 min | Opus 4.8 subagent (real workload, valid pairing) |
true| ❌ reported the advisor as unavailable when it tried to escalate |Additional context: the main loop's advisor first failed early in this session (~24 h before T0) and has returned the identical verbatim error on every retry since — including the T0 retry above, seconds before both subagent successes. So the advisor backend was demonstrably reachable while the main loop stayed dead. That is consistent with the per-conversation latch described in #67411, and not with server-wide unavailability (and the latch survives context compaction, apparently for the lifetime of the session).
Two takeaways:
run_in_background. Combined with the v2.1.209/macOS results above, the background-vs-foreground split in my original report was most likely confounded by when the probes ran: the early probes hit a transient failure, latched, and the session state persisted.From the original report's perspective this issue likely reduces to #67411 — leaving it to the maintainers whether to fold it in or keep it open for a docs clarification.
Cross-linking #78471, which proposes a
--advisor <model>launch flag forclaude/claude agents. That would give background/dispatched sessions an advisor at dispatch time, directly addressing the non-inheritance described here.Concrete case that hit this: an autonomous session wanted to dispatch several Sonnet workers each with an Opus advisor attached (cheap executor + strong advisor at decision boundaries). Because the advisor isn't inherited by background subagents and there's no launch flag to set one, the only workaround was to run a stronger executor throughout and review manually — which defeats the cost saving the advisor pattern exists for. A
--advisorflag would be the CLI-level fix for the gap documented in this issue.