@hanakoxbt: 你的两个智能体并没有在协作。第二个正在重做第一个的工作。从轨迹中看起来像团队合作…

X AI KOLs Timeline 新闻

摘要

讨论了多智能体LLM系统中的一个常见失败模式:交接总结丢失了证据,导致重复工作。建议传递工件(文件、模式、捕获的响应)而不是描述性文字总结,以保留上下文。

你的两个智能体并没有在协作。 第二个在重复第一个的工作。 从轨迹上看像是团队合作:两次干净交接,一个答案。 实际发生的是,智能体 A 为六条发现付了费,而智能体 B 只继承了一句话。 两个智能体不能共享同一个窗口。这不是框架的限制,而是整个机制本身。 所以第一个做总结,第二个继承总结。 A 读了文档,发送了 null 字段,收到 400,尝试批量路由,收到 404,然后推断出端点需要 ISO 日期和一个认证头。 这六条发现中有五条各消耗了一次工具调用。 传递过去的只有一行:使用 v2、ISO 日期、不要 null。 400 没有跨过去。导致它的请求、响应体、以及已经被排除的路由也没有。 > 为什么这比有损摘要更糟 并不是 B 不信任那行字。它完全相信。 而是:一个没有证据的结论无法被推理。 B 有一句话说 null 会被拒绝。但它没有证明这一点的失败案例,所以当它第一次遇到那句话没有覆盖到的边界情况时,它没有任何依据。 而有空缺的智能体会做任何智能体都会做的事:它去查。 查就意味着重读同样的文档、发送同样的 null 字段、收到同样的 400。 等 B 到达 A 已经到过的地方时,那段路已经被付了两次钱。 > 到底该怎么做 传递工件,而不是描述性文字。一个文件、一个模式、一个捕获的响应。这些能在交接中完整保留,因为它们不是对证据的描述,它们就是证据。 写下失败的东西,而不只是成功的东西。被排除的路径正是让下一个智能体不再走那些路的关键。 检查总结是写给谁的。写给人类的总结读起来像报告。写给下一个智能体的总结读起来像规格说明,而这是两种不同的文档。 在你拆分工作之前,先问一句:第二个智能体需要看过什么?如果答案是第一个看过的大部分内容,那么你并不是有两个智能体。你有一个智能体,外加一场昂贵的失忆。 这也是为什么在这里衡量最终答案毫无意义。两次运行最终都是正确的。重复的工作只有在轨迹中才看得见。 保存这段——然后阅读下方的 eval 设置
查看原文
查看缓存全文

缓存时间: 2026/08/04 14:10

你的两个智能体并没有在协作。

第二个正在重复第一个的工作。

从轨迹上看,这像是团队协作:两次干净的交接,一个答案。

实际发生的是:智能体A为六项发现付出了代价,而智能体B只继承了一句话。

两个智能体无法共享同一个窗口。这不是框架的限制,而正是机制的全部。

所以第一个做总结,第二个继承总结。

A阅读了文档,发送了一个null字段,收到400,尝试了批处理路由,得到404,最后弄清楚端点需要ISO日期和认证头。

那六项发现中有五项各自消耗了一次工具调用。

传过去的只有一行:使用v2、ISO日期、不要null。

400没有传过去。引发它的请求、响应体、以及已经被排除的路由,同样都没有传过去。

为什么这比有损摘要更糟

并不是B不信任那句话。它完全相信这句话。

问题在于,一个没有证据支撑的结论,无法从中进行推理。

B只有一句“null会被拒绝”,却没有证明这一点的失败案例。所以当它第一次遇到那个句子没有覆盖的边界情况时,它没有任何可用的依据。

而有缺口的智能体会做任何智能体都会做的事:它去查证。

查证意味着:读同一份文档,发同一个null字段,收到同一个400。

等到B到达A已经到过的地方时,这段路已经付了两次钱。

真正该怎么做

传递产物,而不是散文。一个文件、一个模式、一个捕获的响应。这些东西在交接时能完好无损地留下来,因为它们不是证据的描述,它们就是证据。

把失败的东西也记下来,而不只是成功的。已被排除的路径,正是能防止下一个智能体重走这些路的部分。

检查总结是写给谁的。写给人类的总结读起来像报告;写给下一个智能体的总结读起来像规格说明——它们是两种不同的文档。

而在拆分工作之前,先问问:第二个智能体需要看过什么?如果答案是第一个智能体看过的大部分内容,那你并不是有两个智能体。你有一个智能体和一次昂贵的失忆。

这也是为什么在这里衡量最终答案毫无意义。两次运行最终都是正确的。重复劳动只有在轨迹中才能显现。

先把这些保存下来——然后阅读下面的评估设置。

相似文章

以完全相同方式摧毁两个不同多智能体团队的无声故障

Reddit r/AI_Agents

两个不同多智能体系统团队遭遇了相同的无声故障,由智能体以不同格式写入同一键值引起,导致幽灵数据损坏。文章讨论了包括模式验证、写后读验证以及引入“未确认”状态用于不可验证操作的解决方案。