【AI 编程工具横评】9 个 coding agent harness 怎么选:先定 harness,再定模型

OpenRouter 每-app 真实用量显示,Claude Code 里跑得最多的模型是 GLM 5.2,比 Anthropic 自家四个模型加起来还多。9 个 harness 逐个拆开讲,附一次六款工具同题实测。

【AI 编程工具横评】9 个 coding agent harness 怎么选:先定 harness,再定模型

摘要: 九个 harness,一个把整个品类问题重新框定的发现。按 OpenRouter 的 30 天 app 数据,Claude Code 里用量最大的模型是 GLM 5.2,3.14T token,而 Anthropic 自家四个模型加起来才 1.98T。Codex 正好相反,前十里约 86% 的量留在 OpenAI 自家。Cline 和 Pi 的头名都是 DeepSeek V4 Flash。所以「哪个 harness 最好」这个问题问错了,它其实是两个问题:按控制循环挑 harness,再单独挑模型。凡是允许你自己选的工具,开发者早就这么干了。

一句话对照:九个 harness 怎么分

Harness跑在哪价格能换模型吗靠什么扩展协议
Codex CLI终端ChatGPT 订阅或 API key只认 Responses APIAGENTS.md、MCPApache-2.0
Claude Code终端Claude 订阅或 API key能,改 ANTHROPIC_BASE_URLhooks、子 agent、skills、MCP闭源
Google Antigravity桌面端、IDE、CLI个人开发者免费不能,只能选内置菜单agent 管理器、子 agent闭源
GitHub CopilotIDE、CLI、云端AI Credits $0 / $10 / $39 / $100只有 Chat 能,靠扩展skills、MCP闭源
CursorIDE订阅制只有 Chat 能,且不稳rules、MCP闭源
ClineVS Code、JetBrains自带 key能,任意 OpenAI 或 Anthropic 端点plan 模式、MCPApache-2.0
OpenCode终端、桌面端自带 key能,models.dev 上所有 providerAGENTS.md、MCPMIT
Reasonix终端、桌面端、VS Code自带 key能,改 reasonix.tomlMCP、sidecar、plan 模式、checkpointMIT
Pi终端、RPC、SDK自带 key能,15+ provider,还能中途切扩展 API,别的基本没有MIT

九个里有两个的主 agent 界面压根接不了外部模型,另外三个能接但有让人头疼的前提,剩下四个把模型当成一行配置。就这一条分界线,对你的账单和被锁定程度的预测力,超过本文任何一个跑分。

AI coding agent harness 到底是什么

harness 是包在模型外面的那层程序,它把「生成 token」变成「在你仓库里干活」。 模型是发动机,harness 是变速箱、底盘和刹车。

具体说,harness 干的是模型自己干不了的五件事:组装上下文,决定哪些文件和哪几轮历史发出去;定义并执行工具,让一次 read_file 调用真的读到文件;把关权限,让 rm -rf 是直接跑、先问一句还是干脆拒绝;管理恢复,决定补丁打不上或测试变红之后怎么办;以及保存会话状态,让中断的任务能接着跑而不是从头来。

这就是为什么两个人跑同一个模型,体验能差出十万八千里。把 GPT-5.6 Sol 从 Codex 挪到 Cline,模型一模一样,但读文件的策略、工具 schema、重试策略、审批流程全变了。大家搜的词五花八门(agent harness、coding agent、AI 编程工具),说的是同一层东西。

这些 harness 到底差在哪

四条轴,只有第四条是你上手前看不出来的。

跑在哪。 终端优先(Codex、Claude Code、OpenCode、Reasonix、Pi)、编辑器内(Cline、Cursor、Copilot),或者像 Antigravity 2.0 那样自带窗口的独立 agent 管理器。这决定了你能不能给它接管道、挂定时任务、或者 SSH 上去跑。

模型是不是你说了算。 这是本品类最干脆的二分:要么工具从配置里读 base URL,要么模型菜单是厂商定的,没得商量。

靠什么扩展。 一边是 hooks、子 agent、skills、MCP server 堆满,另一边是刻意留白、让你自己往上盖。Claude Code 和 Pi 是有意站在两个极端的。

控制循环在压力下的表现。 决定你会不会继续用下去的就是这条。改之前会不会先读对文件?diff 收不收得住?会不会跑你的检查?测试挂了能不能爬起来而不是反复横跳?被打断之后能不能续上?2026 年 7 月一条讨论 harness 怎么选的 r/AI_Agents 长帖最后收敛的正是这一点,最高赞的那条评论说得比我们好:

大家往往过度关注模型,而低估了执行循环。

本文就按这个框架来写。模型质量现在是入场券,循环行为才是差异所在,而且它恰好是所有跑分都不报的那一项。

我们怎么测这个循环

既然结论押在循环上,那就真跑一次。我们搭了个小 Python 仓库,里面埋了个真 bug:重试函数 catch 的是 urllib.error.HTTPError,而 OpenAI SDK 抛的是 openai.RateLimitError,所以 429 分支永远进不去,测试挂掉。九个工具里的六个(Codex CLI、Claude Code、Cline、OpenCode、Reasonix、Pi)指向同一个网关,在同一个仓库里给完全相同的提示词:跑测试,用一句话说出根因,用 unified diff 给出修法,一个字都别改。

六个全都说对了根因,这是最没意思的一条结论,所以先说完拉倒。差别在下面。Codex CLI、OpenCode、Cline 先跑了测试再回答;Claude Code、Reasonix、Pi 靠读代码直接答。修完之后留下的那行没用的 import urllib.error,Codex 在正文里点出来了,Claude Code 在 diff 里悄悄删掉了,另外四个原样留着。还有,六个里有四个交出来的补丁仍然带着 if e.code != 429 这道判断。三个是明写出来的,一个是只改了 except 那行、把它原封不动留下了。一旦你 catch 的是 openai.RateLimitError,这道判断就永远进不去:它的 .code 是 API 返回的字符串错误码,从来不是 HTTP 状态码(状态码在 .status_code 里),所以 e.code != 429 恒为真,重试分支不可达。

最后这条更像是模型的问题而不是 harness 的问题,而这恰恰是重点:由 harness 决定循环要不要自己验一遍补丁,而这六个一个都没验。

剩下三个没法这么跑:Copilot 和 Cursor 要付费席位才能在 agent 模式里用自定义 provider,Antigravity 则是不登录 Google 账号根本不跟你说话。它们的章节依据的是厂商文档和第一方 CLI 输出,不是同一场实测,文中会写明。

各个 harness 里,开发者实际在跑什么模型

大多数横评告诉你该买哪个工具,然后就没了。更有用、也是大家真的会搜的问题是:工具到手之后,往里塞哪个模型。OpenRouter 会公开开启了追踪的 app 的每-app 模型用量,这就把这个问题从「各说各话」变成了数据。

下面是截至 2026-08-11 的 30 天数据,来自各工具公开的 OpenRouter app 页面

Harness30 天 token用过多少模型第 1 名第 2 名第 3 名头名占其前十的比重
Claude Code7.97T302GLM 5.2 3.14TClaude Opus 4.8 582BClaude Sonnet 5 558B49%
Cline3.86T314DeepSeek V4 Flash 1.26TStep 3.7 Flash 812BLaguna M.1 370B37%
Pi2.79T298DeepSeek V4 Flash 406BDeepSeek V4 Flash 0423 299BGLM 5.2 289B20%
Codex1.01T348GPT-5.6 Sol 321BGPT-5.6 Luna 177BDeepSeek V4 Flash 108B35%

把最后一列从上往下读,就是四个工具各自的性格测试。

Claude Code 最集中,而且集中在别人家的模型上。 光 GLM 5.2 一个就占了它前十流量的 49%。把 Opus 4.8、Sonnet 5、Opus 5 和 Fable 5 全加起来,Anthropic 自家阵容是 1.98T,GLM 5.2 一个模型就高出约 1.6 倍。Kimi K3 和两个版本的 DeepSeek V4 Flash 也都进了前十。这个被公认循环做得最好的 harness,对这批用户来说主要是个装非 Anthropic 发动机的底盘。

Codex 是个单一生态。 前十里七个是 OpenAI 模型,合计吃掉约 86% 的量。剩下三个外来户(DeepSeek V4 Flash、Nemotron 3 Ultra、GLM 5.2)分掉 14%。这就是「只认 Responses」这条限制在总量上的样子:它不是一堵墙,是一道筛子,大多数人懒得翻。

Cline 从一开始就是奔着省钱去的。 DeepSeek V4 Flash 以 1.26T 领先,Step 3.7 Flash 812B 紧随其后,第一个 Anthropic 模型要到第十位才出现,87.7B,约占前十的 2.6%。Cline 的用户优化的是单任务成本,不是榜单名次。

Pi 是这四个里分布最平的。 头名只占 20%,前十横跨 DeepSeek、智谱、月之暗面、Anthropic、OpenAI、xAI 和英伟达。对一个主打「给零件不给功能」的工具来说,用法和定位完全对得上。

这份数据覆盖不到什么,别让人拿它糊弄你。 OpenRouter 只看得见走 OpenRouter、且开了追踪的那部分流量。所有用 Anthropic 订阅跑 Claude Code 的、用 ChatGPT 套餐跑 Codex 的、用 GitHub 自家推理跑 Copilot 的、用 Cursor 自有模型的,在这里全是隐身的。所以这不是市场份额。它是一个更窄但对看 harness 横评的人更有用的东西:当选择权真在用户手上时,他们选了什么。另外也留意谁完全不在榜上:Antigravity、GitHub Copilot、OpenCode、Reasonix 都没有条目,原因有两种,下面各自的章节会讲清楚。

反过来查:手里已经有模型,配哪个 harness

如果你是搜「某个模型该用哪个 harness」进来的:

你已经在用优先试为什么
GLM 5.2Claude Code,其次 OpenCode它讲 Anthropic Messages API,换个 base URL 就配完了,而且它本来就是这个 harness 里跑得最多的模型。如果你在纠结托管还是自己拿权重部署,那笔硬件账和 harness 选型是两回事
DeepSeek V4 FlashReasonix,其次 ClineReasonix 的循环是围着 DeepSeek 的前缀缓存造的;Cline 则是这个模型量最大的地方
DeepSeek V4 ProOpenCode,其次 Pi两个都支持把 Flash 设为默认、按任务临时升配
Kimi K3Claude CodeAnthropic 兼容端点,而且它已经在 Claude Code 的前十里了
Qwen 3.8 MaxCodex CLI少数几个能走 Responses API 的非 OpenAI 模型之一,而 Codex 只认这个
MiniMax M3Cline,其次 OpenCode标准 OpenAI 兼容 Chat Completions,不用折腾协议
GPT-5.6 SolCodex CLI第一方默认配置,调优假设也对得上

Codex CLI:OpenAI 的 agent,以及定义了它的那个协议

跑在哪

只有终端,一个 Rust 二进制,npm i -g @openai/codex 装,另外配一个独立桌面应用。配置在 ~/.codex/config.toml,项目指令写 AGENTS.md。过去 30 天它在 OpenRouter 全站排 #15、编程类排 #8,比它的存在感要小,因为绝大多数 Codex 用户根本不出 ChatGPT 套餐。

Codex CLI 0.147.0 把 wire_api 设为 responses 后连第三方网关,画面里有 config.toml 的 provider 配置块、会话头显示模型 bailian/qwen3.8-max 与 provider ofox,以及 agent 先跑 pytest 再指出 retry.py 里异常类型不匹配

花多少钱

绑在 ChatGPT 订阅里,或者拿 API key 按量付。它 OpenRouter 上的数据被低估,就是因为这个绑定。

靠什么扩展

AGENTS.md、MCP server,还有一条能把 Claude Code 和 Cursor 配置导入过来的命令。沙箱是这批里最硬的:操作系统级隔离,macOS 用 seatbelt,Linux 用 Landlock 加 seccomp,上面再叠审批模式。如果你习惯自动放行 shell 命令,这个差距是能折算成钱的。

会被锁在哪

被锁的是协议,不是厂商。Codex 只讲 OpenAI Responses API,wire_api = chat 已经被移除,现在的版本配了它直接起不来。所以网关必须暴露 /v1/responses,光有 /v1/chat/completions 不行,而且支持与否是按模型算的,不是按网关算的。有两个细节反复坑人:模型 ID 前缀只在自定义 model_providers 条目下才生效;网关目录里列了某个模型,不代表这个模型能走 Responses 通。配置细节见 ofox Codex 集成文档模型 provider 页

「按模型不是按网关」这句话听着容易点头,但很难想象具体长什么样,所以说说我们撞上它时的情形。Codex 0.147.0 配了正确的 provider 块,每个请求都返回 Invalid 'input[0].tools[0].description': empty string。我们在网关前面架了个会落盘的反向代理,把 Codex 实际发出去的请求体读了一遍:它在一条 developer 消息里声明工具命名空间,而 functions 这个命名空间带的是 description: ""。拿同一个请求体重放到五个模型上,三个拒绝,一个压根没有 Responses provider,一个通过。把那个空字符串填上,原本失败的模型立刻返回 200。这事既不是网关的错也不是我们的错,是客户端发了一个字段,有的上游按 minLength: 1 校验,有的直接忽略。

终端里展示 Codex CLI 0.147 实际发送的请求体,functions 命名空间带着空的 description 字符串,下面是同一请求体重放到五个模型的结果矩阵:gpt-5.6-sol、gpt-5.5、deepseek-v4-flash 返回 400,glm-5.2 返回 503 且无 Responses provider,qwen3.8-max 返回 200,把空 description 填上之后 gpt-5.6-sol 也返回 200

这里能带走的经验对任何 harness 都成立:客户端和网关吵起来的时候,先把线上的请求原文抓下来,再动配置。我们在这上面花了一个代理加五分钟;靠猜 wire_api 的值,得搭进去一个下午,还会得出错误结论。

Claude Code:扩展面最深,但里面大多在跑别人的模型

跑在哪

终端,npm 装,带插件生态和一个 IDE 桥接。它在 OpenRouter 全站排 #2,7.97T token,见过 302 个不同模型。

花多少钱

Claude 订阅、API 计费,或者第三方网关。三条路差别大到「Claude Code 要花多少钱」这问题根本没有单一答案。

靠什么扩展

比这里任何一个都多。hooks 在工具事件上触发,子 agent 在自己的上下文里跑限定范围的任务,skills 把可复用流程打包,MCP server 加工具,CLAUDE.md 承载项目指令。如果你想让 harness 承载团队流程而不只是个人习惯,这是唯一撑得住的。

会被锁在哪

比名字暗示的少得多。ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN 能把它指向任何讲 Anthropic Messages API 的端点,这正是 GLM 5.2、Kimi K3 和 DeepSeek 出现在它用量数据里的原因。两个环境变量就是全部流程:

Claude Code 2.1.220 把 ANTHROPIC_BASE_URL 指向第三方 Anthropic 兼容端点,跑 z-ai/glm-5.2,正确诊断出根因并给出修这个重试 bug 的 unified diff

注意什么东西换过去了、什么没换过去。GLM 5.2 把异常类型不匹配这一点说对了,但它的补丁保留了 if e.code != 429 这道判断,而这道判断永远进不去:在 openai.RateLimitError 上,.code 是字符串错误码,不是 HTTP 状态码。同一个 harness、同一个提示词、换个模型,diff 就微妙地差一截。真正的锁定是行为层面的:系统提示词、工具 schema、上下文策略都是照着 Claude 模型调的,换进来的模型继承的是为别人准备的假设。具体变量见 ofox Claude Code 集成文档和它的模型 provider 页。如果你要往反方向走,我们写过从 Claude Code 迁到 Codex 的分步指南

Google Antigravity:一个牌子,四个入口

跑在哪

到处都是,这正是让人犯迷糊的地方。Antigravity 现在是四样东西:Antigravity 2.0,一个能并行跑多个本地 agent 的桌面指挥台;Antigravity CLI,终端界面;Antigravity IDE,完整编辑器;以及一套自己写 agent 的 SDK。它 2025 年 11 月以 agent 优先的 IDE 身份发布,之后一路往外扩。

有些报道说 Gemini CLI 要停服、由 Antigravity CLI 接手。我们去找了一手来源,没找到。截至 2026-08-11,这个说法没有依据:google-gemini/gemini-cli 仓库没归档、没弃用声明,preview、stable、nightly 三条通道都还在发;antigravity.google 和 Google Developers Blog 都没这么说过。在 Google 亲口说之前,就当两个并存。

花多少钱

写这篇时对个人开发者免费,另有付费的组织版,Google 更高档的 AI 订阅里用量上限也更高。你买的是额度,不是 token。

靠什么扩展

2.0 的管理器能同时跑多个 agent,还允许主 agent 派生临时子 agent,让并行任务不污染主上下文。内置浏览器给了它一条用眼睛而不是断言来验证 UI 改动的路。

会被锁在哪

模型菜单。Antigravity 暴露 Google 自家模型加上一批精选的第三方选项,没有 base URL 可改。它在 OpenRouter 的 app 数据里没有条目,因为压根没东西可路由。如果你已经统一到某个网关上,Antigravity 是这批里唯一不肯入伙的。

光看命令行参数就能确认这件事。我们装了它的 CLI(brew install --cask antigravity-cli,版本 1.1.12),整份选项列表里没有 --base-url、没有 --provider、也没有 --api-key。让它列模型,列不出来,弹给你一堵登录墙。

Antigravity CLI 1.1.12 的 help 输出,完整参数列表里没有 base-url、provider 和 api-key 选项,下面 agy models 返回「Please sign in to view available models」

这堵登录墙也是为什么 Antigravity 是本文唯一一个连「纯 key 通路」都没有的工具。Copilot 和 Cursor 没进那场实测,是因为带自定义 provider 的 agent 模式在付费席位后面,但席位买了就能进。Antigravity 是不登录 Google 账号就不跟你说话,掏多少钱都改不了。

GitHub Copilot:人人都有的默认选项,按 credit 计费

跑在哪

GitHub 能到的地方都有:VS Code 及其他 IDE、终端里的 Copilot CLI、能直接开 PR 的云端 coding agent,以及 GitHub 站内的代码评审。覆盖面就是它的卖点。

花多少钱

这块改过,网上不少写法已经过期了。现在计费走 GitHub AI Credits,1 credit = $0.01。Free 是 $0,Pro $10/月含 $15 credits,Pro+ $39 含 $70,Max $100 含 $200,Business 和 Enterprise 席位单独定价。行内补全和 next-edit 建议完全不消耗 credit;chat、agent 模式、代码评审和 Copilot CLI 会消耗。最近的更新日志还加了按周期查看 credit 用量、以及在 CLI 和 SDK 里设置会话上限的功能。定价页会变,做预算前请以当前套餐页为准。

靠什么扩展

MCP server、自定义指令、仓库级配置,CLI 里还有按任务类型自动选模型的功能。

会被锁在哪

模型菜单,带一个星号。Copilot 自家界面跑 Copilot 自家模型。要接外部端点,只能通过第三方 VS Code 扩展、只能在 Copilot Chat 里、而且只能是个人订阅;Business 和 Enterprise 席位用不了,Tab 补全无论如何还是跑 GitHub 的模型。ofox Copilot 集成文档写了这条路怎么走,包括具体的 provider 字段,也老实交代了它到哪儿为止。

Cursor:编辑器很好用,但发动机舱焊死了

跑在哪

独立编辑器。它是这批里付费用户最多的工具,而在 OpenRouter 的编程类榜单上排 #11,30 天 471B token,大约是 Claude Code 在同一平台上量的十七分之一。这个差距是它的特点而不是黑点:Cursor 的推理是自己的,几乎没什么需要走出去。

花多少钱

按席位订阅,上面再叠用量档位。

靠什么扩展

rules 文件、MCP server,以及一套很强的多文件编辑循环。它的 Tab 模型是最多人说「换不掉」的功能,也确实是即便 agent 活儿在别处干、也值得留着这个编辑器的理由。

会被锁在哪

比这里任何工具都紧,我们自己的文档就是这么直说的。ofox Cursor 页面的标题是「兼容性说明」而不是「配置指南」:Tab 补全硬编码在 Cursor 自家模型上,换不掉;Agent 模式用不了自定义 provider;免费账户完全不能用自定义模型;就连能走通的 Chat 那条路,也会被 Auto 模式覆盖掉。文档最后给的建议,和老用户自己摸索出来的结论一致:把 Cursor 当编辑器留着,agent 的活儿在它内置终端里跑 Claude Code 或 Codex CLI。这与其说是绕路,不如说是对这两层该怎么分工的准确描述。

Cline:为省钱而生的循环

跑在哪

VS Code 和 JetBrains 里的扩展。它在 OpenRouter 全站排 #4、IDE 扩展类排 #2,2024 年 10 月起就在跑,是本文这批工具里在 OpenRouter app 数据中资历最老的。

花多少钱

扩展本身不要钱。你自带 key,而用量数据显示,用户挑这个 key 时把成本看得很重。

靠什么扩展

先规划后执行的两段式、管理并行任务的任务板、MCP server,还有用来验证前端改动的浏览器自动化。它的规划界面确实比大多数终端 agent 强。

provider 覆盖面是这批里最宽的,没有之一:列表上 185 个 provider,而且「OpenAI Compatible」是一等公民,不是埋在高级设置里的逃生口。

Cline 的 Model Providers 界面列出 185 个可用 provider、其中 2 个已启用,包括 Cline Usage-Billing、OpenRouter、AWS Bedrock、LiteLLM,以及一个已打开的自定义 OpenAI Compatible 条目

会被锁在哪

几乎没有。任何 OpenAI 兼容或 Anthropic 兼容的端点都能用,这正是 DeepSeek V4 Flash 能占到它前十流量 37% 的原因。指向网关只要一条 cline auth 命令,之后循环的表现和用第一方 key 时一样:

Cline CLI 3.0.52 配置到 OpenAI 兼容网关上跑 deepseek/deepseek-v4-flash,画面显示它先跑 pytest、读 retry.py,然后给出根因和 unified diff

用户抱怨最多的失败模式是循环可靠性而不是锁定:在那条 r/AI_Agents 帖子里,有人说任务会卡在格式错误的工具调用上,最后转去用一个处理得更稳的分支。这是单个用户的反馈,权重按一条算,但它指向的轴是对的,即循环而不是模型。我们自己也撞到一个相邻的粗糙处:把 CLI 通过 OpenAI 兼容通路指向一个带推理能力的 Claude 模型时,报了个内部错误 text part ... _reasoning_0 not found,而同一端点上的非推理模型跑得干干净净。配置见 ofox Cline 集成文档

OpenCode:从设计上就不绑模型

跑在哪

终端优先,另有桌面应用和编辑器界面,npm 包名 opencode-ai,MIT 协议,项目指令用 AGENTS.md。它不在 OpenRouter 的 app 榜单上,反映的是没开追踪,不是没人用。

花多少钱

免费开源,你只付 token 钱。

靠什么扩展

AGENTS.md、MCP server,以及一层能覆盖 models.dev 上全部 provider 的 provider 层,我们 2026-08-11 查的时候是 183 个,而且支持会话中途切换。ofox 是内置 provider,所以配置是一个环境变量而不是一段 JSON。

会被锁在哪

结构上没有,这就是它的全部设计意图。同一道排错题,它是把过程展示得最完整的一个:先跑测试套件、打印 traceback,然后读源码再作答。

opencode 1.18.9 通过自定义 provider 块跑 deepseek/deepseek-v4-flash,画面显示它执行 pytest、打印完整的 RateLimitError traceback,然后读 retry.py 并指出异常类型不匹配

代价是:一个没有默认厂商的 harness,也就没有厂商替你调提示词,所以要把它调到最佳状态,配置量比 Claude Code 或 Codex 大。provider 配置见 ofox OpenCode 集成文档,两个终端 agent 的正面对比我们写在 OpenCode 与 Codex CLI 对比里。

Reasonix:社区出品,围着 DeepSeek 调,缓存优先

跑在哪

一个本地引擎带四个入口:CLI 加 TUI、桌面应用、浏览器界面,以及一个通过 ACP 连同一后端的 VS Code 扩展。它以单个静态 Go 二进制发布,CGO_ENABLED=0,任意系统上 npm i -g reasonix,macOS 上也可以 brew install esengine/reasonix/reasonix。1.23.0 版本 2026-08-10 发布,维护是活跃的。

名字这件事得先纠正。Reasonix 不是 DeepSeek 的产品。它是社区项目,仓库在 github.com/esengine/DeepSeek-Reasonix,MIT 协议,自己的站点是 reasonix.io。DeepSeek 官方文档里列的 agent 集成是 Claude Code、GitHub Copilot 和 OpenCode,没提 Reasonix。承载了它大部分报道的第三方站点,页面上自己写了是独立、无从属关系。工具本身是真的、也有意思,但挂在它上面的 DeepSeek 品牌不是官方的。

花多少钱

免费开源,外加你的模型花销。它的设计目标就是让后面这个数字保持很小。

靠什么扩展

MCP server 贡献工具和提示词,Extension Protocol v1 的 sidecar 更进一步,能拦截运行时事件、添加 provider、发布带版本的插件包。所有东西都声明在一份 reasonix.toml 里,不硬编码任何模型。它还配齐了长时间无人值守跑所需、而 Pi 刻意不做的那套安全设施:plan 模式、权限层、工作区沙箱,以及可读可撤销的逐轮 checkpoint。有一项能力这里没有别家提供:让执行模型和规划模型在两个各自缓存稳定的会话里同时跑。

会被锁在哪

协议层面没有:任何 OpenAI 兼容端点都是一条配置,reasonix.toml 就是全部:

Reasonix 1.23.0 在 reasonix.toml 里只用一个 provider 块指向 OpenAI 兼容网关,返回一句话根因和两行的 unified diff 修这个重试 bug

有意思的偏向在循环本身:它是照着 DeepSeek 的前缀缓存行为设计的,让长会话持续命中缓存而不是为上下文反复付费。如果你会让 agent 连着跑几个小时,这是真差异;如果你是短平快地用,那基本无关。另外,因为 DeepSeek 的缓存是按完整单元匹配而不是逐字节前缀匹配,省钱来得比大家预期的晚,所以要按你实际的工作形态来规划,不要照着宣传的缓存命中率算。

Pi:故意什么都不带的 harness

跑在哪

终端,另外还有 print/JSON 输出、RPC 服务和可嵌入 SDK。npm i -g @earendil-works/pi-coding-agent 安装,0.84.1 版本 2026-08-07 落地。它在 OpenRouter 全站排 #7,2.79T token,MIT 协议。

花多少钱

免费开源。

靠什么扩展

一套扩展 API,然后基本就没别的了。Pi 不带 MCP、不带子 agent、不带 plan 模式,而且把这说成是选择而不是待办:给零件,不给功能。想要那些能力,你在扩展面上自己造。对已经对 agent 该怎么跑有明确主张的团队来说,从一个光循环起步比跟别人的默认设定较劲更快;对其他人来说,第一天的工作量更大。

会被锁在哪

没有,用量数据就是证明:15+ provider,用 /model 中途切模型,头名占比 20%,是本文实测的工具里模型分布最平的。加一个 provider 就是往 ~/.pi/agent/models.json 里写一个块,仅此而已:

pi 0.84.1 在 models.json 里声明自定义 provider 指向 OpenAI 兼容网关,跑 deepseek/deepseek-v4-flash 并给出根因和 unified diff 有一条得单独提醒,项目自己也写在明面上:Pi 没有内置的文件系统、进程、网络、凭据权限系统,沙箱要你自己做。要交给它敏感东西,就放容器里跑。那条 r/AI_Agents 帖子里也有用户反映,同样的活儿 Pi 烧的 token 明显比另一个 harness 多,这和「上下文策略交给你」的设计是一致的。

其他值得知道的 AI coding agent

这些没有单独成节,要么是覆盖面更窄,要么是我们没法拿它们过同一道上手测试。

工具形态值得注意的点ofox 文档
Kilo CodeVS Code、JetBrains、CLIOpenRouter 编程类第 3,排在 Cline 前面
Roo CodeVS Code 扩展一个工作区里多个专职 agent 角色
Aider终端repo map,每次编辑前先发一份精简的代码库结构视图,减少改错文件其他
Zed编辑器原生编辑器,速度快,带 agent 面板;编程类榜单第 14
OpenHands终端、云端开源自主 agent,带浏览器和 API 访问
goose终端Block 的开源 agent,扩展驱动
Qwen Code终端阿里的 CLI 工作流工具
Crush终端Charm 出的 TUI agent,终端体验很好
OpenClaw聊天驱动从聊天软件里下命令;按量排编程类第 5
Windsurf / Devin / FactoryIDE 与云端商业自主 agent,订阅门槛

Antigravity 和 GitHub Copilot 是一回事吗

r/AI_Agents 那条帖子里有人正好问了这个,因为同一个人把 Antigravity 评得很高、把 Copilot 评得很低。这个质疑是合理的,而答案挺有启发,因为表面上它们确实是同一个品类:大厂工具,精选模型菜单,订阅制而不是 token 账单。

它们的分岔在计费表怎么走。Copilot 从 credit 余额里扣,agent 干活会一直往下划,所以在贵模型上跑重活能很快把一个月的额度耗光,那个帖子里的用户就说同事五天烧掉了 $30 的预算。Antigravity 是另一套计法,用量上限绑在套餐档位上而不是按请求扣余额,体感从「看着钱包见底」变成「撞墙然后等」。谁更好没有定论:活儿是一阵一阵来的,那种不能结转、按月清零的 credit 池就很浪费;活儿是长期稳定的重活,固定上限反而更好预期。

第二个差别是验证。Antigravity 自带一个它自己驱动的浏览器,前端改动在循环内部就用眼睛看过一遍。Copilot 的强项在另一头:它焊在 PR、代码评审和 CI 上,也就是代码落地的地方,而不是代码写出来的地方。

哪些 harness 能远程或异步跑

终端原生的那些才是你能扔到服务器上的。Codex CLI、Claude Code、OpenCode、Reasonix、Pi 都能通过 SSH 无界面跑,Pi 走得最远,专门提供了 print/JSON、RPC 和 SDK 三种模式。Cursor 绑死在一个运行中的编辑器上。Copilot 是另一个极端,云端 agent 接一个 issue 就还你一个 PR,全程不需要你的机器参与。Antigravity 2.0 能并行跑多个 agent,但那是本地窗口里的本地 agent。

这一列里的意外是 Cline。扩展确实要编辑器,但 CLI 不要:它会起一个本地 hub 守护进程和一个浏览器面板,能看到已连接的客户端和运行中的会话,所以 SSH 上去的机器也能用。

浏览器里的 Cline Hub 面板,显示两个已连接客户端、一个正在跑的会话(openai-compatible 的 deepseek-v4-flash 模型,指向本地工作目录),以及一条最近事件流

如果目标是无人值守的长任务,候选名单很短:一个终端 harness 加一个缓存稳定的模型,而这正是 Reasonix 被造出来要占的位置。

一个月的 agent 编程到底花多少钱

这个月我们看到最有信息量的数字来自用户而不是厂商。在那条 r/AI_Agents 帖子里,一个同时推进四个项目的开发者贴了自己的 DeepSeek 面板:一个月大约 12 亿 token,绝大部分是缓存读取,花了 $9.57。把它当成一个人的记录而不是基准,但它的形状是有教育意义的:他花得少不是因为用了便宜的 harness,而是因为几乎所有上下文都从缓存里出。

这就把成本问题重新框定了。harness 对账单的直接影响很小,它真正撬动的是两件事:一是缓存命中率,取决于它怎么在轮次之间组装上下文;二是 token 总量,取决于它多频繁地重读文件或重试失败步骤。一个每轮都从头重建提示词的 harness,在完全相同的模型上,成本会是「增量追加」那种的好几倍。所以除非模型、仓库和任务三样全都固定,工具之间的单任务成本对比基本没有意义。

订阅制工具是把这个问题藏起来绕过去的。用 Copilot 或 Antigravity,你根本看不到单任务成本,只能看到额度掉得有多快。这对做预算是真优势,对做优化是真劣势。

什么情况下该选哪一个

每个工具都有它赢的场景。依次是:

  • Codex CLI:你活在 OpenAI 生态里,而且习惯自动放行 shell 命令。这是本文唯一一个代码库里能看到操作系统级隔离原语的工具,macOS 用 seatbelt,Linux 用 Landlock 加 seccomp。
  • Claude Code:你想让 harness 承载团队流程。没有第二个工具暴露这么多内置扩展点。
  • Antigravity:你想要多个 agent 并行干活、带可视化验证,而且不想为每个 token 焦虑。
  • GitHub Copilot:活儿发生在 PR 和评审里而不是编辑器会话里,而且团队里人人本来就有席位。
  • Cursor:编辑速度对你最重要。这里没有能比它 Tab 模型的,只是记得把 agent 的活儿放它终端里跑。
  • Cline:你想在 IDE 里要先规划后执行的纪律,后面配个便宜模型。
  • OpenCode:模型自由是硬需求,而且你愿意花时间配置。
  • Reasonix:会话动辄跑几个小时,缓存经济学主导你的账单。
  • Pi:你对循环该怎么跑有明确主张,要的是地基而不是成品。

能同时用好几个吗

能,而且经验最丰富的开发者大多就是这么干的。r/AI_Agents 那条帖子读下来,与其说是在找唯一赢家,不如说是在描述一个组合:编辑器负责快速改,IDE agent 负责本地上下文,终端 agent 负责带测试的多文件改动。有位评论者建议把这三条道明确分开,任何新工具都拿同样三道题试:修一个 bug、加一个小功能、做一次带测试的重构,然后留下那个「diff 最小最干净、需要人工纠偏最少」的。

这比这个品类里任何跑分都更像样的评测方法,而且一个下午就能做完。我们自己那篇 Claude Code、Codex、Gemini CLI 与 Cursor 四方对比终端 agent 大乱斗走的都是这个路子:同一份活儿,一个工具一个工具地过。

大多数人不做这个测试,原因不是它难,而是跑三个 harness 意味着配三套凭据。

怎么让它们全指向同一个 key

这正是整篇对比底下那个实际的坎。这里每一个允许你选模型的工具,都要自己的凭据、自己的格式、自己的配置文件。Claude Code 要 ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN。Codex 要 TOML 里一个带 wire_api = "responses"model_providers 块。Cline 要在扩展界面里填 provider 设置。OpenCode 要一条 provider 条目,Reasonix 要 reasonix.toml 里一段,Pi 要它自己的 provider 配置。六个工具六个地方,而且如果你直接向每家模型厂商付费,那就是六张账单、六套互不共享的限流。

这个坎是真的,也不能怪任何单个工具。一个品类只统一到两种 wire 协议、别的什么都没统一,结果就是这样。

好在这些 agent 大多讲的要么是 OpenAI 兼容、要么是 Anthropic 兼容的 HTTP,所以解法处处同形:把它们指向同一个同时提供两种协议的端点,然后改模型 ID 字符串,而不是改管道。ofox.ai 两种协议都暴露,所以同一个 key 能覆盖 Claude Code、Codex CLI、Cline、OpenCode、Reasonix 和 Pi,账也集中在一处而不是六处。每个工具的具体配置在集成文档里,边界也一并写清楚了:Copilot 只在 Chat 里、只在个人席位上能用,Cursor 的 Tab 和 Agent 完全封死,Antigravity 根本没有这个设置项。九个里有三个没法完全入伙,装作不是这样,你测第一个下午就会拆穿。

这件事的意义不止是省事,而是回到上面那套评测方法:同一个 bug 拿同一个模型过三个 harness,只有在凭据本来就共享的前提下才便宜。

结论:先挑循环,再挑模型

没有最好的 harness,但有更好的问法,而大多数文章问错了。按控制循环挑工具,因为那才是你天天要相处的;再单独挑模型,因为在所有允许自选的工具上,开发者早就把这两件事当成独立决策了。OpenRouter 的数据从经验上把这件事坐实了:Claude Code 里最受欢迎的模型不是 Anthropic 造的,而且差距不小。

如果你只想要一个起点:一个能改 base URL 的终端 harness,指向一个缓存友好的模型,编辑器留着专心编辑。这套配置是这个品类里用得最重的那批人最终收敛到的地方,而且一个月的花销不到一顿午饭钱。

参考信息来源

常见问题

什么是 AI coding agent harness?
harness 是包在模型外面、把它变成 agent 的那层程序。模型只负责生成 token,harness 决定哪些文件进上下文、模型能调哪些工具、执行 shell 命令要不要先问一句、测试跪了之后怎么办、会话被打断后还能不能接着跑。Claude Code、Codex CLI、Cline、OpenCode 都是 harness,GLM 5.2、GPT-5.6、DeepSeek V4 是模型。两样都得选,而且怎么配对比单看哪一个都重要。
Claude Code 里能跑非 Anthropic 的模型吗?
能,而且在 OpenRouter 上这是多数情况。Claude Code 读 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN,任何讲 Anthropic Messages API 的网关都能顶上。截至 2026-08-11 的 OpenRouter 30 天数据里,GLM 5.2 在 Claude Code 内部用掉 3.14T token,而 Anthropic 自家四个模型加起来是 1.98T。要注意这个数只覆盖主动把 Claude Code 指向网关的那批人,不等于整体市场份额。
Reasonix 是 DeepSeek 官方出的吗?
不是。Reasonix 是社区项目,仓库在 github.com/esengine/DeepSeek-Reasonix,MIT 协议,npm 包名 reasonix,自己的站点是 reasonix.io。DeepSeek 官方文档里列的 agent 集成是 Claude Code、GitHub Copilot 和 OpenCode,没有 Reasonix。那个挂着 Reasonix 长文的 deepseek.ai 域名,页面上自己写了是独立站点、与 DeepSeek 无从属关系。
Gemini CLI 是不是停服了、被 Antigravity CLI 取代了?
没有。截至 2026-08-11,google-gemini/gemini-cli 仓库没有归档、没挂弃用声明,preview、stable、nightly 三条发布通道都还在发。Antigravity 确实新增了自己的 CLI 界面,有些报道把这读成了替代,但 antigravity.google 和 Google Developers Blog 都没说 Gemini CLI 要下线。
哪个 harness 跑起来最便宜?
成本主要由模型和缓存行为决定,harness 的影响小得多。本文这批里最省的组合是:一个不绑定厂商的 harness,配一个缓存友好的低价模型,这也是 DeepSeek V4 Flash 在 Cline 和 Pi 里都排第一的原因。订阅制工具则是另一套逻辑:GitHub Copilot 和 Antigravity 卖的是额度不是 token,天花板固定,但单任务花了多少你看不见。
每个 coding agent 都得单独配一个 API key 吗?
只要工具允许改 base URL 就不用。Claude Code、Codex CLI、Cline、OpenCode、Reasonix、Pi 六个都支持自定义端点,一个网关 key 全覆盖,账也集中在一处。GitHub Copilot 只能通过第三方 VS Code 扩展、且只在 Chat 里接外部端点。Cursor 的 Tab 和 Agent 直接封死。Antigravity 压根没这个设置项。
扩展能力最强的是哪个?
Claude Code 内置的扩展面最深:hooks、子 agent、skills、MCP server,还有 CLAUDE.md 这套约定。Pi 是刻意站在对立面的,这些一个都不内置,只给你一套扩展 API 自己拼。Reasonix 在中间:MCP server 加上 reasonix.toml 里声明的带版本 sidecar 扩展协议,另有 plan 模式、权限层、工作区沙箱和逐轮 checkpoint,都是冲着长时间无人值守跑的场景去的。这里没有绝对赢家,只有「开箱即用」和「给我零件」两条路线之分。