第 9 章

第 9 章:预集成 Agent——开箱即用的 42 个被测对象

第 9 章:预集成 Agent——开箱即用的 42 个被测对象

评测的第一步是挑选"谁来解题"。Harbor 内置了 42 个 agent 集成,覆盖主流编程 agent、通用 agent 框架与基线实现,全部随主包分发、无需额外安装依赖。本章介绍如何用 -a/-m 一行命令指定被测对象、如何用 --ak/--ae 精细控制 agent 行为,并给出完整 agent 清单、能力矩阵与按场景选型建议。

预集成机制:一行命令切换被测对象

Harbor 的所有 agent 集成开箱即用。以 codex 为例,CLI 方式只需 -a 选择 agent、-m 选择其模型:

export OPENAI_API_KEY="..."
harbor run \
  -t hello-world/hello-world \
  -a codex -m openai/gpt-5.6-sol

配置文件方式把 agent 与任务写进 config.json,适合批量与可复现运行,随后执行 harbor run --config config.json 即可:

{
  "agents": [
    {
      "name": "codex",
      "model_name": "openai/gpt-5.6-sol"
    }
  ],
  "tasks": [
    { "name": "hello-world/hello-world" }
  ]
}

Python API 同样支持:通过 Job.create(JobConfig(agents=[AgentConfig(...)], tasks=[TaskConfig(...)])) 构造任务后 await job.run(),适合把评测嵌入自己的程序。执行 harbor run --help 可查看当前版本的全部选项。42 个预集成 agent 之外,还可以运行 ACP registry 中的 agent,或接入自定义 agent(第 10 章)。

--ak 与 --ae:控制 agent 行为的两个通用阀门

每个 agent 集成都有自己的 kwargs 与环境变量,Harbor 用两个可重复使用的通用旗标把它们暴露出来:

Flag 用途
--ak、--agent-kwarg 向 agent 实现传递一个设置项。数字、布尔、列表、对象等值会被解析成对应类型。
--ae、--agent-env 在 agent 安装与执行阶段设置一个环境变量。值保持字符串。
harbor run \
  -t hello-world/hello-world \
  -a claude-code -m anthropic/claude-sonnet-5 \
  --ak max_turns=20 \
  --ae MCP_TIMEOUT=20000

上例中 max_turns=20 是配置给 Claude Code 集成自身的参数,而 MCP_TIMEOUT 则暴露给 agent 进程使用。设置前请先查阅对应 agent 的集成代码,确认它支持哪些 kwargs 与环境变量。

原生配置(native configuration)

claude-code、codex、deerflow、junie 支持直接传入 agent 的原生配置文件——例如 Claude Code 的 settings.json、Codex 的 config.toml,让评测环境与开发者本地环境的行为保持一致。也支持内联 JSON,Harbor 会把它转换为该 agent 的原生配置格式再交给 agent:

# 传入原生配置文件
harbor run ... -a codex --ak "config=path/to/config.toml"
# 内联配置
harbor run ... -a codex --ak 'config={"model_context_window": 200000}'

代表性 Agent 速览

42 个集成不必逐个记住,编程 agent 是其中最大的一类。以下挑选 8 组有代表性的展开,能力细节以本章末尾矩阵为准。

codex

OpenAI 的编程 agent CLI,也是 Harbor 官方文档的"示范生"——各页面示例基本都用它演示。能力齐全:ATIF、Resume、MCP、Skills、原生 config.toml 配置,且是仅有的两个能加载原生轨迹与 ATIF 轨迹的集成之一(另一个是 claude-code)。

claude-code

Anthropic 的编程 agent,能力矩阵中最"满格"的一个:ATIF、Resume、MCP、Skills、原生配置之外,它还是唯一支持 Handoff(评测完成后把会话带回本地继续)与 ACP bridge(作为模拟用户试验中的被测目标)的集成。

gemini-cli

Google 的编程 agent CLI,支持 ATIF、Resume、MCP、Skills,并同样可以充当 ACP bridge 的被测目标,适合需要跨厂商对比的场景。

cursor-cli 与 copilot-cli

两大商业 IDE 厂商的 CLI 形态编程 agent,均支持 ATIF、MCP、Skills;copilot-cli 额外支持 Resume。想评测"IDE 厂商的 agent 水平"时是首选。

开源梯队:aider、goose 与 opencode

aider 是老牌开源结对编程工具,支持 Resume 但不产出 ATIF 轨迹——只看通过率时依然是可靠选择。goose(Block 开源的通用 agent 框架)与 opencode 同属"开源全家桶"梯队,ATIF、Resume、MCP、Skills 四项全支持,常用于跨开源实现的横向对比。

基线与研究系:mini-swe-agent 与 swe-agent

mini-swe-agent 由 SWE-bench 团队打造,极简、透明、依赖极少,支持 ATIF 与 MCP,常被当作"最简基线"——如果任务连它都解不动,可能要先反思任务设计。swe-agent(普林斯顿 NLP)是软件工程基准研究的开山实现之一,支持 ATIF,适合作为历史参照系。

terminus-2

Terminal-Bench 生态中的 agent,支持 ATIF、MCP、Skills,在终端类任务榜单中常见,常与终端任务(如 terminal-bench 数据集)搭配使用。

此外,trae-agent、qwen-coder、kimi-cli 等新锐编程 agent 也已预集成;nop 与 oracle 则是特殊成员,价值主要在 Windows 容器支持(见矩阵脚注)。

完整清单与能力矩阵

42 个预集成 agent 的能力矩阵如下(✓ 支持,– 不支持),这张表同时也是完整清单:

Agent ATIF Resume Handoff MCP Skills
aider – ✓ – – –
antigravity-cli ✓ – – ✓ ✓
antigravity-sdk ✓ – – ✓ ✓
claude-code ✓ ✓ ✓ ✓ ✓
cline-cli ✓ – – ✓ ✓
codex ✓ ✓ – ✓ ✓
computer-1 ✓ – – – –
copilot-cli ✓ ✓ – ✓ ✓
cortex-code ✓ ✓ – – –
cursor-cli ✓ – – ✓ ✓
deerflow – – – – –
devin ✓ – – – –
dspy-rlm – – – ✓ –
eve ✓ – – ✓ ✓
fx – – – ✓ ✓
gemini-cli ✓ ✓ – ✓ ✓
goose ✓ ✓ – ✓ ✓
grok-build ✓ – – ✓ ✓
hermes ✓ – – ✓ ✓
junie ✓ ✓ – ✓ ✓
kimi-code – ✓ – ✓ ✓
kimi-cli ✓ ✓ – ✓ ✓
langgraph – – – ✓ –
mcode – ✓ – ✓ ✓
mimo ✓ ✓ – ✓ ✓
mini-swe-agent ✓ – – ✓ –
muse-code – – – – –
nemo-agent ✓ – – – –
openclaw ✓ – – ✓ ✓
opencode ✓ ✓ – ✓ ✓
openhands ✓ – – ✓ –
openhands-sdk ✓ – – ✓ ✓
nop – – – – –
oracle – – – – –
pi ✓ ✓ – ✓ ✓
qwen-coder ✓ ✓ – ✓ ✓
rovodev-cli ✓ – – – –
strands ✓ – – ✓ –
swe-agent ✓ – – – –
terminus-2 ✓ – – ✓ ✓
trae-agent ✓ – – – –
vibe ✓ – – ✓ ✓

矩阵之外的其余能力(仅列出支持者):加载原生轨迹与加载 ATIF 轨迹均为 claude-code、codex;原生配置为 claude-code、codex、deerflow、junie;Windows 容器为 nop、oracle;ACP bridge 为 claude-code、gemini-cli。

两点阅读提示:pi 会将其活动会话分支转换为 ATIF 格式;MCP 支持仅表示集成会把任务提供的配置传给 agent,不保证一定能连通 MCP 服务器。

按场景选型建议

flowchart TD
    A[开始选型] --> B{需要轨迹做分析或训练?}
    B -- 是 --> C[选 ATIF 列为✓的 agent
如 claude-code / codex / terminus-2] B -- 否 --> D{多步任务需要续跑会话?} D -- 是 --> E[选 Resume 列为✓的 agent
如 gemini-cli / goose / opencode] D -- 否 --> F[通过率评测即可,任意 agent] C --> G{任务提供 MCP 服务器或 Skills?} E --> G F --> G G -- 是 --> H[核对矩阵对应列后取交集] G -- 否 --> I[确定候选,跑起来对比] H --> I

结合矩阵,常见场景可以这样落子:

  • 轨迹分析 / 训练数据生产:优先 ATIF 列为 ✓ 的 agent;claude-code 与 codex 还能反向下挂 ATIF 轨迹作为初始上下文。
  • 多步任务(multi-step):从 Resume 列选,如 gemini-cli、goose、opencode、qwen-coder。
  • 评测后在本地接着干:只有 claude-code 支持 Handoff;任务附带 MCP 服务器或 Skills 时,先核对矩阵对应列再取交集。
  • 模拟用户试验:被测目标用支持 ACP bridge 的 claude-code 或 gemini-cli。
  • Windows 容器任务:目前只有 nop、oracle 声明支持;要复用团队已有 agent 配置,选支持 native configuration 的四个集成之一。

本章小结

  • 42 个预集成 agent 随 Harbor 主包分发,-a 选 agent、-m 选模型即可运行,支持 CLI、config.json、Python 三种启动方式。
  • --ak 向 agent 实现传设置项(自动解析类型),--ae 设置 agent 进程的环境变量(保持字符串),二者均可重复。
  • claude-code、codex、deerflow、junie 支持原生配置文件与内联 JSON 两种传参方式。
  • ATIF 是覆盖面最广的能力,是轨迹分析与跨框架对比的基础;加载轨迹(原生或 ATIF)目前仅 claude-code、codex 支持,Handoff 仅 claude-code 支持。
  • MCP / Skills 支持表示集成会接收任务提供的配置,MCP 不保证实际连通性。
  • 选型思路:先按评测目的(轨迹、多步、通过率)定硬性能力,再按任务特性(MCP、Skills、Windows)过滤,最后在剩余候选中横向对比。

延伸阅读

  • Pre-integrated agents——本章对应的官方页面
  • ATIF——轨迹格式详解(见本书第 11 章)
  • Custom agents——内置清单之外的接入方式(见本书第 10 章)
  • ACP——通过 ACP registry 运行更多 agent
  • Multi-step tasks——Resume 能力的应用场景