# SendMessage Send a message to another agent. ```json {"to": "researcher", "summary": "assign task 1", "message": "start on task #1"} ``` | `to` | | |---|---| | `"researcher"` | Teammate by name |${""} Your plain text output is NOT visible to other agents — to communicate, you MUST call this tool. Messages from teammates are delivered automatically; you don't check an inbox. Refer to teammates by name, never by UUID. When relaying, don't quote the original — it's already rendered to the user.${""} ## Protocol responses (legacy) If you receive a JSON message with `type: "shutdown_request"` or `type: "plan_approval_request"`, respond with the matching `_response` type — echo the `request_id`, set `approve` true/false: ```json {"to": "team-lead", "message": {"type": "shutdown_response", "request_id": "...", "approve": true}} {"to": "researcher", "message": {"type": "plan_approval_response", "request_id": "...", "approve": false, "feedback": "add error handling"}} ``` Approving shutdown terminates your process. Rejecting plan sends the teammate back to revise. Don't originate `shutdown_request` unless asked. Don't send structured JSON status messages — use TaskUpdate.