当前位置:首页>排行榜>第三十三课:Agent 自动化评测体系

第三十三课:Agent 自动化评测体系

  • 更新时间 2026-10-07 21:37:55
第三十三课:Agent 自动化评测体系

前面我们搭建了整套Agent系统:Planner、Plan-Execute-Review、多Agent、记忆、Grounding、幻觉抑制、工具异常处理。 开发Agent最大痛点:怎么客观衡量Agent好不好? 不能每次靠人工跑案例肉眼看结果,需要一套自动化评测:数据集 + 指标 + 自动打分脚本,自动算出:任务成功率、幻觉率、规划错误率。

一、核心概念:Agent评测和普通大模型评测不一样

普通Chat评测:只看最终回答好不好。 Agent评测:整条链路都要评估,不只看最终答案,还要看中间过程:

  1. Planner拆解任务对不对(规划错误)

  2. 工具调用是否合理(调用多余工具、参数错误、重复调用)

  3. 中间推理有没有幻觉

  4. 最终结果是否符合需求

三类核心指标:任务成功率、幻觉率、规划错误率(本次重点),还可以附带工具调用错误率、信息召回率。

二、评测数据集设计

  1. 数据集结构(每条样本是一个测试case)

每条测试样本JSON结构,包含【输入prompt + 标准答案/参考证据 + 评估判定规则】

{  "case_id": "case_001",  "category": "web_search",  "user_query": "查询A公司2025年营收",  "reference_evidence": ["A公司财报:2025营收 5.2亿"],  "expected_answer": "A公司2025年营收5.2亿",  "expected_plan": ["1.调用搜索工具,检索A公司2025财报", "2.提取营收数据", "3.输出结果"],  "forbidden_behavior": ["编造营收数字", "调用无关工具", "无限次重试搜索"],  "difficulty": "simple/medium/hard",  "evaluation_criteria": {    "success_criteria": "输出正确营收数字,附带证据来源",    "hallucination_criteria": "出现任何不在reference_evidence中的虚构数字=幻觉",    "plan_error_criteria": "任务拆解错误、多余工具调用、任务顺序颠倒=规划错误"  }}

2.数据集分类(按场景划分)

✅简单集(Simple):单步任务,只调用1次工具,无复杂规划

例:查询某个公开参数

✅中等集(Medium):多步Plan-Execute任务,多轮工具调用,依赖前置结果

例:查3家竞品价格,做对比表格

✅困难集(Hard):存在陷阱,专门测幻觉、脏数据、工具异常

陷阱样例:

    1. 工具返回空结果(测试会不会编造数据)

    2. Observation带有广告脏数据(测试脏数据过滤)

    3. 多条证据互相冲突(测试Grounding事实对齐)

    4. 工具接口超时(测试异常处理逻辑)

3.数据集构建两种方式

  • 人工构造测试集(黄金测试集,最准) 人工编写case,预先写好参考证据、预期行为。适合回归测试,每次版本迭代都跑一遍,看Agent是否退化。

  • 自动生成case(大规模扩充) 用大模型批量生成大量测试用例,再人工抽检过滤坏case。适合大批量评估,缺点是会引入噪声。

重要:评测集要包含负样本!很多人只测正常case,不测异常场景。 负样本:工具空返回、脏数据、证据冲突、参数错误场景,专门测幻觉、异常处理。

三、评估指标定义(重点:任务成功率、幻觉率、规划错误率)

假设总测试样本数量 = N

  1. 任务成功率 Task Success Rate

定义:完整完成用户原始目标,输出结果满足全部要求的样本占比:任务成功率 = 成功案例数量/总案例数量 判定成功条件(全部满足才算成功)

  1. 最终答案事实正确;

  2. 没有产生影响结论的幻觉;

  3. 没有违反约束(不调用禁止工具、不无限循环);

  4. 任务正常结束,没有卡死、无限重试。

注意:部分成功不算100分。比如查到2个竞品价格,漏掉1个 → 判定任务失败。

  1. 幻觉率 Hallucination Rate

定义:案例中出现事实幻觉(编造不存在事实、篡改证据)的样本占比:幻觉率 = 存在幻觉的案例数量/总案例数

区分幻觉等级:

  • 致命幻觉:直接改变最终结论(编造价格、编造时间,导致任务失败)

  • 轻微幻觉:不影响最终结论,只是次要描述写错 评测时可以分开统计:致命幻觉率、总幻觉率。

幻觉判定规则: 对比Agent输出的全部事实断言,和reference_evidence参考证据池。 只要出现不在参考证据里,且无法被证据支撑的事实 → 判定幻觉。

  1. 规划错误率 Plan Error Rate

定义:Planner拆解任务、编排执行流程出现错误的案例占比 

规划错误率 = 规划错误案例数量 / 总案例数量

规划错误包含下面任意一种:

  1. 任务拆解不符合三原则:任务不原子化、有歧义、不可执行;

  2. 任务顺序颠倒,依赖关系错误;

  3. 多余任务/多余工具调用(不需要搜索,却反复调用搜索);

  4. 遗漏必要子任务;

  5. 生成循环任务,造成Agent死循环。

附加辅助指标(可选)

  • 工具调用错误率:参数错误、调用不存在工具的次数

  • 冗余工具调用次数:不必要的工具调用(用来评估Agent是否高效)

  • 任务完成耗时、token消耗

  • 证据对齐通过率:Grounding绑定证据是否合规

四、自动打分的两种方案

方案A:LLM-as-judge(大模型充当裁判,最常用)

用一个强模型作为裁判Judge,读取:

  1. 用户原始问题

  2. Agent完整运行日志:Planner输出计划、每一步工具调用、Observation、中间推理、最终输出

  3. 参考证据、评估标准

Judge自动输出打分结果:是否成功、是否幻觉、规划有没有错误,并给出理由。

Judge的Prompt模板(直接复制使用)

你是Agent评测裁判,严格基于给定参考证据和规则打分,禁止主观臆断。【输入】用户原始请求:{user_query}参考证据:{reference_evidence}Agent完整运行日志:{agent_full_trace}禁止行为列表:{forbidden_behavior}评判规则:1. 判断【任务是否成功】:满足全部成功条件输出true,否则false2. 判断【是否存在幻觉】:检查Agent所有事实断言,对比参考证据。存在编造/篡改事实,输出true,并标出幻觉位置;无幻觉false3. 判断【规划是否错误】:检查Planner任务拆解、工具调用顺序、任务依赖,存在规划错误输出true,否则false输出严格JSON格式:{  "case_id": "xxx",  "is_task_success": true/false,  "has_hallucination": true/false,  "hallucination_level": "none/minor/fatal",  "has_plan_error": true/false,  "reason": "逐条说明判断理由,标注幻觉/规划错误位置"}

方案B:规则硬编码打分(适合简单场景,确定性强,没有模型噪声)

用代码做字符串匹配、证据ID校验、规则判断。 例子:

  • 检查Agent输出是否绑定证据ID(Grounding校验)

  • 检查是否出现禁止关键词(如编造价格)

  • 统计工具调用次数是否超过上限,判定循环

✅优点:结果稳定,没有Judge模型本身的幻觉; 

❌缺点:复杂推理场景很难写全规则,适合简单场景。

工程最佳实践:混合模式 硬规则做前置过滤(循环、证据缺失),复杂的事实判断交给LLM-as-judge。

五、评测流程完整闭环(版本迭代回归测试)

  1. 准备测试数据集(简单/中等/困难,包含异常陷阱case)

  2. 启动Agent,记录完整执行trace(全链路日志)

  3. Judge自动逐条评估每个case

  4. 计算三大指标:任务成功率、幻觉率、规划错误率,生成评测报告

  5. 分析失败案例:区分是规划问题 / 幻觉问题 / 工具异常处理问题

  6. 优化Agent代码/Prompt,重新跑整套评测集(回归测试)

每次升级Planner、修改Prompt、更换模型,都跑一遍这套评测,防止改完之后Agent能力退化。

六、评测常见坑

  1. ❌只评估最终输出,不看中间执行轨迹

很多错误发生在Planner或者工具调用环节,最终答案碰巧对,但是中间过程是错的,上线会随机翻车。

  1. ❌Judge模型本身产生幻觉,打分不准

对策:选用更强的Judge模型;少量样本人工抽检,校准Judge打分。

  1. ❌数据集缺少异常陷阱case,指标虚高

只测一帆风顺的简单任务,幻觉率看起来很低,上线遇到脏数据、空结果直接崩盘。

  1. ❌指标定义模糊,“成功”没有明确标准

必须写死success_criteria,不能让Judge主观判断好不好。

七、一句话总结

  1. 评测数据集:包含正常样本+陷阱负样本,每条case附带用户问题、参考证据、判定规则;

  2. 三大核心指标:任务成功率(任务能不能做完)、幻觉率(会不会编造事实)、规划错误率(Planner任务拆解是否合理);

  3. 自动打分:LLM-as-judge裁判读取Agent完整执行轨迹,自动打分;配合硬规则做前置校验;

  4. 核心要点:Agent评测必须看完整执行链路,不只看最终回答。

今天的内容消化了吗?记得把“温习旧知”加入你的每日清单哦!✅ AI大模型的学习是一场马拉松,拼的不是爆发力而是耐力。每天来这里复盘打卡,从懂理论到会实操,时间会给你最好的答案。加油!

如果这篇内容能给你带来一点启发或是慰藉,就请帮我点个赞、在看,也可以分享给身边的人。给我加个星标吧,这样我就能第一时间出现在你的订阅列表里,不错过每一次分享。谢谢你的阅读,我们下次再见。

随机文章