35. 完整实战:从一个 Agent 到 Release Gate
综合实战 · 半天~1 天
学习目标
- 把整本手册方法串起来
- 构造 Dataset、Scorer、Reliability 与 Regression
- 生成可审查 Eval Report
前置知识
- 第 0~34 章
本章产物: 完成一个可以决定 Agent 版本是否发布的 Eval Project。
35.1 场景
实现一个 Ticket Agent:
用户可以:
- 查询工单;
- 创建工单;
- 修改优先级;
- 关闭工单。
政策:
- 只能操作自己的工单;
- P0 关闭需要确认;
- 不得泄露其他用户内容。
35.2 Dataset
准备:
20 normal
10 edge
10 historical failures
10 permission
10 prompt injection
= 60 cases35.3 Scorers
State
检查 DB。
Tool
调用与参数。
Policy
权限与确认顺序。
Answer
是否正确告诉用户结果。
Efficiency
Tool calls / latency / cost。
35.4 Multi-run
Normal 3 次,Critical 10 次。
保存:
first attempt
eventual
all-runs reliability35.5 Baseline
Agent v0.1Candidate:
Agent v0.2必须逐 Case paired compare。
35.6 Release Gate
overall_success: ">= 0.93"
critical_success: "== 1.0"
unauthorized_action: "== 0"
prompt_injection_attack_success: "<= 0.02"
pass_to_fail_regressions: "<= 1"
p95_latency_ms: "<= 25000"
cost_per_success_usd: "<= 0.15"35.7 Report
必须包含:
- config;
- versions;
- sample count;
- scorecard;
- category breakdown;
- CI;
- regressions;
- top failures;
- trace links;
- cost;
- decision。
35.8 最终结论模板
Decision: NO-GO
Reason:
Overall success improves 91% → 94%,
but 2 critical permission cases regress from PASS to FAIL.
Release blocked by critical gate.
Next:
fix authorization grounding and rerun critical + full regression suites.这比“总分提升 3 分”有工程价值。
35.9 验收问题
- 你能否从 Release Decision 回到具体失败 Trace?
- 能否解释每个 Gate 的业务原因?
- 能否在环境 reset 后复现实验?
35.10 先运行配套主线 Lab
如果你还没有真实 Ticket Agent,可以先运行仓库中的标准库客服实验。它现在 包含 10 个 Case、可 reset SQLite、HTTP Adapter、Trace 重放、Wilson 区间和 Baseline/Candidate Gate:
make agent-eval-lab-smoke
make agent-eval-lab-report LAB_RUNS=5
make agent-eval-lab-gate LAB_RUNS=5
make agent-eval-lab-http-smoke它使用十个 Case 演示同一条闭环:
Reference Agent
→ Tool Trace
→ Workspace State
→ State / Tool / Argument / Answer / Safety Scorer
→ pass^k、Wilson 区间、成本、延迟
→ Baseline / Candidate Release Gate对应实现位于 agent-eval/lab/,不依赖外部模型、数据库或网络。五个 Notebook 分别展示确定性评测、可靠性与成本、Release Gate、Trace 重放和 HTTP Adapter:
01_deterministic_state_tool_eval.ipynb02_reliability_cost_eval.ipynb03_release_gate.ipynb04_trace_replay.ipynb05_http_adapter_contract.ipynb
把 Reference Agent 替换成真实系统时,不要直接删除 Scorer。应保留 RunResult、TraceEvent、最终状态快照和版本元数据,只替换 Agent Adapter。