用途:TraceGrader 评估智能体运行的“轨迹”而非只评估最终答案。一次运行可能通过有问题的路径得到正确答案(例如强推代码、重试风暴、编辑了从未读取过的文件),即 corrupt success;也可能时好时坏(一次通过、重跑失败)。只检查答案的评测看不到这两种情况,TraceGrader 则检查路径。
主要能力:读取 trace 来源(规范 traces.json、audit jsonl、Claude Code 会话 transcript),经解析得到 run=[{step, tool, args, observation, ok}],再按配置规则检查并计算 pass^k(同一任务 k 次重跑是否全部通过),对每个 run 给出判定:clean-pass、pass-with-warnings、corrupt-success、fail。规则包含 forbidden_tool(高危)、out_of_order(中危,经由 must_precede)、retry_storm(中危,连续同一工具失败超过阈值)、excessive_steps(低危,超过步数预算)、edited_without_read(中危,编辑了从未先读取/检索/写入过的文件,由 grounding.enabled 控制)。若存在 corrupt-success 或任务 flaky,退出码为 3,便于 CI 拦截。
使用方式:编辑唯一适配文件 harness/trace-grader.config.yaml 设置规则参数(禁用工具、重试阈值、步数预算、顺序约束),再运行评测脚本,例如:python3 harness/scripts/trace-grader.py --self-test(内置 clean/corrupt/flaky 三个自测用例);python3 harness/scripts/trace-grader.py --traces traces.json;python3 harness/scripts/trace-grader.py --audit .claude/audit/<date>.jsonl --task my-task;python3 harness/scripts/trace-grader.py --transcript ~/.claude/projects/<proj>/<session>.jsonl --task my-task。加 --json 可输出机器可读结果。
适用场景:当有一个或多个智能体运行轨迹,想了解答案是如何得到的;需要可重复性门禁(pass^k);或想在求助 LLM 评审之前,先获得工具选择、顺序、重试、步数预算等方面的确定性、可 CI 门禁的信号。
限制:不评估最终答案质量;在配置仍为 verified:false 时,agent-as-judge 轴处于关闭且不被调用的状态;不修复被标记的运行。纯 audit 日志看不到每步 ok/observation,retry_storm 不会触发,结果为部分,需用完整 traces.json。transcript 不含任务判定,run.ok 会被强制为 True,应信任 FLAGS。规则参数唯一放在 harness/trace-grader.config.yaml 中,阈值在真实轨迹上验证前保持 verified:false,不能当作已验证。退出码 3 表示信号,而非工具错误。详细参数默认值、价格、平台支持等资料暂未提供。