Agent 评估:从任务完成到可靠性的度量 — editorial cover photo

Agent 评估:同样输入,为什么结果不一样

Agent 评估比传统软件难得多。同样输入可能不同输出,需要任务级而非断言级的评估,靠 LLM as judge 加人工抽检的组合。

2026年1月1日·返回文章列表
文章大纲

传统软件测试很简单,给定输入,断言输出等于期望值。Agent 的测试把这个范式彻底打破了。

同一个输入,Agent 今天可能这么回答,明天换个说法回答,逻辑都对但字面不同。你没法用一个 assert 判断它「对不对」。而且 Agent 的输出往往是一连串动作加一段自然语言,哪部分算「正确」本身就很难定义。

这就是 Agent 评估的核心难题。用传统软件的测试方法,几乎评估不了 Agent。但不上评估,Agent 的质量就是一笔糊涂账,改了不知道有没有变好,上线不知道会不会出问题。这篇讲怎么给 Agent 建立一套能用的评估体系。

为什么 Agent 评估这么难

PlantUML
正在加载图表…
PlantUML diagram

图:四个难点共同决定了 Agent 评估不能照搬传统 assert 断言,需要专门方法论。

先充分理解难点,才能找到对策。

输出不确定性。同样的输入,LLM 的输出有随机性(temperature 大于 0 的话),两次调用结果不完全一样。传统测试期望精确匹配,这里行不通。

正确性模糊。Agent 的回答可能是对的,但表述不同。或者大部分对,有一小部分错。或者逻辑对但事实错了。怎么定义「通过」是个主观判断,不像算「1+1」有确定答案。

路径多样性。完成同一个任务,Agent 可能走不同的路径(先调 A 再调 B,或者先调 B 再调 A),只要最终结果对,路径不同也应该算通过。但路径不同意味着中间步骤也对不上断言。

长尾失败。Agent 在 99% 的 case 上表现正常,但在某些边缘情况会犯很蠢的错。这些长尾是评估的重点也是难点,因为你不一定知道它们在哪。

理解了这四个难点,就知道为什么 Agent 评估不能照搬传统测试,要建立专门的方法论。

评估的第一层,定义清楚「任务完成」是什么

评估的前提是,明确什么叫「任务完成」。这听起来废话,但很多团队的 Agent 连完成标准都没定义清楚。

任务完成的定义要具体到可判断。不能是「回答得好」,要是「回答里包含了正确的数据来源、没有幻觉、格式符合要求」。把模糊的「好」拆成几个可检查的维度,每个维度有明确的判断标准。

常见的维度包括,任务完成度(有没有解决用户的问题)、准确性(信息对不对)、安全性(有没有越权或者有害输出)、效率(用了多少步、多少 token)、用户体验(表述清不清楚、有没有多余的废话)。

每个维度定一个评分标准,比如完成度用「完成、部分完成、未完成」三档,准确性用「全对、有小错、有大错」三档。有了标准,评估才有依据。

LLM as Judge,用模型评估模型

PlantUML
正在加载图表…
PlantUML diagram

图:评判模型按评分标准给被测 Agent 打分,再靠人工抽检校准,形成可迭代的评估闭环。

这是目前 Agent 评估的主流方法。用一个 LLM(通常是更强的模型)来评判另一个 LLM 的输出。

做法是,准备一批测试用例(输入加期望的输出特征),让被测 Agent 跑一遍,拿到实际输出。然后用评判模型,把输入、期望、实际输出喂给它,让它按照你定义的维度打分。

LLM as Judge 的好处是能处理自然语言的模糊性。评判模型能理解「这个回答虽然措辞不同但语义正确」,这是传统断言做不到的。它还能给出打分理由,帮你理解为什么这个 case 没通过。

代价是评判本身也不完全可靠。评判模型可能打分不一致(同一个 case 评两次分数不同),可能有偏差(偏袒某种风格的回答),可能自己也会判断错误。所以 LLM as Judge 的结果要看趋势,不能太迷信单个 case 的分数。

提高评判可靠性的几个办法。用更强的模型当评判。把评判标准写得很具体,别让评判模型自由发挥。多个评判模型投票,减少单一模型的偏差。对评判结果做人工抽检校准,发现系统性偏差就调整评判标准。

黄金测试集,人工标注的基准

无论 LLM as Judge 多方便,都需要一个高质量的、人工标注的测试集作为基准。

这个测试集是你精心准备的,每个 case 都有明确的人工标注的「正确答案」或者「可接受答案」。它的作用是,给 Agent 的质量一个稳定的参照系。每次改动之后跑一遍这个集子,看分数是涨了还是跌了。

测试集的质量决定评估的有效性。几个原则。覆盖要全,包含常见 case、边界 case、对抗 case(故意刁难的)。标注要准,每个 case 的期望答案要经过认真推敲。大小要够,太少没统计意义,几十到几百个 case 比较实用。

测试集要随业务演进。发现线上有新的失败模式,把它加进测试集。这样测试集会越来越能反映真实的质量挑战。

测试集是 Agent 质量的护栏

没有黄金测试集的 Agent 开发,是在没有标尺的情况下改代码。你以为优化了,可能其实倒退了,只是你测不出来。建测试集是一次性投入大、长期回报高的事情,值得在早期就认真做。哪怕只有 50 个高质量 case,也比 500 个随意的 case 有用。

人工评估,不可替代的一环

LLM as Judge 再好,也替代不了人工评估。有些维度的判断,人比模型准。

主观体验。回答读起来顺不顺、有没有让人困惑的地方、语气合不合适,这些主观感受模型评判不准,要真人来体验。

复杂推理的正确性。涉及多步推理或者领域知识的 case,评判模型可能自己也搞不清楚对错,要领域专家来判断。

边缘情况的合理性。Agent 在某些奇怪输入下的行为,是不是合理、会不会有风险,往往需要人来判断。

人工评估成本高,所以通常做抽检。从 Agent 的实际输出里随机抽一批,人工过一遍,记录问题。抽检的目的是发现 LLM as Judge 漏掉的问题,校准自动评估的偏差。

把评估纳入开发流程

PlantUML
正在加载图表…
PlantUML diagram

图:离线评估守发布、人工评估补主观、线上监控抓真实失败,三者闭环让 Agent 质量持续受控。

评估不是上线前才做的事,要嵌入日常开发流程。

每次改动跑一遍黄金测试集,看分数变化。分数跌了,先搞清楚为什么,是改动引入了回归,还是测试集本身要更新。这个「改动、跑评估、看分数」的循环,是 Agent 质量迭代的基本节奏。

线上持续监控。评估不仅在离线测试集上跑,还要在线上采样评估。从真实流量里抽样,自动评估质量,发现质量下降或者新的失败模式。线上监控能捕捉到离线测试集覆盖不到的真实场景。

建立评估文化。让团队习惯「用数据说话」,而不是「我觉得变好了」。一个改动好不好,看评估分数,不看个人感觉。这种文化能避免 Agent 质量在主观判断里漂移。

Agent 评估是个没有终点的工作。模型在变、需求在变、用户在变,评估体系也要跟着演进。但只要有一套能用的评估方法,哪怕粗糙,Agent 的质量就是可控的。没有评估的 Agent,永远是凭感觉的黑盒,上了线就是赌博。

Continue Reading

关联文档推荐

查看全部
LLM 幻觉治理:溯源、约束与 RAG 兜底 — editorial cover photoLLM 应用工程化:从 Demo 到生产 — editorial cover photoFunction Calling:从模型能力到工程落地 — editorial cover photo
作者:archy.shawn
声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。