首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >OpenClaw 的 sessions_send 机制

OpenClaw 的 sessions_send 机制

作者头像
用户11705094
发布2026-07-02 09:46:44
发布2026-07-02 09:46:44
480
举报

OpenClaw 中,Agent 之间( Agent to Agent,A2A )的精准通信主要通过的 sessions_* 工具集来实现。

目标是让分布在不同工作区或通讯平台的智能体能够协同工作,而无需用户手动干预。

sessions_send 是工具集中的核心工具,允许一个会话向另一个指定的活跃会话发送消息。

它的功能描述和使用规范存放在 WorkspaceTOOLS.md 文件中,在 AI 启动时注入。

sessions_* 工具集

  • sessions_list:看在线名单,找合适的同事。
  • sessions_history:翻阅旧档案,不用重复问老板。
  • sessions_send:精准发消息,让同事去干活。
  • sessions_spawn:开个新窗口,雇个临时工处理专事。

这套工具集让 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 响应的最长时间。超时后,系统会中断连接并采取相应措施。

  • timeoutSeconds = 0: 加入队列并返回 { runId, status: "accepted" }。
  • timeoutSeconds > 0: 等待最多 N 秒直到完成,然后返回 { runId, status: "ok", reply }。

10. priority (优先级): 数值类型,用于在并发场景下,确定消息处理的优先级顺序。

11. context_mode (上下文模式): 枚举类型,定义发送消息时是否包含历史会话上下文。可选项包括:

  • "none": 不包含任何上下文。
  • "current": 只包含当前消息的上下文。
  • "full": 包含完整的历史会话上下文。

12. trace_id (追踪 ID): 字符串类型,用于追踪消息的整个生命周期,贯穿所有相关 Agent 和服务,方便问题排查和审计。

13. max_tokens (最大 Token 数量): 数值类型,限制目标 Agent 在处理该消息时可以使用的最大 Token 数量,用于成本控制。

四种模式

Reply :是否需要回复

  • ON :回复
  • SKIP:不需要回复

Announce:是否全局可见

  • ON :可见
  • SKIP :不可见

协作模式:Reply ON & Ann ON

  • 适用:复杂任务的分工协作与人类监管。
  • 举例:代码安全分析过程中,Agent A 发现了一个潜在的漏洞,它需要和 Agent B(安全专家)进行多轮的对话,探讨漏洞的成因和修复方案。 这种模式必须让两个 Agent 之间进行充分的信息交换。

任务派发模式:Reply SKIP & Ann ON

  • 适用:主 Agent 向子 Agent 下达耗时任务。
  • 举例:主 Agent 需要让 Agent B 对上千行代码进行静态分析。 这种分析任务可能需要几分钟甚至更长时间,主 Agent 下达指令后,子 Agent 执行分析,然后主 Agent 不用等待,就可以去处理其他的任务。 这种模式能有效提升系统的并发处理能力。

暗中核查模式:Reply ON & Ann SKIP

  • 适用:向内存 Agent 悄悄校验事实,不打扰用户。
  • 举例:在代码审计或者芯片验证过程中,Agent A 在本地生成了代码片段,Agent B 在后台对这个片段的安全性、合规性进行校验。 校验结果会写入系统的审计日志,但是不会主动向Agent A 发送任何信息,更不会打扰用户。 这套机制是对代码安全进行持续审计的前提。

底层遥测模式:Reply SKIP & Ann SKIP

  • 适用:向日志或监控 Agent 悄无声息地单向灌输数据。
  • 举例:Agent C 负责收集系统运行的各项指标,比如 CPU 占用率、内存使用情况,以及 Agent 之间的通讯延迟。 Agent C 将这些数据悄无声息地发送到监控系统,用于诊断和性能优化。 这种模式是实现工业级系统监控的基础。

任务派发暗中核查这两种模式对应了 sessions_send 流程图中强调的 replySkip 和 announceSkip 参数,是实现工业级管控的核心。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 magicyuan的AI随笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档