online branch: main

2026-08-05

RSS llms.txt GitHub

【Eval】第一次Eval,先从小事情干起

$
【Eval】第一次Eval,先干小事情

第一次做 Agent 测评,最容易走向两个极端。

一种是继续靠手工试玩,觉得多问几个问题就算测过。另一种是先研究平台、指标和统计方法,准备做一套完整系统,结果迟迟没有跑出第一批数据。

更实际的做法,是先选一个清晰任务,用大约 20 个有区分度的真实案例,跑通目标—用例—评分—分析—决策的最小闭环。

这里的 20 不是行业标准,只是一个便于启动的规模。正式样本量要根据风险、任务差异、结果波动和决策成本调整。

第一步:只选一个任务

第一次不要试图回答“整个 Agent 好不好”。

Agent 可能同时具备搜索、分析、写作、工具调用和文件处理能力。把所有能力混在一起评,结果一旦失败,很难知道问题发生在哪里。

一个适合首次测评的任务,通常具有三个特征:

  • 用户需求真实且高频;
  • 任务边界相对清晰;
  • 完成结果可以被观察和判断。

例如,“根据一份会议记录生成开发可读的需求文档”,就比“评估这个 Agent 的产品能力”更适合。

然后冻结当前被测版本:

  • 模型和参数;
  • System Prompt;
  • Skill 与脚本;
  • 可用工具和权限;
  • 上下文与运行环境。

最后写清这次测评用于什么决定。是保留新版 Prompt、判断 Skill 能否内部试用,还是比较两个候选模型?

没有决策目标,后面的分数很容易变成没有行动的报表。

第二步:把“好用”改成三类标准

“结果专业”“回答智能”“文档质量高”都无法直接验收。

可以把成功标准分成三层。

必须做到

这是任务成功的最低条件。

以需求文档为例:

  • 识别业务目标和目标用户;
  • 保留关键流程、字段和规则;
  • 输出测试可以使用的验收点;
  • 对材料中缺失的信息标记 TODO;
  • 成功生成指定格式的文件。

绝不能发生

这是硬门槛,不能被其他高分抵消。

  • 编造材料中不存在的结论;
  • 暴露敏感信息;
  • 未经授权修改或删除源文件;
  • 声称已经生成文件,但实际文件不存在;
  • 把待确认内容写成既定事实。

可以继续优化

这类指标适合比较版本,不一定决定是否可以使用。

  • 文档结构是否更易读;
  • 表达是否简洁;
  • 响应速度;
  • Token 和工具调用成本;
  • 是否减少人工整理。

这三层标准对应三种决策:守底线、看能力、做优化

第三步:收集首批真实任务

首批用例不需要很大,但不能只由开发者临时编写几个标准问题。

可以从五类来源构建:

类型 作用 示例
高频正常任务 代表主要使用场景 信息较完整的会议记录
表达变化 检查理解能力 简写、口语、顺序混乱
边界任务 暴露能力边界 材料缺字段、存在冲突
负例 检查不该执行时是否克制 输入与目标 Skill 无关
坏案例与风险 防止已知问题复发 曾出现编造、漏项或越权

如果以 20 个案例启动,可以参考这样的分配:

  • 8 个高频正常任务;
  • 4 个不同表达;
  • 3 个边界或信息缺失任务;
  • 2 个不应执行的负例;
  • 3 个历史坏例或高风险任务。

这只是示例。高风险 Skill 需要增加异常和禁止行为,内容生成类 Agent 可以增加质量差异更明显的案例。

每个案例至少记录:

  • Case ID;
  • 用户任务和输入;
  • 必要上下文与初始状态;
  • 期望结果;
  • 必须满足项;
  • 禁止行为;
  • 场景、风险和来源标签。

好的数据集不是题目越多越好,而是能代表真实任务,并且能区分两个版本的好坏。

第四步:选择合适的评分方式

不要把所有结果都交给同一种评分者。

能写规则的,优先用规则

格式、字段、文件和状态都可以确定性检查:

  • JSON 是否可解析;
  • 必填字段是否存在;
  • 文件是否生成;
  • 表格行数是否正确;
  • 工具参数是否符合约束;
  • 执行后状态是否按预期变化。

规则评分便宜、稳定,也容易定位原因。

开放质量,用 Rubric 判断

Rubric 可以理解为一份清晰的评分说明。

不要只写“完整性 1—5 分”,要说明每一档代表什么。例如:

  • 5 分:全部关键目标、流程、字段、规则和验收点均被覆盖;
  • 3 分:主体完整,但遗漏一项重要信息;
  • 1 分:只能看出大致主题,无法供后续角色使用。

相关性、正确性、完整性和可用性最好分开判断,避免一个模糊总分。

AI 裁判负责提效,人工负责校准

大模型可以按照 Rubric 批量评分,并给出判定理由。

但 AI 裁判会受到答案顺序、篇幅、措辞和模型自身偏好的影响。首次使用时,应抽取一部分结果由业务专家或产品人员独立判断,再比较两者是否一致。

严重失败、临界结果和评分分歧需要人工复核。

第五步:跑出第一条基线

执行时,要让全部案例使用同一版本和同一配置。

保存的不只是最终回答,还包括:

  • 是否成功完成;
  • 各项评分;
  • 触发和工具调用记录;
  • 生成的文件或数据;
  • 耗时、Token 和调用次数;
  • 失败原因与人工备注。

结果表不要只保留一个平均分。至少分成四部分。

硬失败

是否出现越权、泄露、严重事实错误、文件丢失或虚假完成声明?

这类结果单独计数,不能被平均值稀释。

核心任务

任务成功率是多少?正常场景和边界场景分别如何?关键产物是否可用?

稳定与效率

如果任务风险较高,可以对关键案例重复运行。同步记录时延和成本,避免质量提升完全依赖更多调用。

典型坏例

每一类失败挑选代表案例,保留输入、输出、过程证据和可能原因。

总分告诉你大概位置,坏例才告诉你下一步改什么

第六步:用结果做决定

一次 Eval 应以明确动作结束。

保留

硬门通过,核心任务达到最低标准,关键案例没有不可接受问题,可以保留当前版本作为基线。

修改

失败集中在明确模式,例如总是遗漏验收点、遇到缺失信息时不追问。将失败转成一个修改假设,再进入下一轮。

补测

结果波动大、评分存在分歧或部分场景样本不足。此时应增加运行次数、案例或人工复核,而不是强行下结论。

换方案

如果问题来自模型能力、检索数据、工具权限或工作流设计,继续堆叠 Prompt 可能没有意义。需要换模型、增加工具或调整流程。

回滚或停止

新版出现严重退化,或者提升不足以覆盖成本和风险,就回到旧版。

完成这一步,你已经拥有第一条可复现基线。以后每次修改,都可以在同一批任务上证明是改善还是退化。

下一篇将把范围收紧到 Skill:除了最后答案,还要检查它是否在正确场景触发、是否正确调用工具,以及是否真的改变了目标状态。


Agent 测评入门系列

  1. 【Eval】Agent测评不是简单给回答打分
  2. 【Eval】测试同学别焦虑,Eval也不是替代品
  3. 【Eval】第一次Eval,先干小事情(本文)
  4. 【Eval】测Skill,不只是盯结果
  5. 【Eval】分数变高,不代表版本真的变好
  6. 【Eval】规则、AI裁判和人工怎么成为铁三角
  7. 【Eval】离线全通过,上线仍会失败的原因到底是啥