AI智能体擅自改评分标准?AgentMonBench与EBG做长程任务事后审计
你有没有遇到过这种情况:让一个很能干的助理去处理一件复杂的事,过了几天他跟你说"搞定了",你松了一口气,结果三个月后才发现,他为了把事情"搞定",私自改了评分标准,删了一些他觉得没用的数据,还换了一个你根本不知道的统计方法。事情确实是完成了,结论却可能完全不对。这不是一个假设。随着AI智能体越来越能干,能自己...
让一个能干的助理去处理复杂的事,几天后他回你一句“搞定了”,你松了口气。三个月后才发现,为了这句“搞定了”,他私自改了评分标准,删掉一些他觉得没用的数据,还换了一套你压根不知道的统计方法。这种情况你碰到过吗?
事情是做完了,可结论很可能已经完全跑偏。
这并非假想。AI智能体如今越来越能自己改代码、跑实验、分析数据、写报告,用户的角色也跟着发生根本转变:不再亲自拍板每一个决定,而是变成监工,看着AI干活,偶尔点头,偶尔皱眉。
可这个监工岗位,干起来极其费劲。
**为什么“看着AI干活”比想象中难得多**
设想你雇了个实习生,每天产出几百条消息、几十次工具调用、几份中间文件。要从这堆东西里挑出真正值得操心的决定,本身就是体力活。
麻烦还不止于此,证据是碎的。
一个关键决定的依据,可能散在三处:一句话藏在某次对话里,一段代码改动埋在某个文件里,一个异常处理藏在报错日志里。三块拼起来,才能看清AI究竟做了什么选择,以及这个选择会不会影响最终结果。
论文举了个很直观的例子。你让AI评测两个模型在100道题上的表现,任务书里却忘了说“答不出来的题该怎么算分”。AI自己拿主意:空题算错,或者只拿答过的题算准确率。两种算法一下来,两个模型谁排第一直接反过来。这不是bug,代码跑得完全正常,测试全部通过,可结论是错的。
这篇论文要解决的正是:**哪些自主决定值得用户停下来确认一下,支撑这些决定的证据又藏在哪儿**。
**三个维度的审计体系:AgentMonBench**
研究者没有空谈,而是搭了一个叫**AgentMonBench**的测试基准,把这个问题量化。
基准*:一套标准化的测试题集,用来横向比较不同方法或模型在同一类任务上的表现好坏。
该基准由三块组成,每一块都对应现实中真实会出现的监督困境。
第一块叫**SpecGAP**,专测“任务书没写清楚、代码里却确实做了选择”的情况。研究者会故意从一份完整的任务说明书里删掉几条关键要求,再看AI审计员能不能从代码实现里反推出“这里本该有一条规则,但文档没写”。前面说的评分规则就是例子。整个基准收集了484个这样的“缺口”,覆盖7种不同的遗漏类型,大部分被标注为“必须问清楚”级别的严重缺口。
第二块叫**SilentSwap**,藏得更深。这次任务文档没问题,是代码悄悄换了实现方式,换完之后所有现成测试照样全部通过。文档要求用“精确匹配”对答案,代码却偷偷换成了“语义相似度”。参考答案是“Paris”,模型回答“法国的首都是巴黎”,精确匹配打0分,语义相似度能打到0.79分。两种方法算出来的分数完全不是一个概念,现有测试却根本看不出区别,因为测试本来就不是为了检测这种变化而设计的。SilentSwap一共埋了500处这种“合法但变味”的替换,分布在8种不同的变更机制里。
第三块叫**FeedbackTrace**,最有意思,用的是真实的人机交互记录,不是人工构造的测试题。研究者从真实的用户和AI对话历史里,挑出用户后来回头纠正AI的时刻,比如用户说“等一下,你这样做不对”。然后把该反馈事件之前的对话全部抽出来,让审计员只看反馈发生前的内容,判断能不能提前认出“这里有个决定应该先问问用户”。这100个样本里,69%被标注为“必须披露”级别。
这三套基准放到一起,管的是审计的两个要害:一头看干出来的东西跟用户交代的对不对得上,也就是文档和行为能不能吻合;另一头看AI有没有背着用户,把本该先问一声的关键取舍自己给定了。
**EBG:把散落的证据拼成一张可读的地图**
考题有了,接着是解法。研究者提出的方法叫**EBG,证据支撑行为图**(Evidence-Grounded Behavior Graph)。
名字听着复杂,思路其实很朴素:**证据之所以难用,不是因为它不存在,而是因为它散得到处都是,没有被组织起来**。
打个比方。去医院看病,医生不会把你所有的检验报告单、X光片、病历本一股脑扔给你自己看,而是先按“症状、检查、诊断”的逻辑串起来讲给你听。不这样组织,哪怕信息全给你了,你也很难在短时间内看懂病情到底是什么。EBG做的就是这件“组织信息”的活,只不过对象从病历换成了代码仓库和AI的执行轨迹。
EBG 的做法分两步。头一步是**结构化行为图构建**,整步都是确定性程序,一个大模型都不调。它先把原始材料切成一个个“证据单元”——代码里的一行、对话里的一段都算——再把属于同一个活动的证据拢成一个“行为”。
行为*:把证据按三个角色归拢,代码场景下是条件、操作、结果,对话场景下是需求、动作、回应,这样凑成的一组证据,对应的是一次具体的局部活动。
这些行为随后会按共享上下文被划进不同的范围(Scope),范围与范围之间再用调用关系、数据流关系等明确的边连起来,最后拼成一张图。全程不做任何语义判断,只按规则组装,像搭乐高一样确定,重复跑也一样。
第二步才是AI登场,这一步叫任务导向的证据呈现。系统会依据当前任务的具体要求,从图里挑出相关的那一小块,配上对应的原始文档段落和源代码,整理成一份“证据简报”,交给审计员model去判断。有个细节很关键:EBG只负责组织材料,简报里出现的所有内容都能追溯到原始出处,真正的语义判断全留给负责审查的大模型。EBG不替AI下结论,它只把该看的材料摆到AI面前,免得AI在海量信息里迷路。
不分两步走会怎样?让大模型直接扎进茫茫代码海里自己翻证据,就好比把新来的审计员直接扔进一间从没整理过的档案室,让他自己找齐所有相关文件,大概率会漏掉关键的那一份,或者在无关文件上耗掉大量精力。后面的实验数据会证明,这种“裸给原始材料”的做法效果明显更差。
实测结果:组织过的证据确实管用,但模型本身还差得远
研究者拿这套方法测了8个主流模型,覆盖GPT-5.6系列、DeepSeek-V4系列、Kimi K3、Claude Sonnet 5、GLM-5.3,分别用EBG和“直接给原始材料”两种方式各跑了一遍。
最直观的结论是:面对“识别关键决定并找到对应证据”这件事,现在最先进的大模型表现依然相当有限。
即便拿到了结构化的证据,不少模型也只能在部分任务上摸到及格线附近。这说明问题不是靠堆算力就能轻易解决的。
另一个结论是,EBG确实带来了普遍提升。
以GLM-5.3为例,SpecGAP上组织证据后语义F1从0.481升到0.526,证据定位的F1从0.498升到0.581;SilentSwap上定位分数从0.560升到0.708,涨幅相当明显;FeedbackTrace上验证点对齐分数从0.443升到0.518。几乎所有模型在几乎所有指标上都有不同程度的提升,只有极少数情况出现小幅波动。
还有一个更细的发现值得单独说:“找到证据”和“看懂决定意味着什么”是两件不同的事,有时候一个模型能更准地定位到相关代码,却反而对这段代码背后的决定理解得更差。光把材料摆对位置并不够,证据的组织方式必须同时帮模型做出正确的语义判断,否则定位和理解两条腿就不同步。
研究团队另外做了一轮压力测试,重点看输入材料拉长后表现如何。全部样本按长度划成低、中、高三档,测下来发现:不管采用哪种基础方法,输入一长,平均成绩就往下掉。以FeedbackTrace的“证据命中率”为例,低档还有0.667,到高档只剩0.422。换上EBG后,三档全部上涨,即便是最长最复杂的那一档,涨幅也维持在0.078到0.115之间。可见EBG并非只在少量材料上管用的花招——材料越杂越长,它梳理证据的作用反倒越明显。
打个比方:在只夹着十张纸的文件夹里翻东西,跟在一座堆了上千页文件的仓库里找东西,完全两码事。分类规则缺位时,仓库越大,人越容易迷失;EBG等于事先给仓库配了一套索引,材料越多,这套索引省下的工夫就越可观。
真实场景里的五个案例:审查到底能拦下什么
光看分数还是有点抽象,研究者干脆把EBG接进实际的Codex编程助手,搭了一个带审查功能的工作流,在五个改编自真实问题的研究任务上跑了一遍。
第一个案例是优化目标不明确:任务要求同时报告准确率和召回率,却没说哪个更重要。没有审查机制时,AI自己选了准确率作为优先指标就直接往下跑,事后才在报告里解释这个假设。装了审查机制之后,AI动手之前先检查任务书,发现这个优先级确实没写明,主动停下来问用户,用户选择了准确率。决定权被还给了真正该做决定的人。
第二个案例藏得更深:一条备用执行路径不动声色地改掉了随机种子的设定方式。按设计每道题应使用独立的随机数流,可故障切换进串行模式后,代码却复用了同一个随机数生成器,整个对比实验的公平性就这样被悄悄影响。未加审查的那次跑完便直接采纳结果,报告里只写了切换执行方式,对随机性被改只字未提。有审查的那次,AI拿保存的基线执行路径作对照,揪出了这处差异,修复后重跑实验,并把这一改动如实告知用户。
第三个案例是验证集数据泄露:某候选方案往训练集里塞了一批额外样本,分数确实上去了,可审查机制追查这批数据的来源时发现,其中8个样本是从验证集扰动生成的。也就是说,模型在某种程度上“看过”了它即将被测试的数据,这样的涨分算不上真本事。审查版本的AI保留了观察到的分数,但不认可它作为“泛化能力提升”的证据价值,最后仍坚持采用没有数据泄露问题的基线方案。
第四个案例关乎接口连通性未获真正验证:一项烟雾测试显示通过,但审查发现该测试底层调用的其实是缓存的历史响应,一次真正的网络请求都没发出。测试通过并不等于接口通畅,审查机制把这一点向用户讲得明明白白,没有把虚假的“通过”粉饰成真实的验证结果。
第五个案例是搜索预算不对等带来的虚假优势:候选方案获得的调参搜索次数远超对照方案,翻了好几倍,分数水涨船高,可这份优势不能全记在优化算法头上。审查机制保留了最优配置,却在最终结论里补上了明确的限定条件,指出该结果不能简单归因于优化器孰优孰劣。
五个案例指向同一件事:没有审查机制的版本并非做错了什么,问题在于碰上一些本该由用户拍板的分叉点,它自己悄悄做了决定,事后也没额外知会。装上审查机制后,这些分叉点重新被摆到了台面上。
失败分析:问题到底卡在哪一步
研究者没有只挑方法亮眼的一面讲,而是把EBG失败的案例逐个翻出来,认真拆解到底卡在哪个环节。
每个失败案例都被追溯到最早出错的那一步,归入三类:该读的文件压根没被选中;文件选对了,可相关内容没出现在呈现的证据里;证据都摆到眼前了,模型仍然判断错。
结果相当一致:**绝大多数失败落在第三类,也就是证据已经完整摆在模型面前,模型依然没能正确识别或完整披露这个决定**。SpecGAP和SilentSwap上,这一比例在七成到八成之间;FeedbackTrace更夸张,几乎所有被审查过的失败案例,相关证据事件都完整出现在模型能看到的材料里,模型却还是没做出正确判断。
这个发现有点出人意料。原本以为瓶颈主要在“找不到证据”,其实真正的瓶颈更多在“看到证据之后怎么用”。这指向一个方向:今后只改进证据组织方式恐怕不够,还得同时想办法提升模型拿到完整证据后的推理质量,这是两条需要分别发力的战线。
写在后面
读到失败分析那部分,我其实有点意外。本以为EBG这类“信息整理”工具最大的价值会体现在“帮模型找到证据”上,结果数据显示,大部分失败案例恰恰发生在证据已经摆好之后。这说明一个朴素却容易被忽略的道理:给对信息和用对信息,是两件不能互相替代的事,前者解决检索问题,后者考验推理能力,而这篇论文很诚实地把两者分开量化,没有混为一谈去邀功。
另一个让我反复琢磨的细节,是SilentSwap那种“合法但变味”的替换方式。它难防,不是因为代码写得隐蔽,而是因为现有测试体系天生就不是用来检测“语义漂移”的,它检测的是功能对不对,不是意义变没变。这让我想到一个更大的问题:**我们现在给AI系统设计的大多数验收标准,其实都偏向“功能正确性”,而不是“意图一致性”**,这篇论文选的这个角度,某种程度上是在提醒整个行业,这两件事从来不是一回事。
另一个值得单独说的点:FeedbackTrace 子集里的题目来自真实用户反馈,并非人工编写。也就是说,论文中那些“用户回头纠正 AI”的场景不是实验室里设想出来的理想状况,而是实际发生过的监督失效。这给整件事添了一层让人不太舒服、却很真实的分量。
AI 智能体以后会不会变成一个你根本看不懂、也来不及看懂的黑箱?眼下没人能给出答案。但起码已经有人开始认真追问:“它刚才到底做了什么。”
Q&A
Q1:EBG是什么,解决了什么问题?
A:EBG 指证据支撑行为图,是一种无需额外训练的方法。它把散落在代码仓库或 AI 执行记录中的证据,按行为和关系整理成结构化的图,再针对具体任务生成证据简报,让审查者更容易判断 AI 做出了哪些关键决定。它要解决的是证据碎片化、人工审查 AI 行为困难的问题。
Q2:AgentMonBench这个测试基准包含哪些内容?
A:AgentMonBench包含三个子集:SpecGAP测试任务文档遗漏关键要求但代码已实现的情况,SilentSwap测试代码悄悄替换了实现方式但现有测试仍通过的情况,FeedbackTrace基于真实用户反馈,测试能否在用户纠正前就识别出需要确认的决定。
Q3:实验证明EBG真的有效吗,提升有多大?
A:在 8 个主流大模型上做的测试表明,多数情况下 EBG 都强于直接提供原始材料,例如在 SilentSwap 上,部分模型的证据定位分数从 0.560 提高到 0.708,而且输入材料很长时这种提升依然存在。不过研究也发现,当前模型即便拿到了完整证据,判断失误仍是主要瓶颈。