评估 Agent 最难的,不是算分,而是先定义“什么算成功”。最终答案正确,可能只是运气;过程合理,也可能只是看起来合理。两者要分开看。

一、先收集轨迹,不要只存最终回答

一条可评估的轨迹至少包含:任务输入、模型计划、工具名与参数、工具返回、状态变化、是否请求人工、最终输出。没有这些,失败后只能重放聊天记录猜原因。

{
  "task": "把这张试卷照片整理成练习",
  "steps": [
    {"tool": "ocr_image", "ok": true, "latency_ms": 820},
    {"tool": "generate_practice", "ok": true},
    {"tool": "review_questions", "ok": false, "error": "答案不一致"}
  ],
  "finished": false,
  "human_review": true
}

二、用失败分类代替单一分数

“准确率 82%”不能告诉你下一步改哪里。把失败拆开,才会看到真实瓶颈。

每一类失败对应不同的修复位置。把它们混成一个“模型不行”,只会导致无休止地换模型。

三、小评测集比大榜单有用

从真实使用里挑 10–20 个任务,覆盖正常、边界和失败场景。固定输入,固定工具版本,记录每次改动后的结果。

evals/
  normal_001.json
  normal_002.json
  edge_ambiguous_001.json
  edge_large_image_001.json
  failure_expired_token.json

评测集要能跑得快、结果可比较。不要一开始就追求几百条;先让团队每天愿意跑,才有意义。

最小指标

任务完成率、平均工具步数、人工介入率、失败类型分布、平均延迟。五个指标已经足够指导大部分早期迭代。

四、把“人工确认”也当成结果

Agent 请求人工确认不一定是失败。对高风险动作,正确行为可能就是停下来问。评估时要区分:

五、回归测试要固定环境

模型、工具、提示词、检索库任何一个变化,都可能让结果漂移。每次只改一个变量,跑同一组评测;否则你无法知道改善来自哪里。

最后,把评估结果写回产品决策:如果某类失败一直最高,优先修工具或流程,而不是继续加提示词。评估的目的不是证明 Agent 聪明,而是让系统更可靠。

下一篇:多 Agent 协作什么时候值得 →04 / ORCHESTRATION