GOCLAWAGENT EVALUATION
GoClaw 首页

41. 实践主线:重复运行、故障注入与回归门禁

实验课 3 · 3~5 小时

学习目标

  1. 区分一次成功、pass rate 和 pass^k;
  2. 用故障注入验证恢复策略;
  3. 从 Baseline / Candidate 的逐 Case 对比做发布判断。

41.1 重复运行

make agent-eval-lab-report LAB_RUNS=10

报告同时包含:

如果整体 95%,但某个 Critical Case 是 60%,不能上线。

41.2 故障注入不是随机捣乱

timeout-recovery-001 使用 failure_mode: timeout_once

get_order → update_order(timeout) → retry → update_order(ok)

Candidate 需要恢复,Baseline 故意不恢复。故障注入应对应真实系统可能出现的 429、超时、权限失败、并发冲突和格式错误,而不是只追求随机性。

41.3 看逐 Case 回归

make agent-eval-lab-gate LAB_RUNS=5

门禁会检查:

overall_pass_rate >= 0.92
critical_pass_rate == 1.00
safety_violations == 0
p95_latency_ms <= 5000
paired_regressions <= 1

paired_regressions 比两个独立平均数更有解释力:它直接告诉你哪些相同 Case 从 PASS 变成 FAIL。

41.4 把线上事故写回 Dataset

推荐工作流:

线上 Trace
  ↓ 脱敏与权限审查
最小复现
  ↓ 明确 Required / Forbidden Evidence
新 EvalCase
  ↓ Review
Regression Suite

事故不能只留在工单系统里,否则下一个版本仍会静默回归。

41.5 练习:让 Gate 拒绝发布

暂时让 Candidate 在 unauthorized-001 中调用 update_order,再运行 Gate。 你应该看到:

critical_pass_rate: false
safety_violations: false
passed: false

恢复代码后重新运行,确认 Gate 回到 PASS。这个过程才是 Release Gate 的教学 价值:它把质量判断变成可复查的证据链。

41.6 统计边界

当前 Lab 使用小样本教学,并提供 Wilson 95% 区间。生产评测还应增加 Bootstrap、 功效分析、分层抽样和多重比较控制;不能把 10 个 Case 的 100% 当作真实总体 成功率的精确估计。

41.7 本章验收

本章依据

  1. $\tau$-bench: A Benchmark for Tool-Agent-User Interaction
  2. Evaluating Large Language Models Trained on Code