BrainBank
AI 课堂/MCPClaude Code Deep Dive

SendMessageTool:Agent 通信

2026/8/2 16:37:57 · 更新于 2026/8/8 10:44:59 · 来源

#mcp#claude-code#multi-agent#send-message-tool#structured-message#agent-communication

深入解析 Claude Code 多 Agent 架构中的 SendMessageTool——从消息协议设计、输入 Schema 到调用链路的完整通信机制。

第 1 段,共 10 段

它是多 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

  • 掌握输入参数 tosummarymessage 的含义与约束
  • 理解 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 等配套工具实现完整团队工作流

动手实践——分步指南

动手操作

  1. 安装并启动 Claude Code(终端中运行 claude),确保版本包含多 Agent 支持。
  2. 打开一个真实项目目录,在终端中激活 Claude Code 并输入一条触发多 Agent 的任务请求(例如:"帮我拆分这个 PR 的代码审查和文档撰写工作,分配给两个子 Agent 并行处理")。
  3. 观察 Claude Code 输出的 Agent 分配过程——确认 Lead Agent 创建了 Teammate A 与 Teammate B。
  4. 在 Lead Agent 的回复中,找到 SendMessageTool 的工具调用记录(以 sendMessageSend Message 开头的工具块),解析其参数:
    • to:目标 Agent 的名称 / ID
    • message:携带的命令或结构化消息字段
  5. 切换终端窗口或在同一个会话中继续对话,触发一条审批场景的请求(例如:"请修改 src/ 目录下的 API 路由,我将在你完成后 Review")——观察 Lead Agent 如何通过 SendMessageTool 发送 plan_approval_response 类型消息给被调度的子 Agent。
  6. (进阶)克隆 willin/claude-code-source-code 仓库,定位到 tools/SendMessageTool/SendMessageTool.ts
    • 阅读完整的输入 Schema 定义
    • 追踪 bridge/coordinator/ 目录下 mailbox 和 worker 的实现逻辑
  7. (进阶)尝试向 Anthropic Claude Code GitHub issues #28300(Agent-to-Agent protocol)中查看跨机器通信的设计方案,理解 Shared Channel + Real-time Messaging 如何扩展 SendMessageTool 的能力边界。

三大推荐资源

  1. 1
    willin/claude-code-source-code — Claude Code v2.1.88 源码仓库

    逐文件整理并文档化的 Claude Code 源码库,README 中明确列出了 SendMessageTool 在通信总线架构中的位置、调用链与多 Agent 协作机制。

    https://github.com/willin/claude-code-source-code

  2. 2
    Anthropic claude-code Issue #28300 — Agent-to-Agent Protocol

    Anthropic 官方 issue,阐述多机器跨 Agent 通信协议设计——Shared Channel、Real-time Messaging 和安全审批机制的演进方向。

    https://github.com/anthropics/claude-code/issues/28300

  3. 3
    Claude Code 官方文档

    Anthropic 官方发布的 Claude Code 使用指南,涵盖 Agent 工具调用、多智能体协作模式与 MCP Server 集成的完整说明。

    https://docs.anthropic.com/en/docs/claude-code/overview

链接由 AI 推荐——使用前建议快速核实。