SendMessageTool:Agent 通信
2026/8/2 16:37:57 · 更新于 2026/8/8 10:44:59 · 来源
深入解析 Claude Code 多 Agent 架构中的 SendMessageTool——从消息协议设计、输入 Schema 到调用链路的完整通信机制。
它是多 Agent 模式下的通信总线
在 Claude Code 的多 Agent 体系里,普通文本不会自动被其他 teammate 看见。
所以如果一个 Agent 想通知另一个 Agent、广播消息、回复审批,它必须走 SendMessageTool。
这意味着这个工具不是辅助功能,而是多 Agent 系统真正成立的基础设施。
关键源码
tools/SendMessageTool/SendMessageTool.ts:
const inputSchema = z.object({
to: z.string(),
summary: z.string().optional(),
message: z.union([z.string(), StructuredMessage()]),
})
而 StructuredMessage 又支持几类特殊消息:
type: 'shutdown_request'
type: 'shutdown_response'
type: 'plan_approval_response'
这说明它不只是发文本,而是已经支持协议化消息。
调用链
某个 Agent 需要联系别人 > SendMessageTool > 解析 to 地址 > 写入 mailbox / bridge / peer > 目标 Agent 收到消息 > 继续协作或变更状态
它支持的不只是 teammate 名称
学习地图
学习路线
阶段一:概念铺垫 — 为什么多 Agent 需要专用通信?
- 理解 Agent 之间默认无法共享上下文文本(每条对话是隔离的)
- 区分「普通文本」与「协议化消息」的作用域差异
- 了解 Claude Code 多 Agent 体系的基本架构(Lead Agent → Teammates)
阶段二:核心源码 — SendMessageTool 的消息 Schema
- 掌握输入参数
to、summary、message的含义与约束 - 理解
StructuredMessage类型体系(shutdown_request/response、plan_approval_response 等) - 认识工具如何把消息从「自由文本」升级为「协议化消息」
阶段三:调用链路 — 一条消息如何到达目标 Agent
SendMessageTool→ 路由解析to地址 → mailbox / bridge / peer → 目标 Agent 接收- 理解请求-响应模式如何在 Agent 协商中驱动协作与审批
阶段四:进阶场景 — 超越 teammate 名称的应用
- 跨机器多 Agent 协作(Shared Channel + Real-time Messaging)
- 通过 MCP 扩展 Agent-to-Agent 协议的安全性(认证、审批流)
- 结合 TaskCreate/UpdateTool、TeamCreate/DeleteTool 等配套工具实现完整团队工作流
动手实践——分步指南
动手操作
- 安装并启动 Claude Code(终端中运行
claude),确保版本包含多 Agent 支持。 - 打开一个真实项目目录,在终端中激活 Claude Code 并输入一条触发多 Agent 的任务请求(例如:"帮我拆分这个 PR 的代码审查和文档撰写工作,分配给两个子 Agent 并行处理")。
- 观察 Claude Code 输出的 Agent 分配过程——确认 Lead Agent 创建了 Teammate A 与 Teammate B。
- 在 Lead Agent 的回复中,找到
SendMessageTool的工具调用记录(以sendMessage或Send Message开头的工具块),解析其参数:to:目标 Agent 的名称 / IDmessage:携带的命令或结构化消息字段
- 切换终端窗口或在同一个会话中继续对话,触发一条审批场景的请求(例如:"请修改 src/ 目录下的 API 路由,我将在你完成后 Review")——观察 Lead Agent 如何通过 SendMessageTool 发送
plan_approval_response类型消息给被调度的子 Agent。 - (进阶)克隆 willin/claude-code-source-code 仓库,定位到
tools/SendMessageTool/SendMessageTool.ts:- 阅读完整的输入 Schema 定义
- 追踪
bridge/、coordinator/目录下 mailbox 和 worker 的实现逻辑
- (进阶)尝试向 Anthropic Claude Code GitHub issues #28300(Agent-to-Agent protocol)中查看跨机器通信的设计方案,理解 Shared Channel + Real-time Messaging 如何扩展 SendMessageTool 的能力边界。
三大推荐资源
- 1willin/claude-code-source-code — Claude Code v2.1.88 源码仓库
逐文件整理并文档化的 Claude Code 源码库,README 中明确列出了 SendMessageTool 在通信总线架构中的位置、调用链与多 Agent 协作机制。
https://github.com/willin/claude-code-source-code
- 2Anthropic claude-code Issue #28300 — Agent-to-Agent Protocol
Anthropic 官方 issue,阐述多机器跨 Agent 通信协议设计——Shared Channel、Real-time Messaging 和安全审批机制的演进方向。
https://github.com/anthropics/claude-code/issues/28300
- 3Claude Code 官方文档
Anthropic 官方发布的 Claude Code 使用指南,涵盖 Agent 工具调用、多智能体协作模式与 MCP Server 集成的完整说明。
https://docs.anthropic.com/en/docs/claude-code/overview
链接由 AI 推荐——使用前建议快速核实。