claude_code Harness 在 Benchmark 准备好的工作区中以非交互方式运行 Claude Code。
工作原理
- 准备 Claude Code CLI。 若镜像中不存在
claude,Harness 会按install_strategy执行install_command。 - 配置并运行。 Harness 写入当前会话使用的 Anthropic 兼容 model 配置,并以无头模式运行 Claude Code。Recipe 可以传入仓库外的设置文件,避免凭据进入最终补丁。
- 回收结果。 Claude Code 的 JSON 记录会被规整为轨迹、最终回答和执行状态,并返回
RunResult。
参数
通过--harness-params '{...}' 传入 Harness 参数。这里只列出通常需要调整的安装与 agent 行为,其余路径和上传配置使用内置默认值。
参数总览
| 参数 | 类型 | 默认值 | 可选值 / 取值 | 说明 |
|---|---|---|---|---|
install_strategy | 字符串 | install_if_missing | preinstalled / install_if_missing / upload | 准备 Claude Code 的方式。 |
install_command | 字符串 | npm install -g @anthropic-ai/claude-code | 命令 | 缺少 Claude Code 时执行的安装命令。 |
max_turns | 整数 | 400 | 整数 ≥ 1 | 单个任务的最大 agent 轮数。 |
max_output_tokens | 整数 / 空值 | 未设置 | 整数 ≥ 1 或 null | 单次响应最大输出词元;未设置时沿用 Claude Code 默认值。 |
append_system_prompt | 字符串 | 未设置 | 任意字符串 | 追加给 Claude Code 的额外系统提示词。 |
timeout | 整数 / 空值 | 未设置 | 整数 ≥ 1 或 null | 整题 Claude Code 执行的实际耗时超时。 |
dangerously_skip_permissions | 布尔值 | true | true / false | 是否传 —dangerously-skip-permissions。仅在需要保留 Claude Code 权限确认时设为 false。 |
model API
Claude Code 需要 Anthropic 兼容的--model-base-url 与 --model-api-key,并使用 --model-api-protocol anthropic。基础 URL 以 /v1 结尾时,Harness 会自动去除该后缀,再写入 Claude Code 配置。
运行示例
- 默认配置
- 自定义参数
使用默认安装与 agent 配置运行。
输出
Harness 为每个任务返回RunResult:轨迹、最终回答与执行状态。单任务详情与聚合指标由 Benchmark 写入 results/<benchmark>/<model>/<run>/(详见 结果)。