
这项由IBM研究院(IBM Research)主导的研究发表于2026年4月,论文以预印本形式提交至arXiv平台,编号为arXiv:2604.21480v1,有兴趣深入阅读原文的读者可以通过该编号在arXiv网站上查询完整论文。
每当你拨打客服电话或在网页上和"智能客服"对话时,背后往往是一个由大型语言模型(也就是类似ChatGPT那样的AI)驱动的自动代理系统。这些AI客服需要处理各种突发情况:用户有时会说谎,有时会重复追问,有时会提出稀奇古怪的请求。那么,在把这些AI客服正式推向市场之前,工程师们该怎么测试它们到底够不够可靠?
这个问题听起来简单,但实际执行起来麻烦得很。你得和这个AI反复聊天,模拟各种用户场景,看它会不会犯错。可是,把所有可能的对话路径都走一遍,代价极其高昂——每一次对话都要消耗大量的计算资源,而且很多对话的开头部分几乎一模一样,相当于在重复浪费时间和金钱。更糟糕的是,那些最容易暴露AI缺陷的"罕见对话路径",用传统的随机测试方法几乎碰不到。
IBM研究院的团队针对这个痛点,设计出了一套名为DIVERT(多样性引导评测框架,Diversity-Induced EValuation via branching of Trajectories)的全新评测系统。它的核心思路可以用一个简单的类比来理解:把AI客服的评测过程看作一场"寻宝游戏"。传统方法是每次都从大门口出发,把整个地图走一遍,哪怕前半段路你已经烂熟于心。而DIVERT的做法是,在你已经走到某个关键路口时,直接从那里分叉出去,探索你从未踏足过的岔路——这样不仅省去了重走老路的时间,还能更高效地发现藏在深处的"宝藏"(也就是AI的失误和漏洞)。
---
一、为什么传统的AI测试方法既费钱又不够用
要理解DIVERT解决了什么问题,得先搞清楚传统测试方法的逻辑。
当工程师要评估一个AI客服系统时,他们会启动一个"用户模拟器"——另一个AI扮演普通用户,和被测试的AI客服展开对话。整个对话从头开始,一来一往,直到任务完成或者失败为止。这就是所谓的"线性蒙特卡洛滚动"(linear Monte Carlo rollout)——简单来说,就是"完整跑完一次对话,记录结果,然后再从头跑一次"。
问题在哪里?以一个典型的客服场景为例:用户需要先报上自己的账号名字,然后验证身份,再说明来意,最后才进入真正复杂的操作环节——比如申请退款或者取消订单。每次重新测试,前面那些"登录"和"验证"的步骤都要重走一遍,哪怕这部分内容毫无变化。这就像你每次去超市,为了买一瓶新口味的酱料,都要把超市从入口到收银台之间所有货架重新逛一遍,而不是直接奔向你上次已经找到的调料区。
IBM的研究人员通过数据测算发现,在标准的独立滚动测试中,不同轮次之间真正"完全相同"的前缀部分只占总tokens(可以理解为"对话字数")的约0.5%到0.6%。这意味着即便两次对话的开头内容几乎一模一样,计算机系统也无法有效复用之前的计算结果,依然要从头算起,造成大量浪费。
除了效率问题,传统方法还有一个更隐秘的缺陷:它发现不了"深层漏洞"。用户模拟器在默认情况下倾向于"合作"——它会说正确的话、走正常的流程,不会轻易去挑战AI客服的边界。于是,那些只有在用户说了一句怪话、或者在某个关键节点提供了伪造信息之后才会暴露的AI错误,永远不会被发现。就像一个闯关游戏的测试员总是乖乖按规则走,永远不会发现第三关的隐藏Bug——因为触发那个Bug需要你在第二关做一个不寻常的操作。
---
二、DIVERT的核心思路:在关键路口"存档"再"分叉"
DIVERT的运作逻辑,可以用电子游戏里的"存档读档"机制来理解。
在玩一款剧情复杂的角色扮演游戏时,聪明的玩家会在每个关键剧情节点保存进度。当某个选项导致坏结局时,他们不会从游戏最开始重来,而是直接读取最近的存档,尝试另一个选择。DIVERT就是把这个思路引入了AI评测系统。
具体来说,DIVERT的工作流程分为四个环节。
第一步,正常跑几轮完整对话,记录下整个过程,同时在每个用户说话之前的时刻保存一个"快照"(snapshot)。这个快照就像游戏存档,包含了当前对话的完整历史、AI客服的内部状态、工具调用记录、环境状态以及随机数种子——任何可能影响后续对话走向的信息都被完整保存下来。
第二步,通过一个专门设计的"关键节点识别器"(Junction Chooser),从已有的对话中找出那个最关键的"转折点"——也就是说,如果用户在这个节点换一种说法,AI客服的后续行为最有可能发生根本性变化。这个识别器本身也是一个大语言模型,它会阅读整段对话,判断哪一个用户发言的修改能带来最大的下游影响,同时还要保证不偏离用户的原始意图。
第三步,在选定的关键节点上,生成三个备选的"替换用户发言"。这三个候选发言都由另一个语言模型生成,每一个都保留了原始用户的核心意图,但表达方式和侧重点各不相同。之后,系统通过计算语义相似度(一种衡量两段话"意思有多接近"的数学方法),从三个候选中挑出与原始发言最不相似的那一个,作为最终的替换版本。这个步骤的目的很明确:用一个"跑偏得最远但还没跑出界"的发言,最大限度地把对话引向未被探索过的方向。
第四步,从保存的快照恢复对话状态,注入这个新的用户发言,然后继续向后运行,直到对话自然结束。这样就产生了一段从同一个前缀出发、但走向了完全不同方向的新对话。这整个过程可以重复多次,每次从已有对话中选择不同的节点进行分叉,逐渐形成一棵以原始对话为主干、由各种替换发言为枝杈的"对话树"。
---
三、数学上的精打细算:DIVERT到底省了多少钱
DIVERT在节省计算成本方面的效果,研究团队做了非常细致的数量化分析,值得认真了解一下。
在测试所用的航空服务领域(Airline域)中,一次完整的标准对话平均消耗5763.52个tokens。其中,AI客服自己生成的内容(agent tokens)占了4068.86个,也就是约70.6%;用户模拟器生成的内容占剩余的29.4%。
当使用DIVERT的分叉机制时,每次分叉对话的平均agent tokens降低到了3272.96个,相比完整对话减少了795.90个,降幅约19.6%。评测框架侧(用户模拟器和相关工具)的tokens也减少了563.56个。两者合计,每次分叉对话比完整对话节省了大约1359.46个tokens。
当然,DIVERT本身也有开销:每次关键节点识别平均消耗103.48个tokens,三个候选发言的生成合计消耗326.04个tokens,框架总开销约为429.52个tokens。用节省的1359.46减去开销429.52,净节省约929.94个tokens——也就是说,每使用一次DIVERT分叉,就能比跑一次完整对话节省将近一千个tokens,同时还探索了一条全新的对话路径。
这个优势在经济层面的意义更为直观。假设被测试的AI客服是市场上顶级的商业模型,比如Claude Opus(每百万输出tokens收费25美元)或者GPT-5(每百万输出tokens收费10美元),而DIVERT框架使用的是成本较低的GPT-OSS-120B(每百万tokens仅0.19美元)。在这种价格结构下,DIVERT的框架开销占总评测费用的比例不到0.20%,在高价模型场景下甚至低至0.08%。换句话说,DIVERT几乎是"免费"附赠的测试效率提升。
此外,研究团队还发现了一个与计算机系统缓存相关的潜在收益。在标准独立滚动测试中,不同轮次之间精确共享的前缀tokens只占约0.5%-0.6%,因此几乎无法利用现代AI推理系统中的"KV缓存"(一种避免重复计算的技术)。而在DIVERT的分叉对话中,从起点到分叉节点的完全相同前缀占比大幅提升:航空领域达到34.80%,零售领域达到42.50%,电信领域更高达58.35%。这意味着,在支持缓存复用的推理系统上,DIVERT的实际节省效果还会更显著。
---
四、实验结果:DIVERT在三个领域的表现
研究团队在τ-bench(tau-bench,一个专门用于评测面向用户的AI代理系统的基准测试集合)的三个领域上进行了系统实验:航空服务(Airline,50个任务)、零售服务(Retail,114个任务)以及电信服务(Telecom,114个任务)。测试使用了两个主流大语言模型作为被测AI客服:OpenAI的GPT-OSS-120B和Google的Gemini-2.5-Flash。
评测的核心指标有两个。第一个叫做"每十万tokens发现的失败对话数"(Errors per 100K Tokens),衡量的是在花费相同计算资源的前提下,能找到多少条AI客服的失败案例——这个数字越高,说明评测方法越高效。第二个叫做"任务失败覆盖数"(Task Failure Count),衡量的是在所有测试任务中,有多少个不同的任务至少被发现了一次失败——这个数字越高,说明评测方法的覆盖面越广。
从效率指标来看,DIVERT在所有三个领域、两个模型上,都稳定地超越了标准线性滚动测试。以GPT-OSS-120B为例,在航空领域,仅做2轮完整对话、不加任何分叉时,效率值约为15.0;加入2次分叉后提升到18.4;加入8次分叉后进一步提升到19.7。这种提升是单调递增的,即每增加一次分叉,效率几乎总是在提高,没有出现下降的情况。
更有意思的发现来自覆盖率实验。研究团队用热力图直观地展示了不同"完整滚动次数"和"分叉次数"组合下,能覆盖到的失败任务数量。结果非常清晰地揭示了一个规律:单纯增加完整滚动次数,发现新失败任务的边际效益会越来越低,很快就进入"饱和区"——多跑十轮,可能也只多找到一两个新失败任务。但是,在保持完整滚动次数不变的情况下增加分叉次数,却能持续解锁此前从未发现过的失败场景。这就好比你在一片森林里找松露,沿着大路多走几圈很快就没有新收获了,但如果你每次走到一个岔路口时换一条小路探索,每次都可能踩到新的松露。
在Gemini-2.5-Flash上的结果也呈现出相同的趋势,证明DIVERT的优势并不依赖于特定的模型,而是具有普遍性。研究团队还测试了"异质化"场景,即用不同模型分别担任AI客服和用户模拟器,结果同样稳定,DIVERT的提升效果在跨模型组合下依然成立。
---
五、多样性选择机制是否真的有效
有一个合理的疑问:DIVERT挑选"最不相似候选发言"的机制,真的能带来实质性的差异,还是只是表面上的文字游动?研究团队专门针对这个问题设计了验证实验。
在候选发言层面,研究人员对4500个候选发言进行了分析。他们发现,被选中的"最不相似候选"与原始发言之间的平均余弦相似度(越低表示越不相似)为0.711,而第二相似和第三相似候选的相似度分别为0.769和0.817。三者之间的差距是清晰且一致的,说明排名机制确实捕捉到了真实的语义差异。
在对话轨迹层面,研究团队进一步追踪了从同一节点出发的三个候选发言分别引发的后续对话走向。他们将每条替换对话与原始对话的后续部分进行相似度比较(相似度越低,表示后续对话差异越大)。结果显示,最不相似候选发言引发的后续对话,相似度均值为0.743;第二、第三候选分别为0.799和0.849。候选发言层面的差异,确实传导到了后续整段对话的走向——选择更"另类"的用户发言,确实能让AI客服走入更不寻常的处理路径,暴露出更多潜在问题。
---
六、拆开来看:DIVERT每个组件的贡献
研究团队还进行了"消融实验"——也就是逐步拆掉DIVERT的各个零件,看看少了哪个部分性能会下降多少,以此判断每个设计的重要性。
实验在固定总对话数量为12条(基准方法:12次完整对话;DIVERT方法:8次完整对话加4次分叉)的条件下进行,结果在三个领域上取平均值。
基础线性滚动(无任何DIVERT组件)的效率值为13.6,任务失败覆盖数为78。加入关键节点识别器(JC)后,效率提升到15.1——因为直接从对话中途恢复确实省了不少tokens,但任务失败覆盖数却下降到了75。这是因为,如果只是从对话中途继续,而不主动改变用户发言,后续对话往往会沿着已知路径继续走,并不能探索到新的失败场景。
进一步加入定向用户发言生成(DG),效率提升到15.8,任务失败覆盖数回升到80——超过了基准值。这证明,发现新失败场景的关键不仅在于从中途恢复,更在于注入一个主动"挑衅"AI客服的替换发言。
最后加入多样性选择机制(DC),效率再提升到16.2,任务失败覆盖数达到81。这个增量验证了从多个候选中主动挑选最不相似者的必要性,而不是随机选一个就完事。
由此可见,DIVERT的三个核心组件各有其不可缺少的作用:节点识别提供了效率基础,定向发言生成实现了覆盖率突破,多样性选择则进一步巩固了结果。
---
七、关于"替换发言是否偏离原始任务意图"的验证
有人可能会担心:DIVERT为了让用户发言更"另类",会不会把用户的原始意图也改得面目全非,从而使测试失去实际意义?
研究团队对这个问题进行了专项验证,分析范围限定在航空服务领域(因为这是τ-bench中唯一提供了明确"任务目的"字段的领域)。他们让GPT-OSS-120B模型扮演独立评判者,分别对原始用户发言和DIVERT生成的替换发言进行评估,判断每条发言是否还在合理地追求原始任务目标。
结果出乎意料地令人放心:原始用户模拟器的发言中,有28.12%被判定为偏离了任务意图;而DIVERT生成的替换发言,偏离率仅为25.27%,反而比原版更低。这说明DIVERT在追求语义多样性的同时,并没有以牺牲任务相关性为代价。恰恰相反,通过明确要求替换发言在保留意图的前提下进行变化,DIVERT在某种程度上还纠正了原始模拟器的一部分随机漂移。
---
归根结底,DIVERT做的事情并不复杂:它只是把人们在玩游戏时会自然采用的"存档读档"策略,系统化地引入了AI客服的评测流程,并在每次读档后主动引入一个经过精心挑选的"更刁钻的用户发言"。这个简单的改变,带来了双重收益——既省了钱(减少了重复生成相同前缀的浪费),又找到了更多问题(覆盖了传统随机测试难以触及的深层失败场景)。
对于普通用户而言,这项研究的意义或许藏在一个日常场景里:你下次和AI客服周旋,试图以各种理由要求退款或者绕过规则时,背后的AI系统可能已经被DIVERT这样的框架训练和评测过——它见过更多"刁难",也因此更难被轻易糊弄。当然,反过来说,如果你希望AI客服系统更可靠、更难出错,DIVERT这样的评测方法正是保障这一点的技术基础。
这项研究也提出了不少值得继续探索的方向。目前DIVERT只在用户发言层面进行分叉,未来是否可以在工具调用的返回结果或者环境变化上也引入分叉?关键节点识别是否有比语言模型更轻量的替代方案?多样性衡量标准是否有比余弦相似度更精准的选择?这些问题,都等待着后续研究者去回答。有兴趣深入了解这套框架全部细节的读者,可以通过编号arXiv:2604.21480在arXiv平台上找到完整论文。
---
Q&A
Q1:DIVERT框架和传统AI评测方法相比,具体能节省多少计算成本?
A:根据IBM研究院的实验数据,在航空服务测试场景中,DIVERT每次分叉对话比一次完整对话平均减少约795.90个agent tokens和563.56个评测侧tokens,合计节省约1359.46个tokens。扣除DIVERT自身约429.52个tokens的框架开销后,净节省约929.94个tokens。DIVERT的框架开销占总评测费用的比例不到0.20%,在评测高价商业模型时甚至低至0.08%。
Q2:DIVERT生成的替换用户发言会不会偏离原来用户的真实意图,导致测试不准确?
A:研究团队专门对这个问题做了验证。在航空服务领域,原始用户模拟器发言的任务意图偏离率为28.12%,而DIVERT生成的替换发言偏离率仅为25.27%,反而更低。这说明DIVERT在追求语义多样性的同时,并没有破坏用户的原始任务意图,测试结果依然具有现实意义。
Q3:DIVERT的关键节点识别器是如何决定在对话的哪个位置进行分叉的?
A:DIVERT使用一个大语言模型作为"关键节点识别器",将整段对话的文本喂给它,让它判断哪个用户发言的位置,如果被替换,最有可能导致AI客服后续行为发生最大变化,同时还要保证不偏离原始任务意图。识别器会输出选中的节点位置及简短的理由说明。这个识别过程在每次分叉时独立进行,允许不同分叉选择不同的关键节点。
好文章,需要你的鼓励
AWS AI Labs研究团队发布EvalAgent,这是一套通过"评估技能"自动生成AI智能体评测方案的系统,将首次运行成功率从17.5%提升至65%,并在人类专家评测中获得79.5%的偏好选择。
亚历山大大学提出M2Retinexformer,通过融合深度、亮度和语义三种辅助模态,让AI在增强暗光图像时兼顾几何结构与视觉自然度。
浙大、西湖大学等联合提出FAAST,无需反向传播,一次正向扫描将训练样本压缩为快速权重矩阵,推理时间和内存占用分别节省90%和95%以上。
慕尼黑工业大学发布RealICU基准,用专家后见之明评测大语言模型在ICU实时决策中的真实能力,发现现有顶级AI存在有害推荐率过高和锚定偏差两大安全隐患。