a↗Agent 工程实战中文课程 / v1.0.0⌕ 搜索课程/
本页目录

L04 从一段成功录像到可复现评测

适用章节:M04。本实验允许多种正确实现;验收不变量固定,不强制特定框架。

工程事故

开发者只展示最成功的一次,失败尝试的成本没有记账;模型自述完成,评测器就计为成功。你需要重建一个不会被文本和幸存者偏差误导的评测闭环。

最终交付

任务验收器设计、指标计算器、10条教学试次分析、一个bad-case报告,以及真实运行结果的空白记录模板。

已提供材料

data/evaluation/trials.json、data/traces/refund_response_lost.json、data/retail/tasks.jsonl、reference/agentlab/metrics.py

先独立写出预期行为再看参考解。所有商店、订单、试次与价格单位都是教学构造;不连接真实资金系统。

接口与不可破坏的约束

把Task、Trial、Attempt分开:一个任务可多次独立试验,一次试验可包含重试。所有计费尝试进入总成本;未知成本标记unknown,不能默认为0。p95在本课程使用nearest-rank定义,必须在报告说明。

任务成功基于领域状态及授权不变量。LLM-as-judge只能负责需要语义判断的部分,保留rubric与人工抽查;不能让judge覆盖“未审批退款”的确定性失败。

实施步骤

  1. 为T01–T24逐条标出应读的事实与正确终态,不把expected字段送进Agent。
  2. 运行离线指标样例,手算成功率与每个成功任务成本。
  3. 设计Trace schema:run/attempt/span、工具状态、延迟、usage、错误分类;不保存密钥或隐藏思维过程。
  4. 分析响应丢失轨迹:unknown不等于失败,恢复后ledger_count=1才是确认。
  5. 写分层故障分类:检索、推理/决策、协议、授权、工具、恢复、预算、验收器错误。
  6. 选修真实模型运行:固定模型标识、provider、配置、任务版本和预算,进行重复试次;给小样本不确定性,不夸大百分比。

验收矩阵

条件 正确处理
教学10试次,7成功,总成本14.5 success_rate=.7,cost_per_success=14.5/7
成功数0 cost_per_success未定义,不显示0
空数据集 success_rate未定义
延迟100…1000ms nearest-rank p95=1000ms
成本NaN/负值 拒绝输入
文本说成功但账本无操作 业务失败或未确认,不能成功

如何运行已有参考测试

在包根目录运行:

python -m unittest discover -s reference/tests -v

本实验主要参考测试类为MetricTests。已有测试默认验证reference/;测试通过不代表你的starter/实现通过。接入自己的实现时,将被测模块显式替换/注入,保持测试和领域契约不变,不要修改断言来迁就实现。

评分

独立oracle30;成本/指标25;trace/错误归因20;可复现性15;结论克制10。

出现跨租户泄露、未经批准的退款或伪造结果时,不以其他分数抵消。允许记录未完成的选修功能,但必须说明范围。

进阶挑战

比较pass@k与pass^k的含义;对安全违规单列硬门槛,不用高正确率平均掉违规。为失败任务写一个最小回归测试。

提交前自查

保存代码版本、运行命令、输入数据版本、输出日志、失败案例与设计决策。解释至少一个被你否决的方案。没有运行的测试标记“未运行”,不写“预计通过”。参考解见对应答案。