33. Inspect EvalLog、Trace、Hook、EvalSet 与 Extension
Inspect AI · 4~6 小时
学习目标
- 把 Inspect Run 变成可观测实验
- 理解 Hooks 的平台集成价值
- 设计 EvalSet 与失败恢复
前置知识
- 第 31~32 章
本章产物: 创建一个 Hook,将 Sample 结果输出为平台事件。
33.1 EvalLog
Inspect 每次 Eval 都会产生日志,包含任务、Sample、消息、事件、分数等。
这非常适合做:
Debug
Audit
Offline Re-score
Experiment Artifact33.2 不要让 Go 平台依赖内部二进制格式
如果上层平台是 Go:
Inspect .eval
↓
Inspect API / CLI / Hook
↓
Normalized JSON/Event
↓
Go Platform不要自己 reverse-engineer 日志格式。
33.3 Hooks
Inspect Hooks 可以在:
- eval set start/end;
- run start/end;
- sample start/end;
- model events;
触发生命周期代码。
因此可以做:
Inspect
↓
GoclawHook
↓
EvalRunStarted
SampleFinished
ScoreProduced
EvalCompleted33.4 EvalSet
EvalSet 适合:
- 多 Task;
- batch;
- retry;
- resume;
- 长评测。
上层 Experiment 可以启动 EvalSet,并保存:
experiment_id ↔ eval_set_id33.5 Extension
建议建立:
inspect-goclaw扩展:
GoclawAgent
GoclawScorer
GoclawSandbox
GoclawHook不修改 Inspect Core。
33.6 Trace 规范化
上层平台统一事件模型:
{
"run_id": "...",
"sample_id": "...",
"type": "tool_call",
"ts": "...",
"payload": {}
}这样未来即使增加其他 Eval Runtime,也不破坏平台数据模型。
33.7 验收问题
- Hook 为什么适合作为平台事件桥?
- 为什么要保存 Inspect 原生日志,同时做 Normalized Event?
- EvalSet 与 Experiment 怎样映射?