Bug Description
The subagents docs state the Agent tool is
inherited by subagents, so a subagent can spawn nested subagents (documented depth cap: 5). In
practice, a subagent spawned with subagent_type: "general-purpose" or "claude" comes back
with no Agent/Task launch tool in its active or deferred set — so it cannot spawn a
nested subagent at all (depth 1 → 2 is impossible), regardless of the depth cap.
The strip is inconsistent: a fork subagent does inherit Agent. So the launch
primitive is not globally removed — it is removed specifically from the fresh non-fork subagent
types the docs say should keep it.
Expected: a general-purpose/claude subagent inherits Agent and can launch nested
subagents up to depth 5, per the docs.
Actual: general-purpose and claude subagents have no Agent/Task tool and are leaf
agents. Only fork retains it.
Reproduction — from a top-level session that has the Agent tool, spawn a probe subagent
and ask it to inventory its own tools and attempt to launch a sub-subagent:
subagent_type: "general-purpose" → launch tool = NONE; cannot nest.
subagent_type: "claude" → launch tool = NONE; cannot nest.
subagent_type: "fork" → Agent tool present (inherited full parent surface).
Observed tool inventories:
- general-purpose active:
Artifact, Bash, Edit, Read, Skill, ToolSearch, Write; deferred:
EnterWorktree, ExitWorktree, Monitor, NotebookEdit, SendMessage, TaskStop, WebFetch, WebSearch.
No Agent/Task.
- claude — same as above. No
Agent/Task.
- fork active includes
Agent.
Impact: any workflow that runs a fan-out skill inside a subagent breaks. Example: an
orchestrator spawns a code-review skill as a subagent, and that skill is designed to launch
several parallel independent reviewers; with no Agent tool the fan-out silently degrades to a
single-context inline pass, losing the reviewer independence that is its whole purpose.
Suggested fix: honor the documented inheritance — freshly-spawned general-purpose/claude
subagents should retain Agent (subject to the depth-5 cap), matching fork. Or, if
single-level nesting is intended for these types, correct the docs.
Environment Info
- Platform: darwin
- Terminal: Apple_Terminal
- Version: 2.1.217
- Feedback ID: ab7ee1d8-4d11-4f64-9b78-7df5c4717cc6
Errors
Bug Description
The subagents docs state the
Agenttool isinherited by subagents, so a subagent can spawn nested subagents (documented depth cap: 5). In
practice, a subagent spawned with
subagent_type: "general-purpose"or"claude"comes backwith no
Agent/Tasklaunch tool in its active or deferred set — so it cannot spawn anested subagent at all (depth 1 → 2 is impossible), regardless of the depth cap.
The strip is inconsistent: a
forksubagent does inheritAgent. So the launchprimitive is not globally removed — it is removed specifically from the fresh non-fork subagent
types the docs say should keep it.
Expected: a
general-purpose/claudesubagent inheritsAgentand can launch nestedsubagents up to depth 5, per the docs.
Actual:
general-purposeandclaudesubagents have noAgent/Tasktool and are leafagents. Only
forkretains it.Reproduction — from a top-level session that has the
Agenttool, spawn a probe subagentand ask it to inventory its own tools and attempt to launch a sub-subagent:
subagent_type: "general-purpose"→ launch tool = NONE; cannot nest.subagent_type: "claude"→ launch tool = NONE; cannot nest.subagent_type: "fork"→Agenttool present (inherited full parent surface).Observed tool inventories:
Artifact, Bash, Edit, Read, Skill, ToolSearch, Write; deferred:EnterWorktree, ExitWorktree, Monitor, NotebookEdit, SendMessage, TaskStop, WebFetch, WebSearch.No
Agent/Task.Agent/Task.Agent.Impact: any workflow that runs a fan-out skill inside a subagent breaks. Example: an
orchestrator spawns a code-review skill as a subagent, and that skill is designed to launch
several parallel independent reviewers; with no
Agenttool the fan-out silently degrades to asingle-context inline pass, losing the reviewer independence that is its whole purpose.
Suggested fix: honor the documented inheritance — freshly-spawned
general-purpose/claudesubagents should retain
Agent(subject to the depth-5 cap), matchingfork. Or, ifsingle-level nesting is intended for these types, correct the docs.
Environment Info
Errors