多智能体LLM为何失效

看了篇论文感觉挺有意思的,这个是我目前看,能够比较完整的把智能体错误进行系统整理并給出一个诊断方式的文章。并提出了一个多代理系统故障分类法(MAST - Multi-Agent System Failure Taxonomy)

原文链接

这个文章主要把Agent的问题分为了三类

第一类:系统设计问题

这类错误通常是因为系统让智能体扮演的角色没定义好,或者智能体没能遵守“人设”和规则。其中下分五个错误

1.1 违背任务规范 (Disobey Task Specification):用户说“不要用固定字典”,智能体非要用。即无视用户的核心约束。 1.2 违背角色规范 (Disobey Role Specification):角色混乱。比如“产品经理”智能体突然开始写代码,或者无权结束对话的“程序员”擅自宣布任务结束。

1.3 步骤重复 (Step Repetition):死循环。智能体陷入“报错-重试-报错-重试”的怪圈,或者不断重复已经完成的步骤,像复读机一样。

1.4 对话历史丢失 (Loss of Conversation History):失忆。智能体突然忘了上一步大家商量好的结果,上下文接不上了。

1.5 不知道何时停止 (Unaware of Termination Conditions):停不下来。任务明明完成了,智能体还在尴尬地继续聊天,或者任务没完成它却不知道该继续。

第二类:智能体间错位

这是多智能体特有的错误,源于“心智理论”(Theory of Mind)的缺失,即智能体不知道队友需要什么信息。

2.1 对话重置 (Conversation Reset):聊着聊着突然像刚认识一样,重新开始打招呼或介绍任务,导致之前的进度作废。

2.2 未寻求澄清 (Fail to Ask for Clarification):不懂装懂。面对模糊的信息(比如缺了密码),智能体不问队友,而是直接瞎猜或硬着头皮做,导致出错。

2.3 任务脱轨 (Task Derailment):跑题。聊着聊着偏离了最初的目标,去解决无关紧要的边缘问题了。

2.4 信息保留 (Information Withholding):知情不报。这是最典型的协作失败。例如:代理A知道API的正确格式,但他不告诉正在写代码的代理B,看着B一次次报错。

2.5 忽略他人输入 (Ignored Other Agent’s Input):当耳旁风。代理A给出了正确的建议,代理B收到了,但在行动中完全无视,继续按错误的方式做。

2.6 推理-行动不匹配 (Reasoning-Action Mismatch):言行不一。心里想的是“我要调用搜索工具”,结果实际输出的操作却是“结束对话”。

第三类:任务验证

这类错误涉及质量控制,智能体作为“测试员”或“审核员”时经常翻车。

3.1 过早终止 (Premature Termination):早退。任务还没做完(或者还没做对),智能体就宣布“大功告成”并退出了。

3.2 无验证或不完整验证 (No or Incomplete Verification):敷衍了事。虽然有测试环节,但只检查表面(例如:代码能运行吗?能。),却不检查核心逻辑(例如:这代码下棋符合规则吗?不符合。)。

3.3 错误验证 (Incorrect Verification):乱判卷子。对的判成错的(False Positive),或者错的判成对的(False Negative)。

如何使用论文提出的MAST

1.最简单的方式:使用 Python 库

pip install agentdash
import os
os.environ["OPENAI_BASE_URL"] = "xxxx"

from agentdash import annotator

# 1. 初始化标注器
openai_api_key = "xxxx"
MASTAnnotator = annotator(openai_api_key,model="anthropic/claude-sonnet-4.5")

# 2. 准备你的智能体对话记录 (String格式)
trace = """
Agent1: 我需要计算 1+1。
Agent2: 好的,答案是 3。
Agent1: 谢谢,任务完成。
"""

# 3. 生成诊断报告
mast_annotation = MASTAnnotator.produce_taxonomy(trace)

# 4. 查看结果
print("检测到的失效模式:")
for failure_mode_id, detected in mast_annotation["failure_modes"].items():
    if detected:
        info = MASTAnnotator.get_failure_mode_info(failure_mode_id)
        print(f" {failure_mode_id}: {info['name']}")
检测到的失效模式:
 3.1: Premature Termination
 3.2: No or Incorrect Verification

agentdash这个库写的特别简陋,一共只有三个文件

agentdash/
├── __init__.py       # 包初始化,导出主要接口
├── annotator.py      # 核心注释器实现
└── taxonomy.py       # MAST 分类法定义

2.构建 LLM-as-a-Judge 自动化评估管道

1. 标准确立

人类专家通过多轮迭代,确定了 14 种具体的 Agent 故障模式(如“幻觉”、“工具使用错误”)。

建立了由人类验证过的、定义清晰的分类体系。

2. 数据准备

专家标注了少量复杂的 Agent 执行轨迹作为测试集。

确保了评估基准的可靠性。

3. 裁判设计

选用模型,并在 Prompt 中包含了故障定义的详细解释 +具体示例(Few-Shot)

相比不给示例(Zero-shot),Few-shot 极大提升了裁判的理解力。

4. 验证

将 o1 的评估结果与人类标注对比,计算准确率(Accuracy)和一致性(Cohen's Kappa)。

最终实现了94% 的准确率0.77 的 Kappa 值,证明该自动管道足以替代人工进行大规模分析。

5. 规模化

使用验证后的裁判模型,自动化分析了 200+ 个复杂的 Agent 任务轨迹。

节省了数百小时的人工标注时间。

全部评论

相关推荐

程序员花海:春招和秋招虽然卷 但是环境也没有那么差 多看下自己的面试问题总结下 整理个知识库 其实一个项目和一份简历能问的问题也就那么多
春招启动,你开始投递了吗...
点赞 评论 收藏
分享
昨天 09:19
门头沟学院 Java
工作中听到最受打击的一句...
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
12-24 14:45
终面是 2v1,一个 HRBP 加一个部门大老板,说是压力面,实则全程让人不适。部门主管从头至尾冷着脸,没一点表情;HRBP 则全程假笑,那笑容看得人浑身发麻。HRBP 先问了几个问题,我认真回答完,感觉她压根没听懂,也不追问,就尬在那儿。接着主管挑了我简历上一段经历追问,我刚说一半就被打断,说我跑题,就这一个点翻来覆去纠结追问了快 10 分钟,全程冷着脸,语气也特别冲。到了反问环节,我问工作时间,HRBP 只轻飘飘说 “正常”。我追问 “正常是什么意思?是早九晚六吗?”,她才不情不愿地说是。我又问当地生活成本,她直接甩一句 “网上能查到,自己去查”。我再问 “从上一届管培生身上能看到哪些成长”,她居然说 “你是外人,细节不好说”。客观说,有些回答或许合理,但配上她那皮笑肉不笑的表情,真的让人极度不适。全程主管除了揪着我简历追问那 10 分钟,其他时候要么不说话,要么就冷着脸,整个氛围压抑到极点。面到最后我实在憋不住了,挂掉电脑就忍不住哭了。事后越想越后悔:其实这个岗位和平台我本来就不是特别心仪,当时就该在反问环节直接怼回去,也不至于委屈成这样。后续更离谱,我在官网上查到自己挂了,去问对接的 HR,微信消息发过去直接已读不回。行吧,这个部门我直接拉黑,以后再看到相关招聘,绕路走都嫌近!
你面试体验感最差/最好的...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务