并发智能体系统中的竞态条件:那些看起来像幻觉的 Bug
三个智能体并发处理同一个客户账户更新。三者都记录了成功。最终数据库状态同时出现了三处错误,且始终没有抛出任何异常。团队花了两周时间怪罪模型。
问题不在模型。是竞态条件。
这是生产环境多智能体系统中被误诊次数最多的故障模式:由并发状态访问引发的数据损坏,因为下游智能体会基于损坏的输入自信地进行推理,从而被误认为是幻觉。模型并没有在编造内容,它只是在忠实地处理垃圾数据。
三个智能体并发处理同一个客户账户更新。三者都记录了成功。最终数据库状态同时出现了三处错误,且始终没有抛出任何异常。团队花了两周时间怪罪模型。
问题不在模型。是竞态条件。
这是生产环境多智能体系统中被误诊次数最多的故障模式:由并发状态访问引发的数据损坏,因为下游智能体会基于损坏的输入自信地进行推理,从而被误认为是幻觉。模型并没有在编造内容,它只是在忠实地处理垃圾数据。
多智能体系统(Multi-agent systems)是基于一个承诺而诞生的:多个并行的专业化智能体协同工作,产生的结果会优于任何单个智能体。但这个承诺隐藏了一个前提——当智能体给出不同答案时,你知道如何调解它们。大多数团队在发现自己无法调解时,往往为时已晚。
天真的做法是取输出的平均值,或者选择多数票答案,然后继续。在实践中,如果所有智能体共享相同的训练分布,多智能体系统会通过多数表决放大它们的共同错误,而不是抵消错误。一个总是听从最有信心智能体的系统,会盲目跟随那个最过度自信的智能体。而一个将所有分歧都交给 LLM 裁判(LLM judge)处理的系统,会继承该裁判的 12 种已被记录的偏差类型。仲裁问题比看起来要难,如果处理不当,你可能会在一周内遇到四次生产事故。
提示注入吸引了所有关注。但提示注入在会话关闭时就结束了。内存投毒(Memory poisoning)——将恶意指令注入 Agent 的长期内存——会创建一个持久性的漏洞,跨会话存续并在几天或几周后执行,由完全不像攻击的交互触发。对生产级 Agent 系统的研究显示,在受测的基于 LLM 的 Agent 中,注入成功率超过 95%,攻击成功率超过 70%。这是大多数团队尚未防御的攻击向量,且它已经进入了 OWASP Agent 应用前十名(OWASP Top 10 for Agentic Applications)。
核心问题很简单:Agent 将自己的内存视为可信的。当 Agent 从向量库或对话历史中检索“内存”时,它处理这些信息的信心与处理系统指令时相同。没有加密签名,没有来源链,Agent 也没有机制来区分它是从真实交互中形成的内存,还是由上周二处理的某个恶意文档注入的。