Skip to content

[Bug] Subagent tool stripped in nested subagent calls breaks tool invocation #80036

Description

@omar-codes

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

[]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions