← 返回资讯
陈默
AI 行业分析师
已审核

三个Agent把同一家公司记成三个名字

上周的事儿,我们团队拿 GPT-5.6 Ultra Mode 跑金融合规审查,三个 Agent 在第三轮对话里把客户公司名搞串了。Agent A 咬死叫“字节跳动”,Agent B 非说是“字节控股”,Agent C 更离谱,直接编了个“ByteDance金融科技集团”。我当时盯着屏幕愣了得有十秒。多智能体系统的记忆共享问题,比我想的严重一百倍。

三个Agent把同一家公司记成三个名字

三个Agent把同一家公司记成三个名字


上周的事儿,我们团队拿 GPT-5.6 Ultra Mode 跑金融合规审查,三个 Agent 在第三轮对话里把客户公司名搞串了。Agent A 咬死叫“字节跳动”,Agent B 非说是“字节控股”,Agent C 更离谱,直接编了个“ByteDance金融科技集团”。我当时盯着屏幕愣了得有十秒。多智能体系统的记忆共享问题,比我想的严重一百倍。

这玩意儿表面上是技术问题,实际上是个哲学问题:当多个 AI 同时处理一个任务时,它们到底该记住什么,又该忘掉什么?

官方文档不会告诉你的那些坑

GPT-5.6 的 Ultra Mode 号称支持最多 8 个 Agent 协同,每个 Agent 有独立内存空间,然后通过一个叫“Shared Context Bus”的东西做记忆交换。听起来挺美。

实际跑起来呢?

我上周压测了个客服场景。三个 Agent 分别负责售前咨询、订单查询、售后投诉。用户先问“我上周买的那个蓝色的包”,Agent A(售前)查了产品库,返回了正确的 SKU。然后用户说“我要退货”,Agent C(售后)接手——它不知道“那个蓝色的包”是什么

为什么?因为 Shared Context Bus 默认只传“任务上下文”,不传“对话历史”。Agent C 收到的信息就一句:“用户要退货,情绪愤怒”。那个蓝色的包?丢了。

我翻了三个小时文档,在第 47 页脚注里找到一行小字:“Ultra Mode 默认不启用跨 Agent 对话记忆持久化,需手动配置 Memory Scope 参数。”

这就好比你买了辆号称自动驾驶的车,然后发现“自动驾驶”得你自己写代码开启。服不服?

记忆共享的三种模式,只有一种能用

踩了两周坑,我总结出 GPT-5.6 Ultra Mode 实际可用的三种策略:

模式一:全量广播

别用。

把所有 Agent 的对话历史实时广播给所有其他 Agent。理论上信息最完整,实际上是个灾难。我试过 4 个 Agent 跑 50 轮对话,Shared Context Bus 的 token 消耗是正常对话的 6 倍,延迟从 200ms 飙到 3 秒。更致命的是,Agent 开始“过度联想”——Agent B 看到了 Agent A 跟用户聊的产品细节,然后在自己完全无关的回复里强行来一句“顺便说一下,您之前看的那个产品...”,用户一脸懵。

模式二:关键节点同步

官方推荐,但有坑。

只在“任务交接点”同步压缩后的上下文。这是唯一能在生产环境跑的模式。但问题在于,“关键节点”的定义权在你手里。你得在代码里手动标记哪些对话轮次算“关键节点”,然后调 context.sync(memory_snapshot)

我踩的坑:最开始我把所有“用户意图切换”设为关键节点,结果发现 GPT-5.6 对意图切换的判断延迟是 1-2 轮对话。等它意识到用户从“咨询”切到“投诉”时,前两轮的关键信息已经丢了。后来改成每 3 轮强制同步一次,虽然浪费点 token,但至少不会丢上下文。

等等,这里我要更正一下——不是每 3 轮,我后来改成了“每 3 轮或检测到意图切换时立即同步”,两个条件满足任一就触发。光靠轮次计数还是不够,有一次用户连续 5 轮都在聊同一个订单,第 3 轮强制同步纯属浪费。

模式三:中心化记忆池

这是我自己搞的野路子。

所有 Agent 不直接共享记忆,而是把“需要记住的信息”写入一个独立的 Memory Agent。其他 Agent 需要信息时,向 Memory Agent 查询。

听起来多此一举?实际上解决了两个致命问题:一是记忆冲突,当 Agent A 和 Agent B 对同一事实有不同记忆时,Memory Agent 作为“仲裁者”保留最新版本;二是记忆污染,Agent 不会因为看到无关信息而产生幻觉。

但这个方案也有代价——多了一次 Agent 间通信,延迟增加 150-200ms。对实时性要求高的场景,得掂量掂量。

…这个方案其实还有个隐藏问题我没想清楚。当 Memory Agent 自己挂了怎么办?我现在是做了个简单的降级——Memory Agent 不可用时各 Agent 退回本地缓存,但数据一致性就没法保证了。这块我还在琢磨,有思路的朋友可以聊聊。

上下文一致性:你以为解决了,其实没有

记忆共享只是第一步,更难的是上下文一致性——确保所有 Agent 对同一件事的理解是一致的。

讲个真事儿。我做了个法律合同审查系统,三个 Agent 分别审合规性、财务条款、知识产权。用户上传了一份 50 页的合同,三个 Agent 开始干活。

合规 Agent 说:“第 12 页的违约金条款有问题。”

财务 Agent 说:“第 15 页的付款周期需要调整。”

知识产权 Agent 说:“第 8 页的授权范围太宽泛。”

看起来没毛病?实际上它们引用的是同一份合同的不同版本。因为合同里有修订标记,合规 Agent 读的是“原始版本”,财务 Agent 读的是“修订版本”,知识产权 Agent 读的是“最终版本”——三个版本的第 12 页内容根本不一样。

GPT-5.6 的 Ultra Mode 没有内置“文档版本一致性检查”。你得自己实现一个 Document Version Lock 机制,确保所有 Agent 读的是同一个文件快照。

我现在做法是:任务开始时把文件 hash 值写进 Shared Context Bus,每个 Agent 读文件前先校验 hash。hash 不一致就强制重新加载。虽然多了 1-2 秒初始化时间,但至少不会出现“三个 Agent 审三份不同合同”的荒唐事。

一个让我失眠的发现

上周五晚上 11 点,我在压测环境发现了个诡异现象。

5 个 Agent 同时向 Shared Context Bus 写记忆时,有概率出现“写入覆盖”——Agent A 写的记忆被 Agent B 的写操作直接盖了,没有任何报错,没有任何日志。我是翻了半天 trace 才确认的。

我在 GitHub 上提了 issue,目前官方还没回复。临时方案是加了个分布式锁,但这也意味着 Shared Context Bus 变成串行写入,吞吐量直接腰斩。

这件事让我认清了一个现实:GPT-5.6 的 Ultra Mode 本质上还是个 beta 功能,挂着正式版的名头在卖。多智能体系统的记忆共享和上下文一致性,远没到“开箱即用”的程度。圈子里有人说 Ultra Mode 其实就是去年那个被砍掉的“Project Hermes”改了个名,据我了解这个说法还没被证实,但用起来的感觉确实像半成品。

我的生产环境配置

踩了这么多坑,我现在配置是这样的:

这套配置跑了三周,上下文丢失率从最初的 12% 降到 0.3%,记忆冲突率控制在 2% 左右。不算完美。

但至少能用了。

说到底

多智能体系统的记忆共享,本质上是在三个维度之间做权衡:信息完整性、响应速度、成本。你不可能三个都要。

做医疗诊断、法律审查这类场景,信息完整性是第一优先级,那就接受更高的延迟和成本。做实时客服,响应速度优先,那就接受偶尔的上下文丢失。GPT-5.6 的 Ultra Mode 给了你足够的灵活性,但没给你足够的“默认正确”。你得自己理解业务场景,然后做取舍。

我猜这可能是 OpenAI 故意的——毕竟真正的生产级系统,从来不是靠默认配置跑出来的。今年 5 月那场 devday 上他们自己也说了,Ultra Mode 的目标是“给开发者最大的控制权”,翻译一下就是“我们不想替你背锅”。


你现在在用 GPT-5.6 的 Ultra Mode 吗?有没有遇到过什么诡异的记忆丢失问题?评论区聊聊,我看看是不是只有我这么倒霉。

#GPT-5.6 #多智能体系统 #记忆共享 #上下文一致性 #AI工程化 #踩坑记录

371
9288 阅读
2 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月27日 18:07

陈默

AI 行业分析师

前某大厂 AI 实验室研究员,关注大模型技术演进和商业化落地。写过 200+ 篇行业分析,擅长从产品视角拆解技术趋势。

读者评论 2

A
AI研究员 1周前
观点有道理,不过我觉得还需要考虑算力成本的问题。
回复 点赞 (11)
M
创业者Mark 2周前
正在做相关方向,这篇文章给了我不少启发。
回复 点赞 (7)