多智能体协作真相:不要把共享记忆变成垃圾场
多智能体协作真相:不要把共享记忆变成垃圾场
摘要:很多团队刚开始做多 Agent 时,最喜欢干的一件事就是:建一个全局的“共享上下文”,让所有 Agent 在里面自由聊天。结果就是幻觉交叉感染、甩锅扯皮,最后系统彻底崩溃。本文顺着上一篇的“量化四小龙”场景,带你拆解多智能体协作时,为什么绝对不能搞共享记忆,以及如何用“物理隔离”和“消息总线”搭建一套严密的流水线通信机制。
目录:
- 一、 痛点引入:把共享记忆当大锅饭,就是一场灾难
- 二、 读写锁与物理隔离:给 Agent 戴上镣铐
- 三、 消息总线:抛弃长文本,用 JSON 和追踪号通信
- 四、 总结:Agent 越界是万恶之源
一、 痛点引入:把共享记忆当大锅饭,就是一场灾难
顺着上一篇的量化交易场景,我们假设系统里有三个 Agent:情报特工、逻辑推演师和执行机械臂。
如果在开发时,图省事把它们连进同一个“全局对话上下文”(就像建了一个毫无权限管理的微信群),会发生什么?
我们来推演一次经典的**“记忆污染链式反应”**:
- 情报特工产生幻觉:它在阅读一份 50 页的财报时,因为大模型固有的幻觉,错误地总结出“某巨头高管跑路,即将破产”,并随手写进了全局记忆库。
- 逻辑推演师盲目相信:逻辑 Agent 被唤醒,它扫描了全局记忆,看到了“高管跑路”这几个字。它不会去核实原文,而是基于这条虚假记忆,推演出“全仓做空”的致命策略。
- 执行机械臂闭眼拔线:执行 Agent 看到群里两位大佬都达成了共识,直接调用券商接口下单。
砰,爆仓了。
事后去查日志排错时,你会发现这简直是一笔糊涂账:到底是谁写的假消息?是谁把它放大的?这就是把共享记忆当大锅饭吃的下场。多 Agent 的本质不是“一群聪明的脑子在自由讨论”,而是**“一套严密的工业流水线在传递结构化数据”**。
二、 读写锁与物理隔离:给 Agent 戴上镣铐
怎么解决这个问题?核心思路就四个字:物理隔离。
就像公司里不同部门绝不会共用同一个无权限控制的 Excel 表格一样,Agent 之间也绝不能共享同一个自然语言的 Context。
每一个 Agent 都必须拥有自己的**“私有记忆区(临时草稿本)”,并且对外严格遵循读写锁机制**。
- 情报特工:只拥有外部数据的读权限。它思考、提炼的中间过程全部存在私有记忆区,绝不公开。
- 风控纪委:拥有极高的权限隔离级别。它的“风控红线规则库”是绝对的私有记忆,如果让情报特工看到了风控底线,大模型甚至会“谄媚”地修改情报来迎合风控。
- 逻辑推演师:只能“读”情报,不能“改”情报;只能“写”策略,不能“执行”策略。
通过这种方式,我们把 Agent 的自由度锁死在它自己的工作台上,谁也别想去动别人的桌子。
三、 消息总线:抛弃长文本,用 JSON 和追踪号通信
既然不共享大脑,那 Agent 之间怎么交换信息?答案是:引入中央消息总线(Message Bus)。
在成熟的工程架构里,Agent 之间绝对不应该通过自然语言长文本来通信。长文本意味着模糊、不可控和解析成本高。
它们之间的通信必须是高度结构化的 JSON 标签,并且每一条消息都必须带上追踪号(Trace ID)。
下面是一段简化的状态机通信伪代码:
类 消息总线:定义 发布主题(主题名,追踪号,结构化载荷,签名者):# 记录到审计日志数据库.写入(主题名,追踪号,结构化载荷,签名者,时间戳)触发下游订阅(主题名)定义 情报特工_工作流(原文):追踪号=生成全局唯一ID()# 思考过程放在私有区,不外传私有草稿=大模型.分析(原文)# 最终只向总线发布提纯后的 JSON载荷={"事件":"高管变动","情绪得分":-80}消息总线.发布主题("情报提炼区",追踪号,载荷,签名者="情报Agent")定义 逻辑推演师_工作流(监听事件):如果 监听事件.主题=="情报提炼区":# 带着同一个追踪号流转策略载荷={"动作":"减仓","依据":监听事件.载荷.事件}消息总线.发布主题("策略下发区",监听事件.追踪号,策略载荷,签名者="逻辑Agent")为什么一定要带追踪号(Trace ID)?
因为有了追踪号,一旦某笔交易爆仓,我们立刻能根据这个 ID,在数据库里把这条流水线上所有 Agent 的操作记录(包括谁在什么时间发了什么 JSON)全部拉出来。这就是防甩锅的终极利器。
四、 总结:Agent 越界是万恶之源
当我们谈论多 Agent 架构时,很多人的第一反应是怎么让它们变得更聪明、怎么让它们互相启发。
但在真实的生产环境中,聪明往往伴随着失控。架构师的核心任务,不是教 Agent 怎么聊天,而是给它们划定边界。
把全局共享的记忆大锅饭砸掉,换成带权限隔离的私有草稿本;把自然语言的自由沟通掐断,换成带 Trace ID 的结构化 JSON 总线。只有当每一个 Agent 都像流水线上的齿轮一样各司其职、互不干涉时,你的多 Agent 系统才算真正具备了上生产环境的资格。
