Claude Code: Agent Tool Drops resume Parameter, SendMessage Now Auto-Resumes Stopped Agents

Claude Code

Claude Code v2.1.77 introduces a breaking change to its multi-agent API: the Agent tool no longer accepts a resume parameter, and developers must now use SendMessage({to: agentId}) to continue a previously spawned agent. In exchange, SendMessage now automatically resumes stopped agents in the background instead of returning an error, simplifying the continuation pattern for orchestrators. The /fork command is also renamed to /branch, with the old name retained as an alias.


Agent Tool API Simplification: resume Removed, SendMessage Handles Continuation

Claude Code v2.1.77 makes a targeted but breaking change to how multi-agent orchestration works: the resume parameter has been removed from the Agent tool, and the SendMessage tool now serves as the unified mechanism for continuing stopped agents.

The Change

Previously, developers could pass a resume parameter to the Agent tool to pick up a previously spawned agent from where it left off. This design created ambiguity: two different tools could continue an agent, each requiring the caller to track agent status before deciding which path to take. When a target agent had already stopped, SendMessage would return an error rather than resuming it.

In v2.1.77, these responsibilities are cleanly separated:

  • Agent({...}) β€” Always starts a fresh agent. Requires full task context in the prompt. The resume parameter is no longer accepted.
  • SendMessage({to: agentId}) β€” Continues any existing agent, whether running or stopped. If the target agent has stopped, SendMessage now automatically resumes it in the background instead of returning an error.

Why This Matters for Multi-Agent Workflows

The previous design placed the continuation-vs-fresh-start decision on the caller, requiring status checks and conditional logic in orchestrator code. The new model is simpler: use Agent to create, use SendMessage to communicate. The auto-resume behavior in SendMessage means that agents sleeping between tasks can be woken and given new instructions without the orchestrator needing to explicitly track their lifecycle state.

For teams building complex agent swarms, this reduces the surface area for race conditions and simplifies orchestrator code β€” particularly in patterns where agents are long-lived and process multiple sequential tasks.

Migration

Existing orchestrator code that passes resume to the Agent tool will break on v2.1.77. The migration path is straightforward: replace Agent({resume: agentId, ...}) calls with SendMessage({to: agentId, message: "..."}). All new Agent calls should be treated as fresh starts and include full task context in their prompts.

Additional: /fork Renamed to /branch

As a related housekeeping change, the /fork command has been renamed to /branch. The old /fork name continues to work as an alias, so existing scripts and muscle memory are not immediately broken β€” but the canonical command going forward is /branch.