[BUG] general-purpose subagents don't receive deferred tools (WebSearch, WebFetch)

Resolved 💬 2 comments Opened Mar 31, 2026 by ivanliebert Closed May 5, 2026

Description

general-purpose subagents (spawned via the Agent tool) do not have access to deferred tools like WebSearch and WebFetch. These tools are completely absent from the subagent's available tool list — not a permission denial, but the tools simply don't exist in the subagent's context.

Meanwhile, Explore and claude-code-guide subagent types do receive WebSearch and WebFetch and use them successfully.

Steps to reproduce

  1. Open Claude Code (tested on v2.1.88)
  2. Have WebSearch(*) and WebFetch(*) in ~/.claude/settings.jsonpermissions.allow
  3. Spawn a general-purpose subagent with a task that requires web search:

``
Agent(subagent_type="general-purpose", prompt="Use WebSearch to find the latest FastAPI version")
``

  1. The subagent responds: "I don't have access to WebSearch tool — it's not in my available tools"
  2. Now spawn an Explore or claude-code-guide subagent with the same task:

``
Agent(subagent_type="Explore", prompt="Use WebSearch to find the latest FastAPI version")
``

  1. The subagent successfully uses WebSearch and returns results.

Root cause analysis

WebSearch and WebFetch are deferred tools — they are not loaded into the tool list upfront but resolved on demand via ToolSearch. The general-purpose subagent type is documented as having "Tools: *", but this wildcard apparently does not include deferred tools. Subagent types that explicitly list WebSearch in their tool definitions (Explore, claude-code-guide) receive the tool correctly.

Expected behavior

general-purpose subagents with "Tools: *" should have access to all tools available in the parent session, including deferred tools like WebSearch and WebFetch.

Actual behavior

general-purpose subagents have no access to WebSearch/WebFetch. The tools are not in their tool list at all. tool_uses: 0 in the subagent response.

Impact

This is a significant regression for research-heavy workflows. Users who rely on subagents for parallel web research get zero results from general-purpose agents, which is the default type. The workaround (using Explore or claude-code-guide types) is not obvious and limits functionality since those types lack write tools (Edit, Write).

Environment

  • Claude Code version: 2.1.88
  • OS: Linux (Ubuntu)
  • Permission mode: default
  • WebSearch(*) explicitly in permissions.allow

Workaround

Use subagent_type="Explore" or subagent_type="claude-code-guide" instead of general-purpose when web search is needed. Note: neither of these types can edit files, so tasks requiring both web search and code modification must be split across multiple agents.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗