跳到主要内容

编程 Agent CLI 横向对比

进阶

你已经选好了模型。但真正包裹模型的那个程序 —— 读取文件、制定计划、运行命令、检查自身工作并重试的那个循环 —— 是一个独立的选择,而且它的重要性至少不亚于模型本身。社区把这个外壳称为 harness(或 agent),同一个模型在一个 harness 里可以表现得极其出色,在另一个里却平平无奇。本页梳理 2026 年的终端编程 agent、真正拉开它们差距的因素,以及如何保持配置的可移植性,让切换成本始终维持在低位。

What you'll learn
  • 分清两个常被混为一谈的选择:模型本身,以及驱动它的 harness
  • 掌握每个主流 CLI agent 的持久形态 —— Claude Code、Codex CLI、Gemini CLI,以及开源阵营
  • 在真正起决定作用的维度上做选择:自主性、开放性、模型无关性、沙箱与生态
  • 用 AGENTS.md 让你的配置可移植,这样切换 agent 时无需重写项目上下文

模型不等于 agent

前沿模型是一个文本预测器。而编程 agent是围绕它的 harness:系统提示词、工具集(读取、编辑、运行 shell、搜索)、规划循环、上下文管理策略、权限与沙箱模型,以及重试逻辑。改变 harness 就会改变结果 —— 贯穿 2026 年的从业者报告都描述过:同一个模型在真实仓库任务上的表现,会因为驱动它的 agent 不同而波动几十分。

这带来两个现实后果:

  • 一个基准数字是一个组合,而不是模型分数。“Terminal-Bench 上 83%”是一个模型 + harness + 脚手架的结果。换掉其中任何一部分,它都会变化。
  • **你的循环才是真正的比较单位。**最好的 agent,是在你的技术栈、你的终端里、以你能接受的价格表现最好的那一个 —— 这和挑选编程模型的逻辑一模一样。模型这一半的决策请见 Claude vs GPT vs Gemini 编程对比;本页讲的是 harness 这一半。

2026 年的格局

终端 agent 领域分成了两大阵营:针对某个实验室模型调优的第一方 agent,以及可以指向任何模型(或本地权重)的模型无关 agent。

Agent出品方开放性模型形态
Claude CodeAnthropic闭源Claude(第一方)自主、agentic 的多文件工作;操作系统级强制沙箱;深厚的 skills/MCP/subagent 生态
Codex CLIOpenAI开放(Apache-2.0,Rust)GPT(第一方)自主终端 agent;原生 Windows 沙箱;广泛的平台覆盖
Gemini CLIGoogle开源Gemini(第一方)大上下文 agent,与 Google 生态深度绑定(见下方时效性提示)
opencode社区(anomalyco)开放(MIT,TypeScript)任意(模型无关)star 数最高的开源 agent;CLI + 桌面端;自带模型
Aider社区开放(Apache-2.0)任意,含本地模型git 原生的结对编程伙伴,而非完整的自主编排器
Cline / Goose / 其他社区开放任意编辑器内嵌(Cline)或通用开源 agent(Goose);模型无关

真正起决定作用的维度

先把排行榜放一边。这些才是持久的问题:

Guided walkthrough1 of 5
  1. 第一方 agent(Claude Code、Codex CLI、Gemini CLI)针对自家模型调优,通常能给出最顺滑的巅峰体验。模型无关 agent(opencode、Aider、Cline)让你可以更换模型 —— 今天用前沿模型,明天用便宜的或本地的 —— 而无需更换工具。如果避免被锁定、或运行本地权重对你很重要,就选模型无关的。
Pro tip
  • 不要凭一个头条基准分数就买下一个 harness。要凭一次 30 分钟的试用来买它 —— 用你自己仓库里的真实任务来试,这正是那个能击败一切模型排行榜的“在你自己的代码上做评测”的做法。
  • 开放性是一种对冲,而不是你每天都会用到的功能。它的价值会在价格改动或免费层级消失、而你想搬家的那一天显现出来。

可移植性:上下文只写一次

最大的隐藏切换成本是你的项目上下文 —— 构建命令、约定、测试规则,以及那些 agent 无法自行推断的东西。2026 年这方面有了一个事实标准:AGENTS.md,一个放在仓库根目录的纯 Markdown 文件,由 Linux Foundation 旗下的 Agentic AI Foundation 维护,并被 Codex、Gemini CLI、Cursor、Aider、Copilot 的 coding agent、opencode、Goose 以及另外 20 多种工具原生读取(已有 6 万多个仓库采用)。

  • AGENTS.md = 跨工具的项目上下文。写一次;大多数 agent 都会读取。
  • CLAUDE.md = Claude Code 自己的项目记忆文件(见 CLAUDE.md)。你可以保留一个指向 AGENTS.md 的小型 CLAUDE.md,或者两者都维护。
  • SKILL.md = Anthropic 用于打包可复用 skills 的独立规范,带 frontmatter 和捆绑脚本。它与 AGENTS.md互补关系,而非竞争者 —— 一个描述项目,另一个打包可复用的流程。

把上下文放在 AGENTS.md 里,意味着你尝试另一个 agent 的那天,你的项目规则会免费一起跟过去。

精简版 AGENTS.md —— 只写 agent 无法推断的内容

# AGENTS.md

## Setup
- Install: `pnpm install`
- Dev server: `pnpm dev` (port 3000)

## Build & test (run before every commit)
- Typecheck: `pnpm typecheck`
- Lint: `pnpm lint`
- Tests: `pnpm test` — all must pass

## Conventions
- TypeScript strict; no `any`.
- Components in `src/components`, one per file.
- Never edit files under `generated/` by hand.

## Constraints
- Do NOT run `git push` or open PRs without being asked.
- Secrets live in `.env.local`; never commit them.
Watch out
  • 只在 AGENTS.md 里放 agent 无法自行发现的内容。重述显而易见的事实会在每次运行时消耗 token,并把真正重要的规则淹没。要手工整理它 —— 自动生成的上下文文件往往都是噪音。

一口气做出决定

  • 需要深度、自主的 Claude 工作,配上最丰富的工具生态Claude Code
  • 想要一个绑定 GPT、拥有强大平台/Windows 覆盖的开源第一方 agentCodex CLI
  • 想要自由更换模型或运行本地权重opencodeCline
  • 谨慎、git 原生、人在环内的编辑Aider
  • 押注庞大的 Google 生态上下文Gemini CLI(先确认当前访问方式)。

无论你选哪个,都把项目上下文放在 AGENTS.md 里,并在投入之前用你自己仓库里的一个真实任务来验证这个选择。

Check yourself

0/4
  1. 人们说的编程 agent “harness”是什么意思?
  2. 一篇博客报告某 agent 在“某编程基准上 83%”。这个数字真正衡量的是什么?
  3. 为什么要选择像 opencode 或 Aider 这样的模型无关 agent?
  4. AGENTS.md 是做什么用的?

记忆卡片

编程 agent CLI 词汇表
按 Enter 或空格键翻转卡片。使用左右方向键在卡片之间切换。已显示术语。
1 / 8

来源与延伸阅读