
OpenClaw 中,Agent 之间( Agent to Agent,A2A )的精准通信主要通过的 sessions_* 工具集来实现。
目标是让分布在不同工作区或通讯平台的智能体能够协同工作,而无需用户手动干预。
sessions_send 是工具集中的核心工具,允许一个会话向另一个指定的活跃会话发送消息。
它的功能描述和使用规范存放在 Workspace 的 TOOLS.md 文件中,在 AI 启动时注入。

sessions_* 工具集
这套工具集让 AI Agent 不再是孤岛,而是一个能够互相通信(A2A)的智能集群。

举个例子
我们可以把 OpenClaw 想象成一家全能助理公司。
你作为老板,平时只跟总管助理(主会话)说话,但公司后台其实还有很多专业助理在协同办公,比如财务助理、工作助理、采购助理。
sessions_* 工具集就是这些助理之间沟通、协作的一套流程和制度。
想象一个场景:你想买一台高性能笔记本,但不确定这月的预算和奖金够不够。
当你对总管助理说:“我想买台 MacBook,算算我的奖金够不够付?”
总管助理首先需要知道现在有哪些专业助理可以帮忙。
总管助理调用 sessions_list。
它在后台看到在 WhatsApp 上的财务助理和在 Slack 上的工作助理都处于活跃状态
总管助理需要去问工作助理关于奖金的消息,再问财务助理关于本月支出的信息。
它调用 sessions_send 给工作助理发信:“请查一下老板这个月的绩效奖金是多少?”
工作助理查到后,通过回复确认(Ping-Pong)机制回信说:“奖金是 5000 元”
总管助理还需要知道你这个月已经花了多少钱。
它调用 sessions_history 直接去翻看财务助理那边的账本(对话转录日志)。
它发现你前几天在 WhatsApp 上跟财务助理说“昨天买衣服花了 2000 元”。
它不需要再问你一遍,直接从日志里就获取了上下文。
现在总管助理知道你有多少钱了,但它还不知道电脑现在卖多少钱。
为了不干扰现有的助理工作,它决定找个专门的实习生去干这件杂事。
它调用 sessions_spawn 临时产生一个新的比价助理会话
这个新分身助理专门去网页上搜索最新价格,汇报给总管助理。
任务完成后,这个临时会话就可以关掉。
通过这四个工具的配合,在 Telegram 上的总管助理最后会直接回复你:
“老板,我问了工作助理(list+send),你这月有 5000 奖金。
翻了财务助理的记录(history),你已经花了 2000。
我刚派个新的分身(spawn)去查了价,电脑要 8000。
所以你还得再存 5000 才够哦!”

架构中的位置
Layer 2 :网关控制面与 Session Router
默认维持会话间的物理与内存隔离。
在复杂的工业级测试中,如果 Agent 之间共享内存,一个发生逻辑幻觉的节点会瞬间污染整个测试工具链。
这道隔离墙确保了每一个 Agent 都在自己的单间里工作,从源头上掐断了风险的横向蔓延。
红色穿透线
sessions_send 是唯一被允许动态穿透隔离墙、建立跨会话路由的内部协议。
起点在 Layer 4 的沙箱执行层,终点指向另一个沙箱。
sessions_send 根本没有任何聊天软件的属性,就是一条受到网关严格监控的跨进程通信管道。
这段路由就是确保代码数据不泄露、执行权限不越界的核心安检通道。
Layer 5 :混合记忆系统
这里把原始日志、知识图谱和向量索引完全独立在 Layer 3 的推理大脑之外。
这就是状态外置。
大脑只负责运算,所有的记忆和审计痕迹全部沉淀在外部存储中。
这种架构是满足 B 端审计要求的基础设施。

完整执行流程
第一步:目标解析
其实就是分布式系统中的寻址。
采用 sessionKey 或 label 查找,实际上是在构建一套动态的服务注册表。
通过标签寻址,可以让系统具备极强的扩展性。
第二步:权限检查
这是核心防御筹码。
A2A 策略结合沙箱限制,本质上是在 AI 内部构建了一套防火墙。
让它们在受控的权限范围内进行有限的协作。
第三步:消息投递 & 第四步:等待回复
启动目标 Agent 并选择性地同步等待,这其实就是异步任务队列。
通过控制等待行为,可以防止主程序因为某个子节点的推理延迟而陷入假死。
第五步: A2A 协商
设定了最多 5 轮的限制。
防止递归深度溢出,收敛复杂度。
第六步:最终通知
状态外置。
数据投递回原始频道,意味着所有的中间协商过程都是透明且可追溯的。
这不仅是信息的同步,更是审计日志的归档。

A2A 多轮协商流程
在实际的业务中,Agent A 作为一个请求者,在得到 Agent B 的执行确认后。
如果继续进行“谢谢”、“辛苦了”之类的礼貌性回复,会造成逻辑上的冗余。
这个流程通过在第三次指令中预设 REPLY_SKIP 逻辑。
让 Agent B 在完成动作后直接触发系统级的最终通知。

sessions_send 参数
基础参数(7个):
1. sessionKey (目标会话标识): 字符串类型,指定消息要发送到的目标 Agent 会话的唯一 ID。类似于工位编号,确保消息准确送达。
2. text (消息内容主体): 字符串类型,承载要发送给目标 Agent 的文本指令或信息。
3. replySkip (跳过回复标志): 布尔类型,控制目标 Agent 是否需要回复。True 表示跳过回复,实现单向通信以避免无效对话循环。
4. announceSkip (跳过广播标志): 布尔类型,控制该消息是否在用户界面或公共频道中显示。True 表示静默执行,不在 UI 上显示。
5. images (图像资源): 数组类型,允许传递图像文件。
6. files (文件资源): 数组类型,允许传递各种类型的文件附件。
7. metadata (元数据): 字典类型,用于携带额外的结构化信息,如业务流水号、优先级等,方便追踪和审计。
扩展参数(6个):
8. wait (同步/异步标志): 布尔类型,控制发送消息后是否等待目标 Agent 的响应。True 表示同步等待,False 表示异步发送。
9. timeout (超时时间): 数值类型(通常以秒为单位),设置等待目标 Agent 响应的最长时间。超时后,系统会中断连接并采取相应措施。
10. priority (优先级): 数值类型,用于在并发场景下,确定消息处理的优先级顺序。
11. context_mode (上下文模式): 枚举类型,定义发送消息时是否包含历史会话上下文。可选项包括:
12. trace_id (追踪 ID): 字符串类型,用于追踪消息的整个生命周期,贯穿所有相关 Agent 和服务,方便问题排查和审计。
13. max_tokens (最大 Token 数量): 数值类型,限制目标 Agent 在处理该消息时可以使用的最大 Token 数量,用于成本控制。

四种模式
Reply :是否需要回复
Announce:是否全局可见
协作模式:Reply ON & Ann ON
任务派发模式:Reply SKIP & Ann ON
暗中核查模式:Reply ON & Ann SKIP
底层遥测模式:Reply SKIP & Ann SKIP
任务派发和暗中核查这两种模式对应了 sessions_send 流程图中强调的 replySkip 和 announceSkip 参数,是实现工业级管控的核心。
本文分享自 magicyuan的AI随笔记 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!