1. 项目概述1.1 核心需求解析先聊一个我在工作时经常被问到的问题:给大模型做个性能打分,到底是在测什么?是想知道它能不能一口气答对一百道数学题,还是想搞清楚它在真实的业务环境里能不能稳定输出?如果是针对AI Agent场景下的模型选型和评估,这个问题的答案就变得更复杂了。过去我们做大模型评测,最常干的事情就是摆开几个公开榜单,算一算MMLU、GPQA这类分数,再跑一跑人类偏好对齐的对比实验,感觉差不多就能拍板用哪个基座模型了。但到了Agent场景里,事情完全不是这么回事。Agent不是拿一段提示词让模型回答一个问题,而是让模型在一个状态不断变化的对话流程中,自主决策、调用工具、观察反馈、修正路线,最后完成一个相对复杂的目标。这个过程中的任何一次小失误,都可能被后续步骤无限放大。我最初接触Agent场景的模型评估,是从一个模拟项目X开始的。当时我们接入了一个通用对话模型做工具调用,简单跑了一下单轮的工具选择,准确率看着还行,大概有八成左右。结果把模型放到一个需要连续调用三次外部接口的任务里,成功率直接跌到了四成以下。这个反差让我意识到,Agent场景下的性能评估,跟传统的"问一句答一句"完全不是一个逻辑。那到底应该怎么测?一个有效的Agent性能评估体系,至少要覆盖三个层面:模型的单步决策准确性、多步任务的串联完成能力,以及整个链路上的资源消耗与容错能力。不能拿一把尺子量所有东西,因为即使是同一个基座模型,在不同Agent框架、不同提示词结构、不同工具定义风格下,表现差异可能非常惊人。这篇文章我会完整拆解一套针对AI Agent场景的大模型多维性能评估方案:包含我实际用过的评估维度设计、测试集怎么构造、过程和结果怎么分析、踩过哪些坑,以及那些在公开榜单里根本看不到的细节问题。内容不涉及学院派的理论框架,全是实操经验,适合正在做Agent项目选型、模型迭代效果对比、或者想给自己项目搭一套评估基线的人参考。1.2 目标读者与阅读收益这篇文章适合三类人:第一类是正在做Agent类产品研发的工程师。你大概率已经遇到了模型"单测全过、联调全崩"的情况,需要一套能定位问题的评估手段。第二类是负责模型选型的技术管理者。公开榜单分数和三方评测报告只是参考,真正要下决策的时候,你需要能跑在自己业务场景上的定制化评估方案。第三类是AI应用开发者,即使你只是调用现成模型API搭RAG流程,这套评估思路一样适用,因为RAG本身就是一种简化的Agent形态。看完这篇文章,你能掌握:Agent场景下大模型评测的核心维度有哪些、每个维度应该怎么设计和量化、测试集怎么构造才不容易过拟合、人工评估和自动评估各自的坑在哪,以及真实项目中常见的性能和成本问题怎么排查。我不会给你一个放之四海皆准的分数公式,因为那不存在;我给你的是一套方法论和对应的执行细节,你可以直接改造后用到自己的项目里。2. 为什么Agent场景下的大模型评估不能只看榜单2.1 传统评测与Agent评测的差异先做一个简单对比。传统模型评测,比如跑几个标准化考试题集,核心是看模型的知识覆盖和推理能力。这种评测有一个隐含假设:模型面对的每个问题都是独立的,回答完之后任务就结束了。但Agent任务的本质是序列决策。模型需要根据当前对话状态自主规划下一步动作,执行之后观察返回结果,再决定后续走向。这个过程跟下棋很像,每一步的选择都会影响后面的局面。如果一个模型在每一步的单点准确率都是90%,一个需要五步完成的任务,理论成功率上限只有90%的5次方,也就是大约59%。这个数学事实决定了,在Agent场景里,你不能只关注模型的"单点能力",必须关注"连续决策能力"。还有一层差异容易被忽略。传统评测中,模型是唯一的信息处理者,输入和输出都是自然语言;但在Agent场景中,模型要和外部工具交互,需要理解工具返回的结构化数据,还要处理异常报错、超时、数据格式不匹配这类工程问题。这已经超出了"语言模型能力强不强"的范畴,进入了"模型能不能可靠地驱动一个系统"的范畴。2.2 一个突然翻车的实验复盘有次我在某公司的内部评测环境做基座模型对比,准备用两个参数量接近的开源模型,分别接到同一个Agent框架里,执行一批预设的客服工单处理任务。任务不算复杂:读取用户诉求、查询订单信息、判断是否满足退款条件、执行退款或给出拒绝理由。第一轮跑下来,模型A在单轮工具调用准确率上领先模型B差不多6个百分点。按照传统评测的思路,这个结果基本可以直接拍板选A了。但我多做了一个操作——把所有任务的完整对话轨迹全部翻出来看,发现问题了。模型A确实更会选工具,但它在多步任务里有一个致命弱点:每次拿到工具返回结果后,它对上一轮自己说过的话"记性"不好。具体来说,在第三步判断退款条件的时候,它会忽略第一步读取到的订单状态信息,反而自己去推断一个不存在的状态,导致后续判断全部偏离。而模型B虽然每一步单点准确率稍低,但它在整个任务链路上很少丢失关键信息,最终任务完成率反而更高。这个实验让我确认了一件事:在Agent场景下评估模型,你必须把"单步能力"和"链路能力"分开测,并且以链路结果为准。只看中间指标做决策,迟早会在线上翻车。3. Agent场景性能评估的四个核心维度3.1 任务完成率与目标达成度不管评测体系多复杂,第一个要看的维度一定是任务完成率。这就像考试的总分,虽然不能反映所有细节,但能告诉你学生整体水平在什么位置。定义要严格:一个任务必须达到预设的成功标准,才能计为"完成",不能搞"部分完成给半分"这种模糊操作。我在实际项目中把任务完成率拆成了两级:第一级是硬性完成率,指Agent在规定的最大步数内,自主完成了任务的最终目标,中间可以有小波折但不能需要人工干预;第二级是纠错完成率,指Agent第一次走偏之后,能否根据环境反馈自己回到正确轨道并最终完成。这两个数字放一起看很有价值,如果硬性完成率高而纠错完成率低,说明模型的单步能力过硬,但缺乏自我修正意识;如果反过来,说明模型单步决策容易出问题,但好在有"知错能改"的能力。目标达成度再做细一点,可以区分任务的完成质量。同一个任务,Agent可能都用十步完成了,但一个走了最短路径,另一个绕了一大圈,中间还调用了一次不该调用的敏感接口。这时候光看是否完成就不够了,需要引入"最优性偏差"这个指标,计算实际步数与理论最优步数的比值。3.2 工具调用准确率与参数合规性工具调用是Agent区别于纯对话模型的核心能力,也是翻车重灾区。我在项目里测工具调用,从来不只测"选对了没有",而是拆成三个子项:第一个子项是工具选择准确率。给定一个用户意图,模型应该从候选工具列表里挑出正确的那个。这个相对好测,本质上是一个分类问题。第二个子项是参数填充完整度。工具选对了,参数漏填或者填错格式,照样执行失败。我见过一个模型在"查询天气"场景里,工具名选对了,但把城市参数填到了日期字段,这种错误在纯工具选择评测里是发现不了的。第三个子项是参数边界遵循度。这属于更隐蔽的问题——模型把参数值填对了,但填了不该填的选项。比如有个工具叫"更改用户会员等级",可选值是normal和vip,模型在用户明确没有提出升级诉求的情况下,擅自把等级改成了vip。从参数格式角度看完全没问题,但从意图尊重角度看是安全事件。评测体系里不覆盖这类问题,上线之后就是事故。3.3 上下文纪律性与信息保持能力这个维度是我后来才意识到必须单独立项的,也是Agent场景下跟传统评测拉开差距最明显的地方。我管它叫"上下文纪律性"。一个Agent执行任务时,上下文窗口里会同时存在多种信息:系统提示词里的规则、用户最初的诉求、之前若干轮对话的历史、工具调用后返回的实时数据。模型每生成一步,都要判断当前哪些信息是相关的、哪些已经过期作废、哪些需要优先遵循。最常见的翻车形式是"被中间信息带偏"。我遇到过模型在长任务执行到第12步时,突然把第2步里某个过渡性表述当成最新用户指令去执行。还有模型在工具返回的数据里看到某个字段值,就自动脑补出一个用户根本没提过的诉求。这类问题在单轮对话评测里几乎不可能暴露,但在Agent长链路任务里出现的概率非常高。测试上下文纪律性最有效的手段是构造"信息冲突"样本。在任务中途注入一段与初始目标不一致的上下文信息,看模型是否会被干扰;或者在一个需要忽略某些信息才能完成的任务里,看模型能否做到"心中有数但不受影响"。3.4 Token消耗与成本效率最后一个维度和钱有关。Agent场景下模型不是在用单次推理,而是用"推理次数乘以平均推理长度"的方式消耗资源。我在团队里做过一个统计,一个中等复杂度的客服Agent任务,平均要消耗约8000到12000个Token,其中很大一部分是系统提示词、工具定义和对话历史的反复计费。成本效率的定义是:完成一个单位的有效任务,需要消耗多少Token。同级别的两个模型,如果任务完成率都是80%,但一个平均消耗10000 Token,另一个平均消耗14500 Token,长期跑下来成本的差别非常可观。在Agent规模化落地的时候,这个维度的权重甚至比单点准确率更高。还有一个容易被忽视的成本项是"无效步骤Token"。模型走错了一步,多调用了一次不该调用的外部接口,这一步消耗的Token是百分之百浪费的,而且它产生的错误结果可能还要被后续步骤继续引用。评估成本效率的时候,不能只看总Token数,最好把无效步骤消耗单独剥出来看。4. 评估方法与测试集构造实操4.1 测试集设计与任务分类整个评估体系里,测试集的质量决定了评估结果是否可信。直接拿公开benchmark跑一遍不叫测试集设计,因为那些数据不是针对你的业务和Agent形态的。我的做法是把测试集分成三个层次来构建。第一层是"烟雾测试集",目标是验证Agent链路基本可用。大概准备30到50个非常简单的任务,让模型直来直去地完成,主要暴露工具定义错误、环境配置问题这类基础设施缺陷。这层不追求覆盖面,追求速度。第二层是"领域核心集",这是真正体现业务特征的部分。我会筛选项目里出现频率最高的20种用户意图,每个意图出5到10个变体,覆盖正常路径和少量边界情况。比如做客服Agent,就要覆盖查单、退款、改地址、催发货这些核心意图;每个意图的变体要包含不同的措辞风格、不同信息完整度、不同用户情绪状态。第三层是"对抗集",专门用来暴露模型短板。这层测试集不用多,但每一条都要有"杀伤力"。常见构造方向包括:模糊意图、信息缺失、多个工具都看似可选但只有一个正确、工具返回异常数据需要模型自己推断下一步、用户中途改变诉求且旧诉求必须被废弃。4.2 避免"面试式"任务:测试集常见陷阱构造测试集最大的坑是"面试式问题"。什么意思?就是我们出题人自己已经知道了标准答案,于是不自觉地设计了一条从输入到输出非常"顺滑"的路径,模型只要走对第一步就能按图索骥到终点。这类测试集的评测结果虚高得离谱,因为真实场景里用户给的消息是很碎的。用户不会说"请帮我查询订单A的状态,然后在快递未签收的情况下发起催件工单,但前提是订单已经超过48小时未更新物流信息"。真实用户只会说"我东西怎么还没到"。我后来定了一条规则:测试集的任务描述不得超过三句话,所有任务信息都要埋在口语化表达里,跟真实线上收到的用户消息不做明显的格式区分。这条规则执行之后,评测结果一下子变得"难看"了,但这才更接近真实水平。另一个常见陷阱是"任务发散度不足"。很多团队做测试集,一个意图下面出十个版本,其实是把同一个句子换了几个同义词。正确做法是让同一个意图呈现出完全不同的交互模式:有用户一次性给了完整信息的,有挤牙膏式一句一句补充的,有给错信息然后又纠正的,有表达情绪非常多导致上下文被干扰的。这些变体对Agent评测才是真正有区分度的。4.3 评估环境与工具链配置执行评估需要一个可重复的环境。我强烈建议把整个评估流程脚本化,用固定版本的工具定义、固定温度的推理参数、固定最大步数,保证所有模型都在完全相同的条件下被测试。我自己的实践是用一套Python脚本驱动的评估工具链。环境变量控制模型API地址和密钥,测试用例放在统一的JSON文件里,每条用例包含任务描述、初始上下文、可用工具列表、预期动作序列和成功判定条件。跑完一批任务后,脚本自动汇总轨迹日志,输出各维度指标。工具定义这块要特别提醒:不要偷懒用一套工具定义测试所有模型。模型对工具描述的风格很敏感——同一份工具描述,可能这个模型理解得很顺,换一个模型就频繁选错工具或填错参数。在模型对比评估中,工具描述文本是重要的干扰变量。我在不同模型之间做横向对比时,会准备两份工具描述:一份是项目当前在用的版本,一份是略微中性的简化版本,两个版本都跑一遍,看模型表现差异,这样能判断到底是模型能力问题还是工具描述风格适配问题。5. 评估执行与结果分析实录5.1 评估流程整体执行步骤整个执行流程我一般控制在五个环节:第一步是环境准备。先把Agent框架拉起,连接好模型API,配置好日志系统。确保工具模拟服务就绪。评估过程中我会起一个本地Mock服务来模拟外部API,返回预置的响应数据,避免真实环境的不确定性影响评估结果。这个Mock服务支持预设返回内容,也支持按调用次数返回不同的结果序列,用于模拟正常返回、超时、异常报错等场景。第二步是测试集加载与校验。脚本读取测试用例清单,自动检查工具名称、参数模式是否和Agent框架中的工具注册表一致。这一步能提前发现工具定义与用例不一致的问题。跑过的项目里,有相当一部分用例是败在这种低级的不匹配上。第三步是分批次执行。一次性跑完所有用例容易在中间出问题不好定位,我习惯按测试集分层来跑:烟雾集、核心集、对抗集顺序执行。每跑完一层就输出一份中间报告,确认表现稳定后再进入下一层。分层跑还带来一个好处,可以快速定位是基础设施问题还是模型能力问题。第四步是轨迹收集。每条用例执行结束后,系统都会保存完整的交互轨迹,包含每一步模型输出的原始内容、工具调用记录、工具返回内容、最终判定结果。轨迹是整个评估中价值最高的资产,评分可以重新算,但轨迹丢了就再也回不来了。我把轨迹以JSON格式落盘,按用例ID和时间戳组织目录,方便后续检索。第五步是指标汇总与对比报告生成。脚本会自动计算各维度指标,生成一个Markdown格式的对比报告。报告里除了指标数字,还会自动列出所有失败用例的ID和简短原因标签,方便人工抽查。5.2 模型打分与人工复核流程全自动评估有两个严重的盲区:一是误判任务成功,二是放过语义偏差。所以在自动脚本跑完之后,我保留了一个人工复核环节。人工复核分为两级。一级是快速筛查,一名评估人员对全部失败用例和标记为"边缘成功"的用例逐一过目,确认失败原因分类是否准确。二级是深度分析,对特定的失败模式,比如某种类型的工具误选反复出现,会深入打开几条完整轨迹,逐条分析模型是在哪一步开始走偏的,以及走偏前有没有可供拦截的前置信号。评分标准方面,一个容易犯的错误是让评估人员"根据主观感受打分"。我后来做了改进,全部改成严格的行为化判定:每条用例都有预设的成功标准,比如"调用refund工具且参数refund_amount等于订单金额"就是一个可判定条件。评估人员不需要"觉得"这次完成得好不好,只需要判断条件是否满足、中间过程是否有违规行为。有过一次经历让我对这个流程印象很深。某次自动评估显示模型X的任务完成率比模型Y高了一截,但我复看轨迹时发现,模型X大量完成任务的方式是"快速薅到一个正确答案但完全无视了过程中的约束条件"。比如有个任务要求用户授权后才能调用某个敏感接口,模型X没有等授权就直接调用了。从结果看任务完成了,从合规角度看它是"无视规则地完成了"。这类问题不通过轨迹复核根本暴露不了。5.3 一个项目案例的数据复盘拿我之前做的那个模拟项目X来举例。用两个开源模型做基座,同一个Agent框架,同一套测试集,一共200条用例,其中烟雾集30条、核心集120条、对抗集50条。模型A的烟雾集通过率100%,核心集完成率72%,对抗集完成率只有18%。模型B的烟雾集通过率96%,核心集完成率76%,对抗集完成率是24%。初看这个结果,模型B明显更好,尤其在对困难任务的处理上。但我把Token消耗指标拉出来对比之后发现另一个问题:模型B核心集的平均Token消耗比模型A高出约40%。看细节发现,模型B很爱做"确认动作"——它会在执行工具调用前反复用自然语言向用户确认:"您确认要执行这个操作吗?"虽然Agent框架并不会真的把这个确认动作卡住,这种额外输出却白白烧掉大量Token。核心任务完成率差不多的情况下,成本差距直接决定了规模化的可行性。进一步看对抗集失败原因分布,模型A集中失败在"工具参数幻觉"——面对模糊输入时它会凭空编参数值;模型B集中失败在"多工具选择困难"——两个工具都部分匹配时容易犹豫选错。这两类问题在真实业务里需要不同的优化策略。前者可能需要加强工具描述约束和参数校验逻辑,后者可能需要调整Prompt让模型学会在不确定时先问澄清问题,而不是硬猜一个。如果没有对抗集和轨迹分析,这些信息根本拿不到。6. 常见问题与排查技巧实录6.1 工具调用环节的典型故障排查在Agent评测里,工具调用环节遇到的问题最多,也最难排查。我根据实际经历整理了一个速查表,列几个最常见的故障模式和排查方向。故障现象可能原因排查方向关注点模型反复调用同一个失败的函数模型没有正确读取工具返回的报错信息;工具异常反馈是纯文本格式,模型没parse出来查看轨迹中报错信息的返回位置,确认模型是否在下一步输入中实际包含了该报错文本工具名选对但参数全部填错工具描述中参数说明不清晰;参数格式示例缺失;工具描述中混入了无关信息检查工具描述文本的长度和结构化程度,必要时在描述里加上完整的JSON示例模型在多个相似工具间反复横跳工具间的功能边界描述不清晰;对工具的触发条件标注不足重新编写工具描述,在每个工具开头用一句话说明"当遇到XX情况时使用本工具"工具调用格式偶尔解析失败模型输出和框架解析器的格式要求存在细微差异;温度设置偏高导致格式不稳定检查解码参数,降低温度或开启格式强制解码;检查解析器是否要求严格的字段顺序排查这类问题最重要的技能是"会看轨迹"。不要只看最终结果失败就下结论,要把一条失败任务从第一步到失败点逐步播放,定位第一个偏离预期行为的节点。大量失败任务的根因可以追溯到很靠前的某一步,比如模型在那一步误解了一条上下文信息。6.2 上下文窗口相关问题的定位与缓解上下文窗口问题是Agent评测中非常隐蔽和棘手的,first表现为任务开始阶段表现正常,越往后越糊涂,甚至出现遗忘早期指令的现象。我总结过几个高频原因:一是长对话中模型对早期内容注意力权重稀释;二是工具返回结果堆积占用了窗口主要空间,把核心指令挤到了边缘位置;三是系统提示词本身太长,模型能接收的"instructions空间"被压缩。对应的缓解策略有几个方向。第一个方向是压缩上下文,把对话历史中已经完成的工具调用折叠成一句话摘要,释放窗口空间。第二个方向是定期"重新锚定",每隔若干轮在上下文中重新注入一次当前任务目标摘要,帮助模型保持方向感。第三个方向是精简工具描述,如果业务工具非常多,考虑只注入当前任务可能需要的工具子集,而不是塞入全部工具定义。评测时如果发现模型在长链路任务中后期频繁跑偏,优先检查上下文里是否混入了过期的、矛盾的信息。有一次我们排查一个失败案例,发现工具返回的Mock数据里包含一条时间戳和初始用例设置不一致的记录,模型读到之后自动"纠正"了自己的时间判断,结果后面所有跟时间相关的决策全部错位。上下文里的"脏数据"对Agent的影响远比对纯对话场景的影响大。6.3 关于评分一致性的经验与量化技巧做过多轮Agent评测之后,一个深刻体会是:评分标准不一致是评估结果最大的隐性误差来源。同一份轨迹,不同评估员可能给出完全不同的成败判定。出现这种情况主要因为任务成功标准不够可操作。比如"合理地拒绝了用户请求"这类描述就充满了主观空间。我改进的方式是给每条用例配备至少三个可机检的判定条件,分别覆盖:目标是否达成、过程中是否发生违规工具调用、最终输出格式和内容是否满足要求。人工评估员需要做的只是对这三个条件做是非判断,而不是对整个任务做整体评分。在实际测试中建议用"双人独立评估+不一致会审"的方式,能有效控制评分的主观偏差。某次我拿一批轨迹做了个对比实验:单人自由评分与双人结构化评分之间,判定不一致率超过15%。这说明如果评估流程不规范化,所谓"两个模型表现差不多"的结论可能根本站不住脚。严谨的评估应该先让两人独立评分,然后把不一致的case挑出来讨论,达成统一判定标准之后,再让其中一人对剩余case做一次校准性复核。7. 实操过程中的几个避坑与建议在做Agent场景的大模型性能评估时,有一些经验是踩过坑之后才真正理解的。先分享三个我认为最有价值的点。第一个建议:永远为坏消息留后门。评估结果好的时候大家都很开心,但要做好"这次结果可能推翻之前结论"的心理准备。我在一次模型选型评估中,两个模型在任务完成率上只差了1.2个百分点,几乎可以忽略差异。但把Token消耗和失败原因分布放出来之后,结论完全反转了。评估不是为了证明某个选择是对的,而是为了发现问题。心态摆不正,评测流程就容易流于形式,只看有利自己的指标。第二个建议:把轨迹数据当成一等公民。指标是压缩过的结论,轨迹才是完整的事实。很多团队把评估重心放在指标计算上,轨迹只存一个临时文件,跑完就删。这种做法非常可惜——当指标出现异常变动时,唯一有效的排查手段就是回溯轨迹细节。我自己的习惯是每次评估都全量保留轨迹存档,至少保留三个月的评估记录,方便做趋势对比和回归分析。第三个建议:定期用真实线上数据回流更新测试集。测试集跑久了会过拟合。模型可能会在不断的迭代中"记住"了测试集中任务形态的特点,导致评分越跑越高,但线上表现并没有相应提升,形成"分数通胀"。对抗这个问题的有效办法是定期从生产环境的脱敏日志里采样新的用户会话,由测试集维护人员把它改写标注成正式评测用例,补充进测试集。对于User-Facing的Agent产品,这个迭代节奏建议按季度来做。8. Agent性能评估的长期机制建设8.1 从一次评估到持续基线一次性的评估结果只能告诉你当前项目这一刻的状态参考,但对一个持续迭代的Agent系统来说,我更推荐搭一套持续评估基线机制。具体操作路径:选定一个稳定的测试集版本作为基准版本,固定一段时期内的评估环境和参数配置,每次模型升级、Prompt调整、工具定义修改后,都在基线版本上跑一次回归评估。这样每次改动的影响都能被量化,而不是靠"感觉上好像变好了"来判断。我在实际项目中会给测试集做版本管理,每次修改测试集都更新版本号,并记录变更内容。评估报告里同时标注测试集版本号,这样才能保证跨时间对比的公平性。之前发生过一次乌龙:测试集新增了一批对抗用例之后,旧模型的分数相对新模型突然大幅下降,团队差点基于这个错误信息做了模型回滚。回头一查才发现是测试集变更了,根本不是模型能力退化。8.2 构建评估指标体系时的轻量化建议最后聊一聊评估指标体系的构建,很多团队有一种倾向:第一版就想搭一个特别全面的指标体系,设一大堆指标。在实践中这会导致两个问题:一是数据收集和计算成本过高,二是指标之间相互矛盾,不知道以哪个为准。我的建议是第一版只做三个核心指标:任务完成率、工具调用准确率、平均Token消耗。这三个指标分别对应"事情做成没有""过程走得对不对"和"代价高不高",是一个Agent项目最低限度的评估基线。运行稳定之后再逐步增加维度:加入上下文纪律性专项测试、细分失败原因分布、增加成本效率指标。指标体系的完备度应该跟着业务的复杂度和迭代节奏走,不要一上来就追求大而全。好的评估体系不是指标越多越好,而是每个指标都能支撑一个明确的决策动作。我个人的操作体会是:Agent场景的大模型评估,本质上是在做一个持续校准的过程,校准的对象既有模型本身,也有Agent框架的交互设计。每跑一轮评估,都会发现一批新的问题模式,再把它们沉淀成新的测试用例,这个循环才是Agent系统不断变稳的核心驱动力。如果你手头正准备搭建或优化自己的Agent评估方案,建议先从一个最小可用版本开始,积累第一个月的数据后做一次复盘,再决定下一步扩展方向。不要停留在讨论层面,直接跑起来,数据会比所有理论都更诚实。
1. 项目概述1.1 核心需求解析先聊一个我在工作时经常被问到的问题:给大模型做个性能打分,到底是在测什么?是想知道它能不能一口气答对一百道数学题,还是想搞清楚它在真实的业务环境里能不能稳定输出?如果是针对AI Agent场景下的模型选型和评估,这个问题的答案就变得更复杂了。过去我们做大模型评测,最常干的事情就是摆开几个公开榜单,算一算MMLU、GPQA这类分数,再跑一跑人类偏好对齐的对比实验,感觉差不多就能拍板用哪个基座模型了。但到了Agent场景里,事情完全不是这么回事。Agent不是拿一段提示词让模型回答一个问题,而是让模型在一个状态不断变化的对话流程中,自主决策、调用工具、观察反馈、修正路线,最后完成一个相对复杂的目标。这个过程中的任何一次小失误,都可能被后续步骤无限放大。我最初接触Agent场景的模型评估,是从一个模拟项目X开始的。当时我们接入了一个通用对话模型做工具调用,简单跑了一下单轮的工具选择,准确率看着还行,大概有八成左右。结果把模型放到一个需要连续调用三次外部接口的任务里,成功率直接跌到了四成以下。这个反差让我意识到,Agent场景下的性能评估,跟传统的"问一句答一句"完全不是一个逻辑。那到底应该怎么测?一个有效的Agent性能评估体系,至少要覆盖三个层面:模型的单步决策准确性、多步任务的串联完成能力,以及整个链路上的资源消耗与容错能力。不能拿一把尺子量所有东西,因为即使是同一个基座模型,在不同Agent框架、不同提示词结构、不同工具定义风格下,表现差异可能非常惊人。这篇文章我会完整拆解一套针对AI Agent场景的大模型多维性能评估方案:包含我实际用过的评估维度设计、测试集怎么构造、过程和结果怎么分析、踩过哪些坑,以及那些在公开榜单里根本看不到的细节问题。内容不涉及学院派的理论框架,全是实操经验,适合正在做Agent项目选型、模型迭代效果对比、或者想给自己项目搭一套评估基线的人参考。1.2 目标读者与阅读收益这篇文章适合三类人:第一类是正在做Agent类产品研发的工程师。你大概率已经遇到了模型"单测全过、联调全崩"的情况,需要一套能定位问题的评估手段。第二类是负责模型选型的技术管理者。公开榜单分数和三方评测报告只是参考,真正要下决策的时候,你需要能跑在自己业务场景上的定制化评估方案。第三类是AI应用开发者,即使你只是调用现成模型API搭RAG流程,这套评估思路一样适用,因为RAG本身就是一种简化的Agent形态。看完这篇文章,你能掌握:Agent场景下大模型评测的核心维度有哪些、每个维度应该怎么设计和量化、测试集怎么构造才不容易过拟合、人工评估和自动评估各自的坑在哪,以及真实项目中常见的性能和成本问题怎么排查。我不会给你一个放之四海皆准的分数公式,因为那不存在;我给你的是一套方法论和对应的执行细节,你可以直接改造后用到自己的项目里。2. 为什么Agent场景下的大模型评估不能只看榜单2.1 传统评测与Agent评测的差异先做一个简单对比。传统模型评测,比如跑几个标准化考试题集,核心是看模型的知识覆盖和推理能力。这种评测有一个隐含假设:模型面对的每个问题都是独立的,回答完之后任务就结束了。但Agent任务的本质是序列决策。模型需要根据当前对话状态自主规划下一步动作,执行之后观察返回结果,再决定后续走向。这个过程跟下棋很像,每一步的选择都会影响后面的局面。如果一个模型在每一步的单点准确率都是90%,一个需要五步完成的任务,理论成功率上限只有90%的5次方,也就是大约59%。这个数学事实决定了,在Agent场景里,你不能只关注模型的"单点能力",必须关注"连续决策能力"。还有一层差异容易被忽略。传统评测中,模型是唯一的信息处理者,输入和输出都是自然语言;但在Agent场景中,模型要和外部工具交互,需要理解工具返回的结构化数据,还要处理异常报错、超时、数据格式不匹配这类工程问题。这已经超出了"语言模型能力强不强"的范畴,进入了"模型能不能可靠地驱动一个系统"的范畴。2.2 一个突然翻车的实验复盘有次我在某公司的内部评测环境做基座模型对比,准备用两个参数量接近的开源模型,分别接到同一个Agent框架里,执行一批预设的客服工单处理任务。任务不算复杂:读取用户诉求、查询订单信息、判断是否满足退款条件、执行退款或给出拒绝理由。第一轮跑下来,模型A在单轮工具调用准确率上领先模型B差不多6个百分点。按照传统评测的思路,这个结果基本可以直接拍板选A了。但我多做了一个操作——把所有任务的完整对话轨迹全部翻出来看,发现问题了。模型A确实更会选工具,但它在多步任务里有一个致命弱点:每次拿到工具返回结果后,它对上一轮自己说过的话"记性"不好。具体来说,在第三步判断退款条件的时候,它会忽略第一步读取到的订单状态信息,反而自己去推断一个不存在的状态,导致后续判断全部偏离。而模型B虽然每一步单点准确率稍低,但它在整个任务链路上很少丢失关键信息,最终任务完成率反而更高。这个实验让我确认了一件事:在Agent场景下评估模型,你必须把"单步能力"和"链路能力"分开测,并且以链路结果为准。只看中间指标做决策,迟早会在线上翻车。3. Agent场景性能评估的四个核心维度3.1 任务完成率与目标达成度不管评测体系多复杂,第一个要看的维度一定是任务完成率。这就像考试的总分,虽然不能反映所有细节,但能告诉你学生整体水平在什么位置。定义要严格:一个任务必须达到预设的成功标准,才能计为"完成",不能搞"部分完成给半分"这种模糊操作。我在实际项目中把任务完成率拆成了两级:第一级是硬性完成率,指Agent在规定的最大步数内,自主完成了任务的最终目标,中间可以有小波折但不能需要人工干预;第二级是纠错完成率,指Agent第一次走偏之后,能否根据环境反馈自己回到正确轨道并最终完成。这两个数字放一起看很有价值,如果硬性完成率高而纠错完成率低,说明模型的单步能力过硬,但缺乏自我修正意识;如果反过来,说明模型单步决策容易出问题,但好在有"知错能改"的能力。目标达成度再做细一点,可以区分任务的完成质量。同一个任务,Agent可能都用十步完成了,但一个走了最短路径,另一个绕了一大圈,中间还调用了一次不该调用的敏感接口。这时候光看是否完成就不够了,需要引入"最优性偏差"这个指标,计算实际步数与理论最优步数的比值。3.2 工具调用准确率与参数合规性工具调用是Agent区别于纯对话模型的核心能力,也是翻车重灾区。我在项目里测工具调用,从来不只测"选对了没有",而是拆成三个子项:第一个子项是工具选择准确率。给定一个用户意图,模型应该从候选工具列表里挑出正确的那个。这个相对好测,本质上是一个分类问题。第二个子项是参数填充完整度。工具选对了,参数漏填或者填错格式,照样执行失败。我见过一个模型在"查询天气"场景里,工具名选对了,但把城市参数填到了日期字段,这种错误在纯工具选择评测里是发现不了的。第三个子项是参数边界遵循度。这属于更隐蔽的问题——模型把参数值填对了,但填了不该填的选项。比如有个工具叫"更改用户会员等级",可选值是normal和vip,模型在用户明确没有提出升级诉求的情况下,擅自把等级改成了vip。从参数格式角度看完全没问题,但从意图尊重角度看是安全事件。评测体系里不覆盖这类问题,上线之后就是事故。3.3 上下文纪律性与信息保持能力这个维度是我后来才意识到必须单独立项的,也是Agent场景下跟传统评测拉开差距最明显的地方。我管它叫"上下文纪律性"。一个Agent执行任务时,上下文窗口里会同时存在多种信息:系统提示词里的规则、用户最初的诉求、之前若干轮对话的历史、工具调用后返回的实时数据。模型每生成一步,都要判断当前哪些信息是相关的、哪些已经过期作废、哪些需要优先遵循。最常见的翻车形式是"被中间信息带偏"。我遇到过模型在长任务执行到第12步时,突然把第2步里某个过渡性表述当成最新用户指令去执行。还有模型在工具返回的数据里看到某个字段值,就自动脑补出一个用户根本没提过的诉求。这类问题在单轮对话评测里几乎不可能暴露,但在Agent长链路任务里出现的概率非常高。测试上下文纪律性最有效的手段是构造"信息冲突"样本。在任务中途注入一段与初始目标不一致的上下文信息,看模型是否会被干扰;或者在一个需要忽略某些信息才能完成的任务里,看模型能否做到"心中有数但不受影响"。3.4 Token消耗与成本效率最后一个维度和钱有关。Agent场景下模型不是在用单次推理,而是用"推理次数乘以平均推理长度"的方式消耗资源。我在团队里做过一个统计,一个中等复杂度的客服Agent任务,平均要消耗约8000到12000个Token,其中很大一部分是系统提示词、工具定义和对话历史的反复计费。成本效率的定义是:完成一个单位的有效任务,需要消耗多少Token。同级别的两个模型,如果任务完成率都是80%,但一个平均消耗10000 Token,另一个平均消耗14500 Token,长期跑下来成本的差别非常可观。在Agent规模化落地的时候,这个维度的权重甚至比单点准确率更高。还有一个容易被忽视的成本项是"无效步骤Token"。模型走错了一步,多调用了一次不该调用的外部接口,这一步消耗的Token是百分之百浪费的,而且它产生的错误结果可能还要被后续步骤继续引用。评估成本效率的时候,不能只看总Token数,最好把无效步骤消耗单独剥出来看。4. 评估方法与测试集构造实操4.1 测试集设计与任务分类整个评估体系里,测试集的质量决定了评估结果是否可信。直接拿公开benchmark跑一遍不叫测试集设计,因为那些数据不是针对你的业务和Agent形态的。我的做法是把测试集分成三个层次来构建。第一层是"烟雾测试集",目标是验证Agent链路基本可用。大概准备30到50个非常简单的任务,让模型直来直去地完成,主要暴露工具定义错误、环境配置问题这类基础设施缺陷。这层不追求覆盖面,追求速度。第二层是"领域核心集",这是真正体现业务特征的部分。我会筛选项目里出现频率最高的20种用户意图,每个意图出5到10个变体,覆盖正常路径和少量边界情况。比如做客服Agent,就要覆盖查单、退款、改地址、催发货这些核心意图;每个意图的变体要包含不同的措辞风格、不同信息完整度、不同用户情绪状态。第三层是"对抗集",专门用来暴露模型短板。这层测试集不用多,但每一条都要有"杀伤力"。常见构造方向包括:模糊意图、信息缺失、多个工具都看似可选但只有一个正确、工具返回异常数据需要模型自己推断下一步、用户中途改变诉求且旧诉求必须被废弃。4.2 避免"面试式"任务:测试集常见陷阱构造测试集最大的坑是"面试式问题"。什么意思?就是我们出题人自己已经知道了标准答案,于是不自觉地设计了一条从输入到输出非常"顺滑"的路径,模型只要走对第一步就能按图索骥到终点。这类测试集的评测结果虚高得离谱,因为真实场景里用户给的消息是很碎的。用户不会说"请帮我查询订单A的状态,然后在快递未签收的情况下发起催件工单,但前提是订单已经超过48小时未更新物流信息"。真实用户只会说"我东西怎么还没到"。我后来定了一条规则:测试集的任务描述不得超过三句话,所有任务信息都要埋在口语化表达里,跟真实线上收到的用户消息不做明显的格式区分。这条规则执行之后,评测结果一下子变得"难看"了,但这才更接近真实水平。另一个常见陷阱是"任务发散度不足"。很多团队做测试集,一个意图下面出十个版本,其实是把同一个句子换了几个同义词。正确做法是让同一个意图呈现出完全不同的交互模式:有用户一次性给了完整信息的,有挤牙膏式一句一句补充的,有给错信息然后又纠正的,有表达情绪非常多导致上下文被干扰的。这些变体对Agent评测才是真正有区分度的。4.3 评估环境与工具链配置执行评估需要一个可重复的环境。我强烈建议把整个评估流程脚本化,用固定版本的工具定义、固定温度的推理参数、固定最大步数,保证所有模型都在完全相同的条件下被测试。我自己的实践是用一套Python脚本驱动的评估工具链。环境变量控制模型API地址和密钥,测试用例放在统一的JSON文件里,每条用例包含任务描述、初始上下文、可用工具列表、预期动作序列和成功判定条件。跑完一批任务后,脚本自动汇总轨迹日志,输出各维度指标。工具定义这块要特别提醒:不要偷懒用一套工具定义测试所有模型。模型对工具描述的风格很敏感——同一份工具描述,可能这个模型理解得很顺,换一个模型就频繁选错工具或填错参数。在模型对比评估中,工具描述文本是重要的干扰变量。我在不同模型之间做横向对比时,会准备两份工具描述:一份是项目当前在用的版本,一份是略微中性的简化版本,两个版本都跑一遍,看模型表现差异,这样能判断到底是模型能力问题还是工具描述风格适配问题。5. 评估执行与结果分析实录5.1 评估流程整体执行步骤整个执行流程我一般控制在五个环节:第一步是环境准备。先把Agent框架拉起,连接好模型API,配置好日志系统。确保工具模拟服务就绪。评估过程中我会起一个本地Mock服务来模拟外部API,返回预置的响应数据,避免真实环境的不确定性影响评估结果。这个Mock服务支持预设返回内容,也支持按调用次数返回不同的结果序列,用于模拟正常返回、超时、异常报错等场景。第二步是测试集加载与校验。脚本读取测试用例清单,自动检查工具名称、参数模式是否和Agent框架中的工具注册表一致。这一步能提前发现工具定义与用例不一致的问题。跑过的项目里,有相当一部分用例是败在这种低级的不匹配上。第三步是分批次执行。一次性跑完所有用例容易在中间出问题不好定位,我习惯按测试集分层来跑:烟雾集、核心集、对抗集顺序执行。每跑完一层就输出一份中间报告,确认表现稳定后再进入下一层。分层跑还带来一个好处,可以快速定位是基础设施问题还是模型能力问题。第四步是轨迹收集。每条用例执行结束后,系统都会保存完整的交互轨迹,包含每一步模型输出的原始内容、工具调用记录、工具返回内容、最终判定结果。轨迹是整个评估中价值最高的资产,评分可以重新算,但轨迹丢了就再也回不来了。我把轨迹以JSON格式落盘,按用例ID和时间戳组织目录,方便后续检索。第五步是指标汇总与对比报告生成。脚本会自动计算各维度指标,生成一个Markdown格式的对比报告。报告里除了指标数字,还会自动列出所有失败用例的ID和简短原因标签,方便人工抽查。5.2 模型打分与人工复核流程全自动评估有两个严重的盲区:一是误判任务成功,二是放过语义偏差。所以在自动脚本跑完之后,我保留了一个人工复核环节。人工复核分为两级。一级是快速筛查,一名评估人员对全部失败用例和标记为"边缘成功"的用例逐一过目,确认失败原因分类是否准确。二级是深度分析,对特定的失败模式,比如某种类型的工具误选反复出现,会深入打开几条完整轨迹,逐条分析模型是在哪一步开始走偏的,以及走偏前有没有可供拦截的前置信号。评分标准方面,一个容易犯的错误是让评估人员"根据主观感受打分"。我后来做了改进,全部改成严格的行为化判定:每条用例都有预设的成功标准,比如"调用refund工具且参数refund_amount等于订单金额"就是一个可判定条件。评估人员不需要"觉得"这次完成得好不好,只需要判断条件是否满足、中间过程是否有违规行为。有过一次经历让我对这个流程印象很深。某次自动评估显示模型X的任务完成率比模型Y高了一截,但我复看轨迹时发现,模型X大量完成任务的方式是"快速薅到一个正确答案但完全无视了过程中的约束条件"。比如有个任务要求用户授权后才能调用某个敏感接口,模型X没有等授权就直接调用了。从结果看任务完成了,从合规角度看它是"无视规则地完成了"。这类问题不通过轨迹复核根本暴露不了。5.3 一个项目案例的数据复盘拿我之前做的那个模拟项目X来举例。用两个开源模型做基座,同一个Agent框架,同一套测试集,一共200条用例,其中烟雾集30条、核心集120条、对抗集50条。模型A的烟雾集通过率100%,核心集完成率72%,对抗集完成率只有18%。模型B的烟雾集通过率96%,核心集完成率76%,对抗集完成率是24%。初看这个结果,模型B明显更好,尤其在对困难任务的处理上。但我把Token消耗指标拉出来对比之后发现另一个问题:模型B核心集的平均Token消耗比模型A高出约40%。看细节发现,模型B很爱做"确认动作"——它会在执行工具调用前反复用自然语言向用户确认:"您确认要执行这个操作吗?"虽然Agent框架并不会真的把这个确认动作卡住,这种额外输出却白白烧掉大量Token。核心任务完成率差不多的情况下,成本差距直接决定了规模化的可行性。进一步看对抗集失败原因分布,模型A集中失败在"工具参数幻觉"——面对模糊输入时它会凭空编参数值;模型B集中失败在"多工具选择困难"——两个工具都部分匹配时容易犹豫选错。这两类问题在真实业务里需要不同的优化策略。前者可能需要加强工具描述约束和参数校验逻辑,后者可能需要调整Prompt让模型学会在不确定时先问澄清问题,而不是硬猜一个。如果没有对抗集和轨迹分析,这些信息根本拿不到。6. 常见问题与排查技巧实录6.1 工具调用环节的典型故障排查在Agent评测里,工具调用环节遇到的问题最多,也最难排查。我根据实际经历整理了一个速查表,列几个最常见的故障模式和排查方向。故障现象可能原因排查方向关注点模型反复调用同一个失败的函数模型没有正确读取工具返回的报错信息;工具异常反馈是纯文本格式,模型没parse出来查看轨迹中报错信息的返回位置,确认模型是否在下一步输入中实际包含了该报错文本工具名选对但参数全部填错工具描述中参数说明不清晰;参数格式示例缺失;工具描述中混入了无关信息检查工具描述文本的长度和结构化程度,必要时在描述里加上完整的JSON示例模型在多个相似工具间反复横跳工具间的功能边界描述不清晰;对工具的触发条件标注不足重新编写工具描述,在每个工具开头用一句话说明"当遇到XX情况时使用本工具"工具调用格式偶尔解析失败模型输出和框架解析器的格式要求存在细微差异;温度设置偏高导致格式不稳定检查解码参数,降低温度或开启格式强制解码;检查解析器是否要求严格的字段顺序排查这类问题最重要的技能是"会看轨迹"。不要只看最终结果失败就下结论,要把一条失败任务从第一步到失败点逐步播放,定位第一个偏离预期行为的节点。大量失败任务的根因可以追溯到很靠前的某一步,比如模型在那一步误解了一条上下文信息。6.2 上下文窗口相关问题的定位与缓解上下文窗口问题是Agent评测中非常隐蔽和棘手的,first表现为任务开始阶段表现正常,越往后越糊涂,甚至出现遗忘早期指令的现象。我总结过几个高频原因:一是长对话中模型对早期内容注意力权重稀释;二是工具返回结果堆积占用了窗口主要空间,把核心指令挤到了边缘位置;三是系统提示词本身太长,模型能接收的"instructions空间"被压缩。对应的缓解策略有几个方向。第一个方向是压缩上下文,把对话历史中已经完成的工具调用折叠成一句话摘要,释放窗口空间。第二个方向是定期"重新锚定",每隔若干轮在上下文中重新注入一次当前任务目标摘要,帮助模型保持方向感。第三个方向是精简工具描述,如果业务工具非常多,考虑只注入当前任务可能需要的工具子集,而不是塞入全部工具定义。评测时如果发现模型在长链路任务中后期频繁跑偏,优先检查上下文里是否混入了过期的、矛盾的信息。有一次我们排查一个失败案例,发现工具返回的Mock数据里包含一条时间戳和初始用例设置不一致的记录,模型读到之后自动"纠正"了自己的时间判断,结果后面所有跟时间相关的决策全部错位。上下文里的"脏数据"对Agent的影响远比对纯对话场景的影响大。6.3 关于评分一致性的经验与量化技巧做过多轮Agent评测之后,一个深刻体会是:评分标准不一致是评估结果最大的隐性误差来源。同一份轨迹,不同评估员可能给出完全不同的成败判定。出现这种情况主要因为任务成功标准不够可操作。比如"合理地拒绝了用户请求"这类描述就充满了主观空间。我改进的方式是给每条用例配备至少三个可机检的判定条件,分别覆盖:目标是否达成、过程中是否发生违规工具调用、最终输出格式和内容是否满足要求。人工评估员需要做的只是对这三个条件做是非判断,而不是对整个任务做整体评分。在实际测试中建议用"双人独立评估+不一致会审"的方式,能有效控制评分的主观偏差。某次我拿一批轨迹做了个对比实验:单人自由评分与双人结构化评分之间,判定不一致率超过15%。这说明如果评估流程不规范化,所谓"两个模型表现差不多"的结论可能根本站不住脚。严谨的评估应该先让两人独立评分,然后把不一致的case挑出来讨论,达成统一判定标准之后,再让其中一人对剩余case做一次校准性复核。7. 实操过程中的几个避坑与建议在做Agent场景的大模型性能评估时,有一些经验是踩过坑之后才真正理解的。先分享三个我认为最有价值的点。第一个建议:永远为坏消息留后门。评估结果好的时候大家都很开心,但要做好"这次结果可能推翻之前结论"的心理准备。我在一次模型选型评估中,两个模型在任务完成率上只差了1.2个百分点,几乎可以忽略差异。但把Token消耗和失败原因分布放出来之后,结论完全反转了。评估不是为了证明某个选择是对的,而是为了发现问题。心态摆不正,评测流程就容易流于形式,只看有利自己的指标。第二个建议:把轨迹数据当成一等公民。指标是压缩过的结论,轨迹才是完整的事实。很多团队把评估重心放在指标计算上,轨迹只存一个临时文件,跑完就删。这种做法非常可惜——当指标出现异常变动时,唯一有效的排查手段就是回溯轨迹细节。我自己的习惯是每次评估都全量保留轨迹存档,至少保留三个月的评估记录,方便做趋势对比和回归分析。第三个建议:定期用真实线上数据回流更新测试集。测试集跑久了会过拟合。模型可能会在不断的迭代中"记住"了测试集中任务形态的特点,导致评分越跑越高,但线上表现并没有相应提升,形成"分数通胀"。对抗这个问题的有效办法是定期从生产环境的脱敏日志里采样新的用户会话,由测试集维护人员把它改写标注成正式评测用例,补充进测试集。对于User-Facing的Agent产品,这个迭代节奏建议按季度来做。8. Agent性能评估的长期机制建设8.1 从一次评估到持续基线一次性的评估结果只能告诉你当前项目这一刻的状态参考,但对一个持续迭代的Agent系统来说,我更推荐搭一套持续评估基线机制。具体操作路径:选定一个稳定的测试集版本作为基准版本,固定一段时期内的评估环境和参数配置,每次模型升级、Prompt调整、工具定义修改后,都在基线版本上跑一次回归评估。这样每次改动的影响都能被量化,而不是靠"感觉上好像变好了"来判断。我在实际项目中会给测试集做版本管理,每次修改测试集都更新版本号,并记录变更内容。评估报告里同时标注测试集版本号,这样才能保证跨时间对比的公平性。之前发生过一次乌龙:测试集新增了一批对抗用例之后,旧模型的分数相对新模型突然大幅下降,团队差点基于这个错误信息做了模型回滚。回头一查才发现是测试集变更了,根本不是模型能力退化。8.2 构建评估指标体系时的轻量化建议最后聊一聊评估指标体系的构建,很多团队有一种倾向:第一版就想搭一个特别全面的指标体系,设一大堆指标。在实践中这会导致两个问题:一是数据收集和计算成本过高,二是指标之间相互矛盾,不知道以哪个为准。我的建议是第一版只做三个核心指标:任务完成率、工具调用准确率、平均Token消耗。这三个指标分别对应"事情做成没有""过程走得对不对"和"代价高不高",是一个Agent项目最低限度的评估基线。运行稳定之后再逐步增加维度:加入上下文纪律性专项测试、细分失败原因分布、增加成本效率指标。指标体系的完备度应该跟着业务的复杂度和迭代节奏走,不要一上来就追求大而全。好的评估体系不是指标越多越好,而是每个指标都能支撑一个明确的决策动作。我个人的操作体会是:Agent场景的大模型评估,本质上是在做一个持续校准的过程,校准的对象既有模型本身,也有Agent框架的交互设计。每跑一轮评估,都会发现一批新的问题模式,再把它们沉淀成新的测试用例,这个循环才是Agent系统不断变稳的核心驱动力。如果你手头正准备搭建或优化自己的Agent评估方案,建议先从一个最小可用版本开始,积累第一个月的数据后做一次复盘,再决定下一步扩展方向。不要停留在讨论层面,直接跑起来,数据会比所有理论都更诚实。