加载中...
加载中...
评估集的真正价值不是发布前跑一次得个分数,而是每次改动提示词、模型、工具、工作流后都能自动回归,证明这次改动没有把Agent改坏。
评估回归测试是给智能体准备一套「功能回归测试」:把评估集、判定器(judge)、通过门槛(gate)和版本快照绑定,每次改动提示词、模型、工具描述或工作流之后自动重跑,输出的不只是分数,而是一份「相对上一版,哪些用例退化了、退化在哪」的差异报告。
对银行测试场景尤其重要:提示词改一个词、模型换一个小版本、工具返回结构加一个字段,都可能让原来能跑通的用例悄悄失败,而且失败方式很难靠人工体验发现。没有回归机制,智能体的每次优化都是在「无回归地裸奔」。
以「银行监管指标问答Agent」为例:输入监管问题,调用「查指标库」和「查制度文件」两个工具,输出结构化答案。
测试1:黄金集与最小断言。
工具:DeepEval(https://github.com/confident-ai/deepeval)或 Braintrust(https://www.braintrust.dev/)。
操作:为每条用例写 output_schema 与 judge rubric,用 Python 断言做硬校验(工具名必须等于 qy_metric_lookup,参数 metric_code 必须等于 EAST_GL_001)。
指标:格式合规率、工具调用参数保真度、硬校验通过率。
测试2:退化检测(本次核心)。
操作:冻结 v1.3 的评估结果作为基线,改动提示词后重跑同一套用例,逐条对比(case_id → 上一版通过 / 本版失败 → 回归)。
指标:回归率(本次新增失败用例数除以用例总数)、回归用例的意图分布(定位到是哪类问题退化)。
测试3:变异测试(mutation testing)。
工具:Mutation-Guided LLM-based Test Generation at Meta(论文 https://arxiv.org/abs/2402.16367)。
操作:对判定器做变异(删掉一个断言、放宽一个阈值、把 judge 的 rubric 换一条),检查测试套件是否还能发现这个变异;发现不了说明测试套件本身有盲区。
指标:变异检出率(变异体被消灭的比例)。
测试4:对抗样本回归(银行场景必做)。
工具:HarmBench(https://github.com/centerforaisafety/HarmBench)、 Garak(https://docs.garak.ai/)、 promptfoo(https://www.promptfoo.dev/)。
操作:固定 50 条注入与社工用例(伪造的「上级指令」、夹带在附件里的指令、要求绕过授权),每次改动提示词或安全护栏后重跑。
指标:注入成功率(越低越好)、拒答率、误拒率(正常业务问题被拒答的比例,银行场景里误拒率是业务投诉的直接来源)。
测试5:工具返回变化对Agent的冲击。
操作:在 mock 里把「查指标库」的返回字段由 number 改为 string、删掉一个可选字段、把单位从亿元改成万元,各跑一遍。
指标:字段解析失败率、单位错误率、工具报错率。
推荐指标组合:核心意图通过率(门槛 ≥95%)、工具调用参数保真度(≥98%)、注入成功率(≤2%)、误拒率(≤3%)、回归率(新增失败 = 0)。
执行顺序:生成黄金集 → 冻结基线 → 改动 → 重跑 → 出差异报告 → 门槛判定 → 归档。
「分享到微信」:手机浏览器打开时一键调起系统分享面板,选择微信即可分享到朋友圈或聊天。电脑上回退为复制文案。
暂无留言,来说两句吧