AI 博客

Claude Code、Codex CLI、Cursor Agent 与 Aider:编码智能体循环的四种架构

四款编码智能体,面对同一句提示、同一个仓库,走出了四条完全不同的路径。逐图解析真正区分它们的四个决策:沙箱、规划循环、工具清单与 shell、提交策略。

作者 智能体 AI 维基 33 分钟读完

"修好这个失败的测试。"截至 2026 年 5 月下旬,把同一句提示词交给指向同一个仓库的四个编码智能体,你会得到四套关于"接下来该做什么"的理论:Claude Code 拉起一份任务清单计划,Codex CLI 启动一次沙箱化运行,Cursor 起草一份跨文件 diff 并等你审阅,Aider 走 architect→editor→单次提交。它们的功能清单几乎没有分别,运行轨迹却像四个不同的物种——因为产品的本质是架构,而非工具目录。

速览

四个智能体,对同一个问题给出四种回答:信任边界划在哪里,又由谁来决定下一步?下表先列基本信息;紧接的矩阵则呈现各自在真正有分歧的几条轴上最发力的方向。

项目 发布时间 主打场景 部署形态
Claude Code 2025 带类型化工具目录的终端 harness 本机 CLI,OS 级沙箱
Codex CLI 2025 沙箱化、Shell 优先的编码智能体 CLI,默认开启工作区范围沙箱
Cursor Agent 2023(Agent 模式后续推出) IDE 中介、diff 可审阅的智能体 编辑器应用;智能体可在本地 / worktree / SSH / 云端运行
Aider 2023 终端里的 git 优先结对程序员 本地 git 仓库中的 CLI;无沙箱

快照:2026-05-28。行为为前一周观察所得,请在你自己的环境中验证。

Coding-agent feature matrix Heatmap comparing Claude Code, Codex CLI, Cursor Agent, and Aider across six features: Sandbox, Planning loop, MCP support, Multi-file edits, IDE-native, and Commit policy. Each cell is colored weak (light), medium (soft accent), or strong (accent) and labeled with a 1–2 word descriptor. Sandbox Planning loop MCP support Multi-file edits IDE-native Commit policy Claude Code Codex CLI Cursor Agent Aider OS sandbox Task list Yes Yes No On demand Workspace Queue Yes Yes No PR output IDE-mediated Plan+diff Partial Yes Yes Diff review None Architect/ editor No Chunked No Per edit Legend Weak / absent Medium / partial Strong / full
每个智能体最发力的方向。差异聚集在四条轴上,而非功能清单上。

Claude Code — 架构详解

Claude Code architecture A harness coordinating a typed tool catalog, deferred tools, skills, and MCP servers, running a persisted task-list loop, with an OS sandbox around shell and file actions. Deferred Tools via ToolSearch Typed Tool Catalog Read / Edit / Bash Glob / Grep Skills slash-command plugins Claude Code Harness LLM orchestration core MCP Servers external tools, via Model Context Protocol Persisted Task List plan → act → observe → update OS Sandbox bubblewrap / seatbelt Bash / file actions permission modes
Claude Code 把类型化工具目录与持久化任务清单,包裹进一个带权限模式的 OS 沙箱中。

harness 模型

Claude Code 是一个终端 harness,而非 IDE 插件或托管服务。模型驱动一份固定的、类型化的工具目录——ReadEditBashGlobGrep——其中每个工具都有声明式 schema,而不是一段自由文本的 Shell 字符串。这种类型化是刻意为之的:一个指明文件以及精确旧/新字符串的结构化 Edit,是可校验、可回退的,而经 Shell 管道执行的 sed -i 则不然。harness 仍然带有 Shell(即 Bash 工具),但 Shell 只是众多工具之一,而非整个界面——这正是它区别于 Codex CLI 的架构选择。

信任边界是操作系统。Claude Code 在 OS 沙箱内运行你的机器——Linux 上用 bubblewrap,macOS 上用 seatbelt——并由从谨慎到自主层层递进的权限模式来把关:default 在写入与命令前询问,acceptEdits 放行文件编辑但命令前仍会询问,plan 完全禁止任何变更,dontAsk 停止询问,而 bypassPermissions 则直接移除沙箱护栏。你按会话决定放出多少绳子,而非接受某种固定姿态。

延迟加载工具、Skills 与 MCP

目录刻意保持精简,但这并不是上限。在核心工具之外,Claude Code 还提供延迟加载工具——其完整 schema 通过一个搜索步骤按需获取,而非预先载入上下文——以及可复用的 Skills 与一个完整的 MCP 客户端来接入第三方服务器。这种结构是扎实的工具设计原则的直接应用:一个类型化、最小化的默认表面让模型的选择清晰可读,而延迟加载则避免庞大的目录淹没上下文窗口。类型化 schema 也让工具错误恢复变得可控——一次格式错误的调用会针对 schema 失败并给出具体消息,模型可据此行动,而不是返回一个不透明的 Shell 错误。

模型以 Anthropic 优先。你可以让 Claude Code 指向本地或第三方模型,但只能通过类似 LiteLLM 的代理——可行,但并非一等公民——如果模型可移植性是你团队的硬性要求,这一点很关键。

任务清单循环

这个循环的标志性特征,是一份显式的、持久化的任务清单。面对一项多步骤工作,Claude Code 会把步骤写成持久状态,在推进过程中标记为进行中和已完成,并把这份清单回读为"接下来该做什么"的真实来源。这就是经典的智能体循环,只是把计划外化了:与其把计划隐式地保留在一连串 ReAct 式推理回合中,harness 将其落实为一个能撑过长时间运行、且始终可审计的结构。回报体现在大型工作上——隐式计划在那里会漂移;代价则是给一行小修复套上一层仪式感。除非你要求,否则什么都不会提交到 git——任务清单是工作记录,而非版本历史。

Codex CLI — 架构详解

Codex CLI architecture A shell-first agent runs inside a workspace-scoped OS sandbox, gated by an approval policy with three modes, emitting a pull request as output. Sandboxed Workspace OS-level isolation, scoped to the repo directory Shell-First Tool runs commands in the workspace shell Task Queue ordered pending actions Approval Policy gates network / sandbox escape Auto default — ask outside workspace Read-only plan / propose, no mutation Full Access no prompts, incl. network actions gated Pull Request as output
Codex CLI 以 Shell 优先的方式在工作区沙箱内运行,由三种审批模式把关,面向产出一个 PR。

工作区沙箱与审批模式

Codex CLI 的信任边界是一个默认开启的、工作区范围的 OS 沙箱——智能体可以在工作目录内读取、编辑和运行,但跨出目录或访问网络则需要明确同意。三种审批模式设定姿态。Auto(默认)允许在工作区内读 / 编辑 / 运行,对任何越界或联网的操作则先询问。Read-only 是咨询式的:智能体规划并提出建议,但不做变更——这是你在让它动手之前用来盘查代码库的模式。Full Access 完全取消询问(包括网络),用于受信任的批量运行。逐级放权就是它的安全叙事——沙箱是下限,而上限由你刻意抬高。

Shell 优先的工具表面

Claude Code 以类型化工具为先,Codex CLI 则以 Shell 为先。智能体的主要表面是运行命令,文件编辑、构建和测试统统经由这同一个通道流转。好处是与现有开发者工具链零阻抗——凡是你能在提示符里敲出来的,智能体都能运行——约束则在于错误恢复依赖解析命令输出,而非读取一个类型化的失败。Codex CLI 同样会说 MCP,并有一条铁律:无论何种模式,破坏性工具始终需要审批;当服务器提供结构化工具 I/O 时它也能从中获益。本地模型在这里是一等选项:把 model_provider 设为 "oss",针对 Ollama 运行即可。

以 PR 为产出

Codex CLI 编辑工作目录,并面向产出一个 pull request。一次运行的自然终态,是一个可审阅的变更分支,而非一段聊天记录——智能体在沙箱里完成工作,交付物则是你要发布的那份 diff。这种取向与审批模式相配合:你让它在 Auto 下运行,然后像审阅同事的 PR 那样审阅最终结果,从而在工作离开沙箱的那一刻保留一道人工关卡。

Cursor Agent — 架构详解

Cursor Agent architecture Cursor mediates edits through the IDE: the agent plans, generates a multi-file diff, a human accepts per file, accepted diffs are applied to the working copy, and the loop repeats. Agents Window local · worktree · SSH · cloud IDE Host agent execution runtime Model / Provider Router GPT, Claude, Gemini… 1. Plan intent + file scope 2. Generate Diffs multi-file edit surface 3. Human Review accept / reject per file 4. Apply writes accepted diffs accept Working Copy updated in IDE next round
Cursor 让每一次写入都经由 IDE 中介:智能体把 diff 暂存起来,由你在落盘前逐文件接受。

IDE 中介的文件系统与逐文件接受

Cursor 的信任边界是编辑器本身。在 Agent 模式下,模型不会直接写盘;它的编辑暂存为可审阅的 diff,由你逐个文件接受后才提交到文件系统。IDE 就是沙箱——不像 Codex CLI 那样是 OS 级别的牢笼,而是一道人在回路中的关卡,把"智能体改了十四个文件"从既成事实变成一个可审阅的事件。对于想把手始终放在方向盘上的开发者,这个 diff 队列就是全部意义所在。

先规划后 diff 的循环

Agent 模式会行动——它规划一项变更、跨多个文件编辑、运行命令——这正是它区别于只会作答的纯聊天之处。这个循环是教科书式的规划-执行形态:智能体形成计划,将其具象化为一份具体的跨文件 diff,再把这份 diff 交回给人来接受、然后才落地。计划是实打实的工作,但 diff 才是产物,而接受这一步正是你的判断进入循环的地方。Cursor 支持 MCP,大致向单个智能体暴露前 40 个工具,并通过 OpenAI 兼容的 base URL(例如 Ollama)运行本地模型。

跨文件编辑与 Agents Window

Cursor 3(2026 年 4 月)把编辑器重新定位为一个"智能体执行运行时"。Agents Window 跨不同目标并行运行多个智能体——你的本地检出、独立的 git worktree、一台 SSH 主机,或者云端——于是一个智能体在 worktree 里做重构,另一个在远程机器上做调查,各自产出自己那条可审阅的 diff 流。IDE 不再是某个人敲代码的地方,而是成为多个智能体并发工作、并通过同一道逐文件接受关卡回报的控制台。

Aider — 架构详解

Aider architecture Aider pairs a planning model with an editing model, applies SEARCH/REPLACE edit blocks parsed from the editor's output, and auto-commits each edit to git; the loop repeats per round. Repo Map symbol + file index → context REPL interactive chat loop Architect Model reasoning model — PLANS Editor Model code model — EMITS DIFFS Edit-Blocks Parser SEARCH / REPLACE Git Commit auto per edit next round No Sandbox git history is the safety net
Aider 以 git 作为协议:architect 规划,editor 发出编辑块,每次成功都自动提交。

以 git 为协议(每次编辑自动提交)

Aider 没有沙箱。它直接在你的本地 git 仓库里运行,git 历史就是那张安全网——每次成功的编辑都会作为一个粒度细小的提交、带着自动生成的消息自动提交。这里没有 diff 队列,也没有权限询问;如果某次改动有误,你伸手去用 git revertgit reset,而非一道接受/拒绝关卡。它的信任模型是"每一步之后仓库都打了检查点,所以撤销永远只差一条 git 命令"。这让 Aider 迭代起来格外快,也格外依赖于你在一个干净的 git 树里工作。

architect/editor 模型对

Aider 的循环把推理与编辑拆分到两个模型上。一个 architect 模型对变更进行推理并描述该做什么;一个更便宜、更快的 editor 模型把这份描述变成具体的 diff。这种两遍式设计可量化地减少了跨文件编辑的错误——强模型不必同时背负发出字节精确补丁语法的负担,廉价模型也不必去推理架构。这两个角色你都可以跑在任意 LLM 上,包括通过 Ollama 或 LM Studio 运行的完全本地模型——这让 Aider 成为本阵容中模型可移植性最强的智能体。

编辑块与 repo-map

Aider 的表面不是一份工具目录。它会构建一份 repo-map——对仓库结构与关键符号的紧凑摘要——在不加载每个文件的情况下给模型提供方向感,而 editor 模型则以 SEARCH/REPLACE 编辑块的格式发出变更,由 Aider 直接落盘应用。这正是 MCP 对 Aider 而言并非原生的原因:它的世界模型是 repo-map 加 diff,而不是一个工具目录宿主。你可以在它周围接上外部能力,但 Aider 本身并不像另外三者那样是一个 MCP 客户端——这是一项诚实的架构差异,而非缺失的功能。

横向对比

沙箱与文件系统信任

Sandbox & filesystem trust boundary Four-column comparison of sandbox and filesystem trust boundaries for Claude Code, Codex CLI, Cursor Agent, and Aider. Codex CLI is highlighted as the most locked-down option. Sandbox & filesystem trust boundary Claude Code Codex CLI Cursor Agent Aider OS sandbox (bubblewrap/seatbelt) + permission modes Workspace sandbox, default-on, approval-gated IDE-mediated; edits staged as reviewable diffs No sandbox — local git repo, history is the safety net
划定信任边界的四个位置,从内核沙箱到 git 撤销。

这四者落在信任谱系上四个截然不同的点上。Claude Code 与 Codex CLI 都把边界划在操作系统——Claude Code 用一个沙箱外加你按会话调节的分层权限模式,Codex CLI 用一个默认开启、并通过三种审批模式逐级放权的工作区范围沙箱。Cursor 把边界上移到应用层:IDE 把每一次写入都中介为你逐文件接受的 diff,于是关卡是人工审阅而非内核牢笼。Aider 则彻底移除边界,代之以 git——没有沙箱、没有询问,只有每一步之后的一次自动提交,撤销永远只差一次 revert。实用结论是:对不受信任的运行,Codex CLI 默认最安全;对"我想看到每一处改动",Cursor 最安全;Claude Code 最可调;而 Aider 则在你信任的仓库里,用隔离换取纯粹的速度。

规划循环形态

Planning loop shape Four-column comparison of planning loop shapes for Claude Code, Codex CLI, Cursor Agent, and Aider. Aider's two-pass architect/editor model is highlighted as the most distinctive approach. Planning loop shape Claude Code Codex CLI Cursor Agent Aider Explicit persisted task list (Tasks) Task queue under approval policy Interactive plan → diff → human review Architect/editor two-pass: plan model + edit model
同一项工作,四种循环形态——外化的清单、沙箱化运行、审阅关卡、模型对。

每个智能体外化了循环中不同的一部分。Claude Code 外化的是计划:一份它回读为真实来源的持久化任务清单,让长任务保持连贯,代价是给短任务套上仪式感。Codex CLI 外化的是运行:它在沙箱内自主工作、面向一个 PR,于是循环是"先执行、再审阅分支",而非"先规划、再逐步审批"。Cursor 外化的是审阅:先规划后 diff 的形态,让人对一份具体跨文件 diff 的接受成为循环里的一等步骤。Aider 外化的是角色:architect/editor 的拆分把推理与补丁发出放进各自独立的模型,这种两遍式减少了跨文件错误。这些都不仅仅是带点表面差异的 ReAct 变体——每一个选择把状态显式化的位置,正是它预期那些难题会出现的位置。

工具目录对阵 Shell

Tool catalog vs the shell Four-column comparison of tool catalog breadth versus shell-first design for Claude Code, Codex CLI, Cursor Agent, and Aider. Claude Code is highlighted as having the richest tool surface. Tool catalog vs the shell Claude Code Codex CLI Cursor Agent Aider Typed tool catalog + MCP + deferred tools Shell-first inside the sandbox (+MCP) IDE-wrapped tools + MCP (~40 exposed) Narrow tools + git; no native MCP
类型化目录、Shell、IDE 封装,或 repo-map 加 diff——给模型装上双手的四种方式。

工具表面,正是"能力"与"架构"分道扬镳最清晰的地方。Claude Code 以一份类型化目录为先——结构化的 Read/Edit/Grep 外加延迟加载工具、Skills 与完整 MCP——于是模型的动作经过 schema 校验。Codex CLI 以 Shell 为先:一切都走同一条命令通道,外加 MCP,以类型化安全换取工具链的触达广度。Cursor 把工具封装进 IDE,并向每个智能体暴露大致前 40 个工具,经由编辑器中介。Aider 干脆不要工具目录——它的表面是 repo-map 加 SEARCH/REPLACE 编辑块,MCP 并非原生,因为它的世界模型是 diff、而非一个工具宿主。四者都能胜任地编辑一个仓库,而这恰恰是要点所在:目录不等于能力。对于围绕共享 MCP 服务器可互操作智能体做标准化的团队,四者中有三个是 MCP 宿主,Aider 是那个例外;而每一个对由此产生的上下文预算的处理方式也各不相同——延迟加载工具、Shell 输出、40 个工具上限,或一份紧凑的 repo-map。

提交与产出策略

智能体 落地的是什么 何时落地
Claude Code 仅在请求时提交 / 开 PR 当你要求时——绝不自动
Codex CLI 工作目录编辑,面向一个 PR 一次沙箱化运行之后,供审阅
Cursor Agent 对工作树的逐文件 diff 由你逐个文件接受时
Aider 每次成功编辑一个 git 提交 自动、即时

该选哪一个

使用场景 选 Claude Code,当…… 选 Codex CLI,当…… 选 Cursor,当…… 选 Aider,当……
从零起步的功能,步骤众多 你想要一份持久化的任务清单计划,让漫长的多步骤构建保持连贯且可审计。 你想让它在沙箱里自主运行,再交给你一个可审阅的 PR。 你想看着计划具象成 diff,并逐个文件接受改动。 你想要快速迭代、每一步自动提交,撤销只差一条 git 命令。
大型 monorepo 你想用类型化的 Read/Grep/Glob 外加延迟加载工具,在不淹没上下文的前提下穿行广阔代码。 你想要在沙箱内、针对现有工具链做 Shell 原生的搜索与构建。 你想要 IDE 索引,并通过 Agents Window 跨 worktree 运行并行智能体。 你接受 repo-map 提供方向感,但超大代码树对它的压力比对其他几者更大。
完全本地 / 离线 你能搭起一个类似 LiteLLM 的代理——本地模型可行,但并非一等公民。 你想要本地模型作为一等公民,通过 model_provider="oss" 与 Ollama 实现。 你通过 OpenAI 兼容的 base URL(例如 Ollama)让它指向一个本地模型。 你想要模型可移植性最强的选项——任意 LLM,包括经由 Ollama 或 LM Studio 的本地模型。
严格的审阅纪律 / 受监管 你想要分层权限模式,以及一个在你盘查期间禁止任何变更的 plan 模式。 你想要一个默认开启的沙箱,破坏性与联网操作始终会询问。 你想要每一次写入在落盘前都经过一道人工逐文件接受关卡。 不太理想——自动提交会在没有审阅关卡的情况下落地改动,尽管 git 历史会逐一记录。
快速的单文件修复 可用,但对一处微小改动来说,任务清单的仪式感是额外开销。 可用,不过为此拉起一次沙箱化运行,比这件事本身要重。 很合适——编辑、看那一份 diff、接受,搞定。 很合适——描述修复、得到一个提交、继续前进。

常见问题

Claude Code 和 Codex CLI 之间真正的区别是什么?

两者都是在 OS 沙箱下编辑你仓库的终端编码智能体,但它们在工具表面上下了相反的赌注:Claude Code 以一份精简的类型化工具目录(Read/Edit/Bash/Glob/Grep)外加延迟加载工具、Skills 与 MCP 为先,并把计划外化为一份持久化任务清单;而 Codex CLI 以 Shell 为先,通过三种审批模式逐级放权,并面向产出一个 PR。Claude Code 以 Anthropic 模型优先;Codex CLI 则通过 Ollama 把本地模型视为一等公民。

Cursor 的 Agent 模式会取代它的聊天吗?

不会——它们做的是不同的事。聊天回答问题;Agent 模式则会行动,规划一项变更、跨多个文件编辑、运行命令,再把结果暂存为你逐文件接受的 diff。你用聊天来理解代码,用 Agent 模式来改动代码。

Aider 能用 MCP 服务器吗?

原生不支持。Aider 的世界模型是 repo-map 加 SEARCH/REPLACE 编辑块,而非一个工具目录宿主,因此它不像 Claude Code、Codex CLI 和 Cursor 那样是一个 MCP 客户端。你可以在它周围接上外部能力,但 MCP 并不是一项内置功能。

哪个编码智能体最适合大型 monorepo?

这取决于你想怎样穿行广阔代码:Claude Code 的类型化 Grep/Glob 外加延迟加载工具,以及 Cursor 带并行 worktree 智能体的 IDE 索引,都能很好地应对大型代码树,而 Codex CLI 则依靠沙箱内的 Shell 原生搜索。Aider 的 repo-map 提供方向感,但在超大型仓库下承压最重,因此在极端规模下契合度最弱。

这些智能体会把我的代码发到云端吗?

默认会——四者都会调用一个托管模型 API,所以提示词以及其中携带的代码上下文都会离开你的机器,除非你配置了本地模型。沙箱与 IDE 边界控制的是智能体能对你文件系统做什么,而非模型本身是否在云端运行。完全本地运行(见下一问)才是把代码留在设备上的办法。

这些工具能针对本地模型运行吗?

能,只是所需的工夫各异。Codex CLI(model_provider="oss" + Ollama)、Aider(任意 LLM,包括经由 Ollama 或 LM Studio 的本地模型)以及 Cursor(OpenAI 兼容的 base URL,例如 Ollama)都直接支持本地模型。Claude Code 也可以,但只能通过类似 LiteLLM 的代理——可行,而非一等公民。

延伸阅读

本站相关内容:

  • 什么是智能体?——感知-决策-行动的定义,这四款工具都是它的实例,也是把智能体与花哨的自动补全区分开来的基准。
  • 工具调用详解——模型如何把意图转化为一次结构化的工具调用,这正是 Claude Code 类型化目录与 Codex CLI Shell 通道之下共同的机制。
  • 工具设计反模式——一份类型化、最小化的目录所规避、而一个无所不包的 Shell 表面所招致的那些失败模式。

项目来源:

  • Claude Code 文档——工具、权限模式、Skills 与 MCP 配置。
  • OpenAI Codex——Codex CLI 审批模式、沙箱行为与本地模型配置。
  • Cursor——Agent 模式、Agents Window、MCP 支持与模型配置。
  • Aider——architect/editor 模式、编辑块、repo-map 与 git 工作流(源码见 github.com/Aider-AI/aider)。