For the complete documentation index, see llms.txt. This page is also available as Markdown.

8.4 智能体间通信

多智能体系统中的通信设计直接影响系统的可靠性和可扩展性。本节介绍消息传递与共享内存两种范式,以及 Claude Code 的混合通信方案、OpenClaw 的多渠道路由机制。

8.4.1 通信的两种范式

智能体间通信的设计直接影响系统的可靠性、可扩展性和延迟。主要有两种范式。

维度
消息传递
共享内存

原理

Agent 通过发送/接收消息通信,消息包含数据和操作指令

Agent 通过共享数据结构通信,在同一进程内实现

耦合度

松耦合,Agent 不需要知道彼此内部状态

紧耦合,需要同步机制(锁)

延迟

较高

可扩展性

易于添加新 Agent,分布式友好

难以分布式,可能导致数据竞争

顺序保证

困难,需要额外机制

实现复杂度

较高(需要消息队列、重试等)

较低

异步支持

天然支持非阻塞操作

需要额外处理

适用场景

分布式系统、异步处理、系统级隔离

单进程多线程、低延迟要求、智能体间关系紧密

8.4.2 Claude Code 的通信机制

Claude Code 采用 混合方案

  • Task 间:基于消息的通知机制(task-notification XML)

  • Worker 间:通过 Scratchpad 共享内存

  • 跨进程:使用 Streamable HTTP(双向 HTTP 流)

Task-Notification XML 消息格式

Claude Code 使用 XML 格式的通知消息进行 Task 间的通信。 注意:以下 XML 格式是 Claude Code 内部的任务通知格式,与 MCP 协议不同。MCP 协议本身使用 JSON-RPC 2.0 格式(详见第九章),而此处展示的 XML 格式仅用于框架内 Task 间的状态传递:

消息结构详解

字段
含义
类型

id

Task 的唯一标识符

string

state

任务状态(pending/running/completed/failed/killed)

enum

timestamp

消息生成时间(ISO 8601 格式)

datetime

result

执行结果(仅当 state 为 completed 或 failed 时)

object

metrics

执行指标(Token 数、耗时等)

object

next_tasks

后续可执行的 Task ID 列表

array

Scratchpad 跨 Worker 共享

Scratchpad 是 Claude Code 中的共享内存区域,多个 Worker 可以读写:

8.4.3 OpenClaw 的渠道路由

OpenClaw 支持多渠道通信路由,支持 20 多个平台的消息分发。

渠道定义

多渠道通信的 YAML 定义示例如下:

消息格式规范

为了支持多种渠道,OpenClaw 定义了统一的内部消息格式,然后为每个渠道进行转换:

在实现了消息队列和传输适配器后,我们需要确保整个通信系统具有高可靠性和良好的性能特性。本节阐述了通信协议设计的核心原则,它们在保证消息传递质量方面起着至关重要的作用。

8.4.4 通信协议设计原则

1. 可靠性

消息传递必须保证:

  • 至少一次送达(At-Least-Once):即使失败也会重试

  • 幂等性:重复消息不会产生重复副作用

  • 确认机制:发送者需要接收确认

2. 顺序保证

某些场景需要消息按顺序处理:

3. 背压控制

当消息积压时,应该反馈给发送者:

8.4.5 本小节小结

智能体间通信是多智能体系统的血管。Claude Code 采用混合方案(task-notification XML + Scratchpad),既保证了消息的显式流动,又通过共享内存支持高效的同步操作。OpenClaw 的多渠道路由系统则提供了灵活的消息分发能力。关键是设计好通信协议,确保可靠性、顺序保证和背压控制。下一节将在 MiniHarness 中实现完整的编排引擎。

最后更新于