你的智能体完美完成任务,但它能再次做到吗?
摘要
本文探讨了AI智能体的一致性问题,即在重复尝试中任务可能失败,并介绍了ALTK-Evolve的Consistency Analyzer,用于诊断和提高可靠性,在不降低平均准确率的情况下,将一致性差距从24.4个百分点缩小到12.0个百分点。
查看缓存全文
缓存时间: 2026/09/15 20:32
你的智能体曾完美完成任务,下次还能成功吗?
来源:https://huggingface.co/blog/ibm-research/altk-evolve-consistency 你的智能体在演练中表现出色,但在现场演示时却走了另一条路,导致同一任务失败。
这在舞台上令人尴尬,在生产环境中则构成可靠性问题:一次成功的工作流,可能在用户下次提出相同请求时失败。对于核对金融交易或审查合同义务等关键任务,这可能是致命缺陷。
多数基准测试用平均值掩盖了这种波动性。在 AppWorld 平台中,一个使用 GPT-4.1 的 ReAct 智能体在五次重复测试中取得了 77.4% 的平均成功率,但只有 53.0% 的任务在所有五次运行中都成功——存在 24.4 个百分点的一致性差距。
大多数基准测试报告的是第一个数字。我们建立了一种测量第二个数字的方法,并以此进行改进。
在之前的文章中,我们介绍了 ALTK-Evolve (https://huggingface.co/blog/ibm-research/altk-evolve)——一个能将智能体自身的过往轨迹自动提炼为可复用准则,并在推理时注入的系统。它能显著提升任务成功率,但那些结果也只考察了平均情况。本文引入了 一致性准则,这是 altk-evolve (https://github.com/AgentToolkit/altk-evolve) 中的一种新准则类型,基于我们称为 一致性分析器 的诊断工具构建,旨在直接解决这一差距。
要点速览
- 准确率掩盖了不可靠性问题。 一个在 AppWorld
test_normal上平均成功率为 77.4% 的 ReAct 智能体(GPT-4.1),只有 53.0% 的任务在所有 5 次重复运行中都成功——存在 24.4 个百分点的一致性差距。在困难任务上,这一差距达到 30 个百分点。 - 我们构建了专门的诊断工具。 一致性分析器通过对智能体自身已记录轨迹进行重采样,找出易翻转的决策点——即模型在某一 token 采样上差点做出不同选择的步骤。它只需一次执行轨迹且无需真实标签——通过一次调用请求 k 个补全(默认 k=5),对该轨迹中的每个决策点进行重采样,而无需端到端地重新运行任务。
- 将诊断转化为准则,可将差距减半——从 24.4 个百分点降至 12.0 个百分点(同一任务 Pass5 提升 +16.0pp,相似任务 +13.0pp),且平均准确率不受影响。
- 完整方法论和评估结果见 arXiv 技术报告 (https://arxiv.org/abs/2609.08832)。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#the-metric-almost-nobody-reports几乎无人报告的指标
标准智能体评估报告 Mean@k:将基准测试运行 k 次,计算平均通过率。通常 k=3,有时仅为 1。这是所有排行榜上的数字,也是实践中“77% 准确率”的含义。
Mean@k 回答“这个智能体平均表现如何?”但它无法回答真实用户关心的问题:如果我再问一次完全相同的问题,它还会表现好吗? 要回答这个问题,你需要 Pass^k:智能体在所有 k 次运行中都成功的任务比例。
⚠️ Pass^k 不是 Pass@k。常见的 Pass@k 是乐观的——它询问 k 次尝试中是否有至少一次成功,这适用于可验证并重试的场景。Pass^k 是其悲观的镜像:每次尝试都必须成功。字母相同,问题相反。始终满足 Pass^k ≤ Mean@k ≤ Pass@k。
按任务难度划分的 Mean@5 与 Pass^5(GPT-4.1 在 AppWorld test_normal 上的表现),红色标注一致性差距
由 GPT-4.1 支持的 ReAct 智能体的 Mean@5 为 77.4%——确实很强。但 Pass^5 仅为 53.0%。近四分之一的基准测试任务,智能体有时能解决有时不能,而任务本身在两次运行间并无任何变化。我们称这个差距——Mean@k 减去 Pass^k——为 一致性差距。
这不是一个能用更大模型解决的能力问题。这是一个正交维度:一个智能体可以既具备能力又不一致。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#why-agents-flip-sharp-decisions-vs-flat-ones智能体为何翻转:明确决策 vs. 模糊决策
每当一个 LLM 智能体做出决定——调用哪个 API、传递什么参数、是否重试——该决定都源于对下一个 token 的概率分布。关键在于该分布的 形状。明确分布将大部分概率质量集中在一个 token 上:其他候选 token 远远落后,因此每次运行都会产生相同的选择。平坦分布则将相当的质量分散在几个近乎平局的 token 上,最终哪个胜出近乎抛硬币。
这种形状决定了需要多大的噪声才能改变结果。明确分布具有韧性——GPU 浮点数非结合性、请求批处理等平台效应会轻微扰动数字,但远不足以重新排列出明确的赢家。平坦分布则容易受到这种扰动的影响:近乎平局的分布在小扰动下可能重新排序。而且由于一条轨迹链接了数十个决策,每一步很小的翻转概率会累积成某次运行出现不同结果的大可能性。这就是 24 个百分点差距的来源。
这也是为什么这个问题在你的解码设置下依然存在。贪婪解码和固定种子管理的是分布如何被转换为 token——它们对分布本身没有任何影响。在托管端点上,概率在每次运行间会有轻微偏移,因此温度为零时对相同模型的相同提示,今天可能以某种方式解决平局,明天则可能以另一种方式解决。
我们的设置: ReAct 智能体在 temperature 0.0 下运行,因此上述所有差异均非常规采样所致。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#diagnose-then-fix先诊断,后修复
这就把问题转化为一个搜索:给定轨迹中的哪些步骤是平坦的——以及一旦知道,该如何处理?
一致性准则源于一个插入 ALTK-Evolve 现有机制的两阶段流程——由一种新的源信号驱动编写内容。
一致性准则流程图
1. 检测——一致性分析器。 给定一条已记录的轨迹,分析器通过受控重采样回放每个决策步骤,测量模型在该点的实际输出变异程度。具体而言,每个决策步骤进行一次额外的模型调用,离线执行一次——通过采样参数设置一次性抽取 k 个补全(默认 k=5)——重放已记录的上下文,而非新的工具调用或新的环境交互,也不是第二次端到端的任务展开。这会为每个决策步骤生成一个一致性分数,并写入记分卡,以精确定位哪些决策在下一次运行中存在翻转风险。检测完全黑盒化——无需 logits,无需模型内部信息,无需比已有轨迹更多的插桩。
2. 生成——针对性准则。 每个标记的步骤都成为标准 ALTK-Evolve 格式的一致性准则候选项,从而无缝接入现有的存储和检索流程。以下是一个真实示例,由 GPT-4.1 从 AppWorld 任务“根据我的 SimpleNote 笔记,我的待办事项清单中有多少项活动?”的轨迹生成:
[准则 1] 统计笔记内容中的复选框式标记时,应使用基于行的正则匹配,而非简单的子串计数——笔记标题常在图例行中重复标记符号。 [准则 2] 对笔记查询的搜索结果,务必通过检查多个匹配项并确认正确笔记后再继续操作。
这里的内容并非任务特定的琐碎信息。字符串计数错误和未验证的搜索结果是在多个 AppWorld 任务中高频出现的高不确定性决策点。这正是重点:分析器针对的是不稳定性,而非失败——因此它能捕捉那些智能体这次碰巧做对,但下次很可能做错的步骤。
观看 2 分钟演示 (https://www.youtube.com/watch?v=qlp7EzXe8Pg)——五次并行运行的智能体因对计数策略的不确定性而在此任务上出现 3-2 分歧,随后在注入这些准则后再次运行:五次结果完全一致。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#results-reducing-the-gap-without-losing-accuracy结果:在不损失准确率的前提下缩小差距
我们在 AppWorld test_normal(168 个任务)上使用 GPT-4.1 的 ReAct 智能体进行了评估,为每个任务从单个基线轨迹生成一致性准则,并在 5 次新运行中进行测试。
从基线到一致性准则的 Pass5 提升(按任务难度划分,GPT-4.1 在 AppWorld test_normal 上的表现)
Mean@5 汇总对比(基线 vs. 一致性准则),与上方 Pass5 图表同比例尺
Mean@5 (%),汇总——与上方 Pass^5 同比例尺。
一致性差距被削减了近一半。 汇总的 Pass^5 从 53.0% 提升至 69.0%,而 Mean@5 从 77.4% 提升至 81.0%,将“看起来有能力”与“可以信赖”之间的差距从 24.4 个百分点缩小至 12.0 个百分点。近三分之一的先前不一致任务变成了智能体每次运行都通过的任务。
中等和困难层级获益最大。 中等难度 +22.9pp(相对提升 +44%),困难 +14.3pp(相对提升 +45%)——相对提升幅度接近,绝对值上中等难度领先。简单难度获益 +12.2pp,因其原有空间最小。这正是设计一致性准则的目的:找到并稳定那些智能体自身不确定性渗入结果的特定决策点。
Mean@5 从未下降。 保持平均准确率是硬性要求,而非锦上添花:一个通过牺牲 Mean@5 来提升 Pass^5 的系统只是转移了不可靠性,并未解决问题。平均准确率在每个难度级别都保持或提升了。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#the-guidelines-generalize–they-arent-patching-one-trajectory准则具有泛化能力——它们并非修补单一轨迹
应用于同一 AppWorld 场景中不同但相关的任务——准则挖掘场景的另一变体——一致性准则仍能将 Pass^5 提升 +13.0pp,仅比同一任务的数字低 3 个百分点。从一次运行导出的准则不仅仅修补了那次运行;它捕捉到了可迁移的内容。
更有力的证据来自较弱的模型 gpt-oss-120b。同一任务的 Pass^5 从更低的基线上升了 +6.0pp(10.1% → 16.1%)——并且有趣的是,相似任务的泛化数字(+8.7pp)实际上超过了同一任务的提升,这表明准则捕捉的是真正可复用的失败模式,而非记忆某条轨迹的具体细节。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#if-youre-shipping-an-agent如果你正在部署智能体
- 在报告 Mean@k 的同时报告 Pass^k。 平均值无法区分可靠的智能体和幸运的智能体;即使 k=3 也能揭示你未曾察觉的差距。
- 预期差距随难度增大。 你的最困难层级是单一平均数字最具误导性的地方。
- 不要优先选择更大的模型。 一致性与能力是正交的。更强的模型提升 Mean@k;但不一定减少一致性差距。
- 诊断无需评分者和实时回放。每个决策步骤仅需一次额外的 LLM 调用(默认采样 k=5 个补全)即可——无需真实标签,无需针对环境重新运行任务。这使其能在生产流量中使用,而在那里你通常甚至无法端到端地回放一次任务。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#try-it试试看
尝试 ALTK-Evolve 工具包 (https://github.com/AgentToolkit/altk-evolve) —— 开源仓库现在包含了这些实验中使用的一致性分析器和一致性准则生成器——或阅读 arXiv 技术报告 (https://arxiv.org/abs/2609.08832) 了解完整方法论。
如果你的准确率数字在你自己的任务上无法复现,这听起来很熟悉,我们希望听到你的消息——你智能体中具体的易翻转行为实例,正是塑造我们下一步构建内容的那种反馈。提交 issue 或发起讨论 (https://github.com/AgentToolkit/altk-evolve)。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#appendix-understanding-the-metrics附录:理解指标
- Mean@k。将任务运行 k 次,报告平均通过率——大多数基准测试称之为“准确率”。
- Pass^k。智能体在所有 k 次独立运行中都成功的任务比例。始终 ≤ Mean@k。用户两次运行相同查询时的体验。
- Pass@k。k 次运行中至少有一次成功——乐观的对应指标,常见于代码生成论文。
- 一致性差距。Mean@k − Pass^k,以百分点为单位。
https://huggingface.co/blog/ibm-research/altk-evolve-consistency#linked-artifacts–references关联制品 / 参考资料
- ALTK-Evolve 开源仓库 — github.com/AgentToolkit/altk-evolve (https://github.com/AgentToolkit/altk-evolve)
- 技术报告 — arXiv (https://arxiv.org/abs/2609.08832)
- 一致性准则演示 — 2 分钟视频 (https://www.youtube.com/watch?v=qlp7EzXe8Pg)
相似文章
一次成功的代理运行并不等同于验证。我们的一项相同模型消融研究完成了60/60个任务,但正确率为0/60。
本文基于一项消融研究,指出AI代理中成功完成任务并不保证正确性的一种失败模式,并介绍了AdaptOrch作为在代理工作流中实现外部验证和可靠性的工具。
不确定这是否有用,但这是我与AI获得一致结果的方法。
作者描述了一项为期三周的实验,测试AI代理的可靠性,发现使用相同模型的代理之间的一致性不可靠,并概述了一个需要人工批准关键决策的系统。
每个人都关注他们的智能体是否完成任务,但几乎没人问它是否在随着时间的推移变得更好
文章指出了AI智能体开发中一个常见的忽视点:虽然大多数团队会监控任务完成情况,但很少有系统能够捕获失败模式并将其反馈到未来的运行中,从而实现学习和持续改进。
有没有人也觉得AI代理在事情变得复杂之前都表现得很惊艳?
对AI代理令人印象深刻的演示和可靠的实际执行之间差距的反思,认为当前代理擅长结构化任务但在不可预测条件下会失败,并指出近期AI角色将主要集中于带人类监督的窄范围自动化。
真正让你头疼的AI代理故障不是崩溃,而是那些顺利完成却做错事的运行。
本文讨论了AI代理如何常常通过错误地完成任务而不崩溃,悄无声息地失败,导致未被检测到的错误。它强调了常见的失败模式,并探索了潜在的检测策略。