GOCLAWAGENT EVALUATION
GoClaw 首页

42. 实践主线:把 Reference Adapter 换成真实 Agent

实验课 4 · 半天~1 天

学习目标

  1. 明确评测器与被测 Agent 的协议边界;
  2. 用 HTTP Adapter 接入一个本地服务;
  3. 理解 Inspect AI 在执行层和 GoClaw 在控制层的分工。

42.1 Adapter 的契约

评测器只依赖:

run(case, workspace, seed, variant) -> RunResult

RunResult 至少包含:

不要把 LangChain、OpenAI SDK 或内部 Go 类型直接传进 Scorer。

42.2 HTTP 响应格式

先运行仓库提供的本地 HTTP 烟测:

make agent-eval-lab-http-smoke

这会启动一个临时本机服务,经过真实 HTTP round trip 后再使用同一套 Scorer。 它验证的是 Adapter 契约,不是外部模型能力。

HttpAgentAdapter 发送:

{"case":"查询订单 A-1002 的状态","user_id":"u-1","seed":0}

服务返回:

{
  "final_text": "订单 A-1002 当前状态为 shipped。",
  "final_state": {"orders":{"A-1002":{"status":"shipped"}}},
  "trace": [
    {"sequence":1,"kind":"tool","name":"get_order","arguments":{"order_id":"A-1002"},"result":"ok"}
  ],
  "input_tokens": 120,
  "output_tokens": 18,
  "latency_ms": 840
}

服务负责提供真实证据,Adapter 负责协议转换,Scorer 负责判断。

42.3 最小 HTTP 服务练习

你可以用 Python 标准库 http.server 写一个本地 /run 端点,先返回上面的 固定 JSON,再逐步接入真实 Agent。这样可以先验证 Adapter、Trace 和 Scorer, 避免一开始就被模型网络、密钥和业务数据库阻塞。

42.4 Inspect AI 的正确位置

Inspect 更适合做:

Task / Dataset / Solver / Scorer 执行
Sandbox / EvalLog / Hook / 并发

GoClaw 或上层平台更适合做:

EvalSuite / Experiment / Baseline / ReleaseGate / 权限与审计

本手册提供 agent-eval/integrations/inspect_goclaw.py 作为边界示例。没有 安装 Inspect 时,它应该明确输出 not_run,不能伪装成已执行。

42.5 真实系统接入前的安全检查

42.6 本章验收

本章依据

  1. Inspect AI 官方文档
  2. Inspect AI Extensions