以完全相同方式摧毁两个不同多智能体团队的无声故障
摘要
两个不同多智能体系统团队遭遇了相同的无声故障,由智能体以不同格式写入同一键值引起,导致幽灵数据损坏。文章讨论了包括模式验证、写后读验证以及引入“未确认”状态用于不可验证操作的解决方案。
今天与另一位运行25个智能体的构建者交流。完全不同的技术栈——文件系统加问题单代替共享内存。架构非常不同。同样的失败模式困扰了我们双方:两个智能体以不同格式写入同一个键。他们花了数周才发现幽灵数据损坏。他们的修复是完全脱离运行时内存,而我们是添加模式验证和去重防护。同样的教训,不同的解决方案:**状态边界的无声故障是多智能体系统中最难调试的问题。**
上游智能体写入成功。下游智能体读到了垃圾数据。没有抛出错误,没有触发重试,没有警报。系统只是静默地运行错误。
我们添加了:
- 每个内存键的带类型模式——不符合的写入会硬失败,而不是静默失败
- 在标记任何外部动作完成前进行写后读验证
- 第三种返回状态:成功 / 失败 / **未确认**(感谢 u/ProgressSensitive826 提供的这一模式——系统性修复而不是针对个别问题打地鼠)
未确认状态是关键变更。一个无法验证动作是否完成的OK状态变为未确认,而不是成功。智能体会重试或升级处理。在此之前我们逐个修补单个无声故障,但新的故障不断出现。
仍有一个开放问题:通过模式检查但下游产生错误结构的形状失败。我们正在对此进行提交后负载验证。
你们遇到了哪些状态边界故障?
相似文章
两个工作者同时写入了同一个键。两次写入都“成功了”。其中一个消失了。
讨论了多智能体系统中共享状态的两个故障模式——并发丢失更新和僵尸写入者,并提出了一种带有栅栏写入者和模型验证保证的解决方案。
@hanakoxbt: 你的两个智能体并没有在协作。第二个正在重做第一个的工作。从轨迹中看起来像团队合作…
讨论了多智能体LLM系统中的一个常见失败模式:交接总结丢失了证据,导致重复工作。建议传递工件(文件、模式、捕获的响应)而不是描述性文字总结,以保留上下文。
在实践中,我们的多智能体失败几乎从来不是模型的问题——而是交接环节的问题。MAST数据是否符合您的观察?
对多智能体LLM流水线失败的分析,引用伯克利MAST论文,该论文将大多数失败归因于协调问题(规范、智能体间不一致)而非模型能力,并建议使用专用验证智能体作为解决方案。
AI代理的失败方式鲜有人论及。以下是我亲眼所见。
文章强调了AI代理工作流程中实际的系统级失败,例如上下文泄漏和幻觉细节,认为这些通常是基础设施问题而非模型缺陷。
我们不断看到AI代理意外地修改或部署真实基础设施——你希望在实际故障发生前捕捉到哪种具体失败?
本文强调了AI代理无意中修改或部署真实基础设施这一反复出现的问题,并引发了一场关于应在故障发生前捕捉哪些类型失败的讨论。