[BUG] SendMessage tool never surfaces — cannot continue spawned agents across turns
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
## Summary
SendMessage (referenced in the Agent tool's own description as the way to "continue a previously spawned agent") is never exposed to the model. It is missing from both the immediately-loaded toolset AND the deferred-tools registry, even after agents have been successfully spawned and completed in the same session.
This breaks the documented workflow for resuming agents, forcing users to spawn a fresh Agent and re-pass full context each time — defeating the purpose of persistent agent sessions.
## Environment
- Claude Code version:
2.1.133 - Platform: macOS (Darwin 25.3.0)
- Model: claude-opus-4-7 (1M context)
- Shell: zsh
Yet the Agent tool's own description states:
> To continue a previously spawned agent, use SendMessage with the agent's ID or name as the to field — that resumes it with full context. A new Agent call starts a fresh agent with no memory of prior runs, so the prompt must be self-contained.
So the harness instructs the model to use a tool it never exposes.
## Impact
- Every "continue this agent" workflow is broken.
- Forces re-spawning agents with manually-reconstructed context, increasing token cost and risking context loss.
- Particularly painful for plugin authors building multi-turn agent workflows (e.g. cm-cowork-agents).
## Prior reports
I have filed this twice before; both were closed as stale without maintainer response. Filing fresh so the triage
clock resets. Happy to provide additional traces, transcripts, or a video repro on request.
What Should Happen?
After spawning an agent via the Agent tool, SendMessage should be available to continue that agent's session —
either loaded directly in the toolset or surfaced in the deferred-tools registry so it can be retrieved via
ToolSearch.
The Agent tool's own description instructs the model to use SendMessage to resume previously spawned agents ("use
SendMessage with the agent's ID or name as the to field"), so the tool must be reachable whenever there is a live or
recently-completed agent to address.
Concretely:
ToolSearch({ query: "SendMessage" })should return its schema.- Or
SendMessageshould appear by name in the deferred-tools system-reminder list once an agent has been spawned.
Currently neither happens, making the documented "continue an agent" workflow impossible to execute.
Error Messages/Logs
## Evidence from current session
`ToolSearch` query for `SendMessage`:
No matching deferred tools found
Steps to Reproduce
## Reproduction
- Start a fresh Claude Code session.
- Spawn an agent via the
Agenttool, e.g.:
`` ``
Agent({ subagent_type: "general-purpose", description: "test", prompt: "List 3 files in cwd." })
- Wait for the agent to complete.
- In a subsequent turn, attempt to find
SendMessage:
`` ``
ToolSearch({ query: "SendMessage", max_results: 5 })
- Expected:
SendMessageschema returned (or already loaded in the tool list). - Actual:
No matching deferred tools found. The tool is absent from the deferred-tools system-reminder list as well.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude Code version: 2.1.133
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗