AI 编程助手能自己跑命令了,它到底能碰到你什么
本文要点
- 同一家工具内部,「运行模式」之间的自主度差距,比不同厂商之间的差距更大。Cursor 在本地默认「终端命令需要你批准」,而它自己的 Cloud Agent 官方声明「the agent never asks you to approve an action」——两个极端在同一条产品线上
- Cursor 官方把运行模式定义为「best-effort guardrails rather than a hard security boundary」,并在另一处直接写了「Auto-review is not a security boundary」。自动审查是兜底,不是边界
- 云端 Agent 的默认值普遍比本地激进。Cursor Cloud Agent 官方声明「auto-runs all terminal commands」且「has internet access by default」,并自己点出这会带来数据外泄风险
- Claude Code 的沙盒由操作系统强制执行(macOS Seatbelt、Linux bubblewrap),但官方明确「not a complete isolation boundary」;默认读写规则不对称——写入被锁在工作目录,读取默认可覆盖整台计算机
- Devin 的边界不在「能不能跑命令」,而在部署与隔离:VPC 部署与 Teamspace 隔离都只列在 Enterprise 档;并发会话上限是另一条独立的资源边界
「AI 编程助手现在能自己跑命令了」这句话,在三家官方文档里指的不是同一件事。有的指它能读你的文件,有的指它能在你点过同意之后执行一条命令,有的指它可以在你不在场的时候把测试跑完、把分支推上去。把这几件事混在一起谈「自主度」,结论一定是错的。
更麻烦的是,真正决定「它能碰到你什么」的东西,往往不在功能介绍页,而藏在两个没人主动去点的角落:运行模式(Cursor 叫 Run Modes,Claude Code 叫 Permission modes)和沙箱配置。前者决定哪些动作需要你点同意,后者决定在没有你同意的情况下,一个命令最远能走到哪里。这两件事在官方文档里是分开写的,而且默认值经常和直觉相反。
这篇只做一件事:把 Cursor、Claude Code、Devin 三家官方文档里关于「可自动执行的动作」「是否需要逐步确认」「沙箱隔离范围」的声明,按同一套标准排到一条光谱上。本文没有做任何本地实测,所有结论都来自官方页面原文;官方页面没有写的地方,本文直接写「官方未披露」,不填推测值。数据于 2026 年 9 月 24 日重新核对。
本文方法:官方公开数据交叉核对,未做本地实测。所有数字均标注来源,核对日期见文末。
一、能力侧:官方声明里,哪些动作可以不经你确认就执行
先把三家官方文档里「明确写了可以自动执行」的动作列出来。这张表里没有一行是本文的推测,全部是官方页面的原文表述;「是否需要逐步确认」这一列也是官方自己写的,不是本文推断的。
| 工具与档位 | 官方声明可自动执行的动作 | 是否需要逐步确认 |
|---|---|---|
| Cursor 本地 · 默认 | 读取文件、搜索代码;修改工作区文件(配置文件除外) | 终端命令需要批准;文件编辑不需要 |
| Cursor 本地 · Auto-review | 允许清单内的调用立即执行;其余 shell 命令尽量放进沙箱执行 | 沙箱内不确认;无法沙箱化的交分类器审查 |
| Cursor 本地 · Run Everything | 每一次工具调用都自动执行 | 不需要 |
| Cursor Cloud Agent | 所有终端命令自动执行,以便反复迭代测试 | 不需要(Run Modes 不适用) |
| Claude Code · Manual | 只读命令,官方举例 ls、cat、git status |
改文件、跑可写命令前都要问 |
| Claude Code · acceptEdits | 文件编辑,以及 mkdir、touch、rm、mv、cp、sed 这一组文件系统命令 |
其他 Bash 命令仍要问 |
| Claude Code · auto | 分类器判定安全的动作;只读操作与工作目录内的文件编辑直接放行 | 由独立分类器代你审查,不逐步问你 |
| Claude Code · bypassPermissions | 一切工具调用,包括对受保护路径的写入 | 不需要 |
| Devin 云端会话 | 官方描述为能「write, run and test code」;Workspace 提供 Shell、IDE、Browser 三个面板 | 本文未在官方页面核到逐步确认机制的说明 |
这张表里有四处值得单独拎出来。
第一,Cursor 的默认档已经自动批准了文件写入。官方原文是「Agents can modify workspace files without approval, except for configuration files. Changes save immediately to disk.」需要你同意的只有配置文件。官方在同一页还配了一句警告:如果你开了自动重载,「agent changes might execute before you can review them」——改动可能在你审阅之前就已经被执行了。
第二,终端命令是另一回事。官方原文:「By default, terminal commands need your approval.」MCP 是最保守的一环:「All MCP connections need your approval. After you approve an MCP connection, each tool call still needs individual approval before running.」网络请求也被收紧了——默认情况下工具只向 GitHub、直链抓取和搜索服务发请求,官方原文是「Agents cannot make arbitrary network requests with default settings.」
第三,Claude Code 的默认档正好相反。Manual 模式下「Claude Code starts with read-only permissions」,改文件、跑能改动系统的命令之前都要问你。但这里有一个几乎没人注意的默认值差异:官方在权限模式文档里写明,「On Pro, Max, and Team plans, the built-in starting permission mode is auto mode.」,而 Enterprise 计划或使用 Claude Console API key 的会话,内置默认档是 Manual。同一个工具,个人订阅用户默认进入自动模式,企业用户默认进入手动模式。官方没有解释这个差异的原因,只说明内置默认档取决于运行方式、套餐和功能开关的获取情况。
第四,Devin 这一类「云端自主代理」在官方文档里的表述方式完全不同。官方对能力的描述很直接:「Devin is an autonomous AI software engineer that can write, run and test code.」Workspace 的 Shell 面板被描述为「where you can watch commands being executed and view output logs」——是「观看」,不是「逐条批准」。但本文在 Devin 的官方文档与定价页中未核到关于逐步确认机制、沙箱文件系统边界的声明,因此这一行只能留白。这不是 Devin 做得更差,而是「官方没写」和「官方写了没有」是两件事——这一点对做安全评估的人来说,本身就是需要记录的信息。
二、边界侧:四个真正把 agent 拦住的地方
能力侧讲的是「它能做什么」,边界侧讲的是「什么情况下它做不成」。这一侧的信息更分散,官方把它们放在沙箱配置、网络策略和企业管理控制三处。下表按同一个维度横向对齐三家。
| 边界维度 | Cursor | Claude Code | Devin |
|---|---|---|---|
| 可写范围 | 工作区内可读写;.git/config、.git/hooks、.vscode、.cursorignore 等受保护路径除外 |
默认只写工作目录、--add-dir 添加的目录、会话临时目录;~/.bashrc 与 /bin/ 下的系统二进制不可改 |
官方未披露 |
| 可读范围 | 读取与搜索默认不询问;.cursorignore 可对 agent 隐藏指定文件 |
默认可读整台计算机。官方原文提醒,这仍允许读取 ~/.aws/credentials 与 ~/.ssh/ |
官方未披露 |
| 网络出口 | 沙盒内默认阻断,按网络模式与 sandbox.json 打开;默认档为「sandbox.json + Cursor 内置默认域名」 |
沙盒默认不预允许任何域名;未沙盒化时 curl、wget 不自动批准 |
官方未披露 |
| 云端环境隔离 | Cloud Agent 运行在 AWS 上的隔离 VM 内;默认有互联网访问,可配三档出口策略 | 云会话运行在 Anthropic 管理的隔离 VM;网络默认受限;git push 仅限当前工作分支 | Enterprise 可部署在你自己的 VPC 里 |
| 企业级锁定 | 管理员可覆盖团队可用的运行模式、配置沙盒网络规则;团队设置优先于个人与项目配置 | 管理员可用托管设置关闭 auto 模式;ConfigChange 钩子可审计或阻止会话中改配置 |
集中式企业管理控制、Teamspace 隔离(Enterprise) |
把这张表竖着读一遍,会看到三条官方自己写下的限制,比任何第三方评测都更有说服力。
边界一:沙盒不是硬边界,官方自己承认。Cursor 在 Run Modes 文档里把三种模式定义完之后,专门用一个小标题写了「Auto-review is not a security boundary」,正文是:「The classifier can make mistakes. It can allow a call you would have blocked, or block a call you would have allowed.」在 Agent Security 页,官方对整组运行模式的定性是「best-effort guardrails rather than a hard security boundary」。Claude Code 那一侧的措辞不同但方向一致:沙盒文档里写着「Sandboxing reduces risk but is not a complete isolation boundary.」
边界二:读写权限是不对称的。这是整张表里最容易被忽略的一格。Claude Code 的沙盒默认只允许写工作目录,但默认可读整台计算机,官方甚至主动提醒这会允许读取 ~/.aws/credentials 和 ~/.ssh/,并给出对策:用 sandbox.credentials 阻止读取这些文件,或把它们加进 denyRead。Cursor 的做法不同——它默认允许读取,但用 .cursorignore 让 agent 看不见指定文件,同时把 .git/config、.git/hooks 这类路径直接列进受保护清单。「防写」和「防读」是两套完全不同的配置项,只做前者等于没设边界。
边界三:云端与本地走的是两套默认值。Cursor 的本地前台 agent「requires user approval for every command」,而它的 Cloud Agent「auto-runs all terminal commands」。官方在同一页把风险写得很清楚:「Auto-running introduces data exfiltration risk: attackers could execute prompt injection attacks, tricking the agent to upload code to malicious websites.」并且 Cloud Agent 的网络默认是开放的——「The agent has internet access by default.」相比之下,Claude Code 的云会话是反过来的:「Network access is limited by default and can be configured to be disabled or allow only specific domains.」同样是云端跑 agent,一家的默认是「能上外网」,另一家的默认是「不能」。这个差异在采购对比表里通常不会出现。
还有一条不属于沙盒、但同样构成边界的限制:并发会话上限。Devin 官方对比表里,这一行的 Free 列是不可用标记,Pro 与 Max 各为「Up to 10」,Teams 与 Enterprise 为「Unlimited」。官方没有解释为什么单席位上限恰好是 10,但这意味着在 Pro 档上,你一次最多让 10 个会话同时跑。速率与并发上限这类限制平时被当成性能参数,实际上它决定了「一个 agent 出问题时能波及多大范围」。
三、把九个档位排到同一条光谱上
上面两张表是分工具看的,接下来换成按自主度分级看。分级标准是本文自己定的,规则只有一条:不看工具宣称有多强,只看官方文档里「哪些动作需要你先点同意」。五级的定义如下,图中每一行都对应官方文档里的一段原文。
- 1 级:只做代码补全,不读仓库内容
- 2 级:可读文件与检索,写文件、执行命令都需要逐步批准
- 3 级:自动修改工作区文件,命令仍需批准
- 4 级:命令可在受限沙箱内自动执行,高风险动作交分类器或直接拦截
- 5 级:命令与提交全自动执行,不逐步向你确认
这张图最值得看的是第一行和第四行的距离。同一个 Cursor,本地默认档和云端 Agent 之间跨了两级——从「终端命令要你批准」直接跳到「从不请求批准」。而如果按厂商来比,会得出「Cursor 比较保守、Devin 比较激进」这种粗糙结论;按档位来比才会发现,决定风险的不是厂商,是你打开的是哪一个模式。
第二个值得注意的地方是「4 级」这个位置挤了三行。Cursor 的自动审查、Cursor 的全自动、Claude Code 的自动模式都落在这一级,但它们到达这一级的路径完全不同:Cursor 的自动审查靠「先沙箱、沙箱跑不了再交分类器」,Claude Code 的自动模式靠「分类器先审、读操作与工作目录内编辑直接放行」,而 Cursor 的全自动是既没有分类器、也不强制沙箱。同一条线上,风险差别很大——这也是为什么只看「要不要确认」这一个维度不够,必须叠上沙箱边界一起看。
第三个是 5 级那三行。Cursor 云端 Agent 和 Claude Code 免确认模式的共同点是「不逐步确认」,但官方对它们的适用范围给出了完全不同的建议:Claude Code 官方对 bypassPermissions 的说明是「Only use this mode in isolated environments like containers, VMs, or dev containers without internet access」,而 Cursor 的 Cloud Agent 官方声明它默认就有互联网访问。一个是「请在无网络的隔离环境里用」,一个是「默认能上外网」——同样是 5 级,官方给的使用条件相反。
四、三个容易踩的坑
坑一:把「自动审查」当成安全审核
Cursor 官方在 Run Modes 文档里给 Auto-review 的评价是「The safest useful setup for most people」,但紧接着又用一个小标题写明「Auto-review is not a security boundary」,正文是「The classifier can make mistakes. It can allow a call you would have blocked, or block a call you would have allowed.」这句话的意思是:分类器会双向出错,它既可能放过你本会拦下的调用,也可能拦下你本会放行的调用。
这个分类器本身还依赖模型可用性。官方写明它跑在一个 Cursor 托管的小模型上,「Today that is Claude 4.5 Haiku or GPT-5.4 Mini」,并且受 Enterprise 的模型访问控制约束——如果企业把这些模型全部禁用,Auto-review 会被直接关闭,成员回退到 Allowlist 模式。也就是说,安全策略可能因为一次模型白名单调整而静默降级。
Claude Code 那一侧的对应机制是自动模式的暂停阈值:分类器连续拦下 3 次或累计拦下 20 次之后,自动模式会暂停并恢复询问。官方明确写了「These thresholds are not configurable.」
坑二:本地默认是保守的,云端默认是激进的
很多人对「AI 编程工具能自己跑命令」的印象来自本地编辑器,那里确实是「终端命令需要你批准」。但一旦切到云端 Agent,默认值会翻转。Cursor 官方在 Cloud Agent 网络安全文档里写明:「The agent auto-runs all terminal commands, letting it iterate on tests. This differs from the foreground agent, which requires user approval for every command.」
更需要注意的是网络默认值:「The agent has internet access by default.」官方提供三档出口策略——Allow all、Default + allowlist、Allowlist only——但默认不在最严的那一档。而且官方特别提醒,即使在 Allowlist only 模式下,仍有一小组域名保持可达,因为它们关系到 Cloud Agent 能否正常工作,其中包括 Cursor 自己的服务和代码托管平台。
Enterprise 管理员可以用 Lock Network Access Policy 把网络访问设置锁死,锁定后团队成员无法从自己的面板覆盖。这一条只在 Enterprise 档有效——也就是说,「云端 agent 默认能上外网」这件事,只有买到最高档才有统一的关闭手段。
坑三:沙盒只隔离命令行,不隔离其他一切
Claude Code 的沙盒文档有一段容易被跳过的说明:「The sandbox isolates Bash subprocesses. Other tools operate under different boundaries:」后面列的三项分别是——内置的 Read、Edit、Write 工具「use the permission system directly rather than running through the sandbox」;操作桌面应用时「runs on your actual desktop rather than in an isolated environment」;沙盒内的命令「inherit the parent process environment by default, including any credentials set there」。
换句话说,开了沙盒并不等于所有动作都在沙盒里。文件工具走的是另一套权限系统,桌面操作完全在真实环境里,而环境变量里的凭据会被沙盒内的命令直接继承。Cursor 也有类似的边界:官方写明「Some commands need full system access and bypass the sandbox」,并说明它会提示某个命令在沙盒外运行并请求你的批准。
还有一个失效路径值得记一笔:Claude Code 官方写明,如果沙盒因为依赖缺失或平台不支持而无法启动,「Claude Code shows a warning and runs commands without sandboxing」——默认是降级运行而不是拒绝运行。要改成硬失败,需要把 sandbox.failIfUnavailable 设为 true。另外原生 Windows 不支持该沙盒,需要跑在 WSL2 里。
五、按场景怎么选
- 只在本地改代码、想把风险压到最低:Cursor 用 Allowlist 模式配一份尽量小的清单;Claude Code 留在 Manual 模式。注意 Cursor 默认已经自动批准工作区内的文件修改,只卡命令——如果你连文件改动也想逐条看,需要显式调整。
- 想减少确认次数、但不放弃兜底:Cursor 官方推荐的档位是 Auto-review(原文称其为「The safest useful setup for most people」);Claude Code 对应的是 auto 模式,Pro / Max / Team 套餐在终端里默认就是这个档。
- 跑长任务、准备无人值守:切云端之前先确认出口策略。Cursor Cloud Agent 默认能访问互联网,三档策略里默认那一档不是最严的;Claude Code 的云会话网络默认受限,可以配成只允许指定域名。
- 要让整个团队用同一套基线:两家都支持管理员压过个人配置。Cursor 在仪表盘里配置团队级运行模式和沙盒网络规则,团队设置优先于个人与项目文件;Claude Code 用托管设置,把
permissions.disableAutoMode设为disable可以彻底移除自动模式,连--permission-mode auto启动的会话也会退回 Manual。 - 代码不能出内网:Devin 的 VPC 部署与 Teamspace 隔离都只在 Enterprise 档;Cursor 的做法是用 Tailscale 或 Cloudflare Tunnel 让 Cloud Agent 通过认证通道访问私有服务,而不需要把服务暴露到公网;Claude Code 的自托管环境则由你自己的部署负责隔离、网络出口与 git 凭据。这三条路径的信任模型差别很大,可以对照数据政策对比一起看。
- 需要审计记录:Claude Code 官方写明云会话里的所有操作都会被记录,用于合规与审计;Cursor 侧对应的是 Enterprise 的合规日志与审计日志能力,以及
ConfigChange这类可在会话中拦截配置变更的钩子。 - 关注并发规模:Devin Pro 与 Max 的并发会话上限是 10 个,Teams 与 Enterprise 不限。这一条直接决定了同时能跑多少任务,也决定了单个会话出问题时的影响半径。
回到方法上。这篇和本站前几篇做的是同一件事——把席位计费拉平、把上下文窗口拉平、把数据政策拉平。这一篇拉平的是「自主度」:不按厂商比,按档位比;不只看「要不要点同意」,还要看沙盒把命令关在了多大的笼子里。官方文档里最有价值的三句话都不是宣传语,而是三段免责声明——「best-effort guardrails rather than a hard security boundary」「Auto-review is not a security boundary」「not a complete isolation boundary」。厂商主动写下来的边界,比任何对比表都更值得先读一遍。
数据来源与核实说明
文中沙箱边界与权限声明于 2026 年 9 月 24 日复核更新,来源为各厂商官方文档。本文未做本地实测,所有数字来自公开官方来源。需要说明四处口径:
- 「自主度 1 到 5 级」是本文自定的分级,不是官方标准。分级依据只有一条:官方文档里「哪些动作需要用户先确认」。分级用于横向对齐,不代表厂商对安全性的自我评价。
- Devin 的沙箱与逐步确认机制,本文未在官方页面核到对应声明。Devin 官方文档与定价页描述的是能力范围(可写、可运行、可测试,Workspace 提供 Shell 与 Browser),未披露命令批准机制与沙箱文件系统边界,本文不做推测。
- GitHub Copilot 未纳入本篇对比。本文核到的 Copilot 官方页面为计费与席位文档,不涉及代理执行的权限模型,因此不提供 Copilot 的自主度分级。
- 沙盒能力与默认值随版本变化。Cursor 的 Ask Every Time 模式已在 v3.5 弃用,Auto-review 自 v3.6 起成为推荐默认;Claude Code 的沙盒需通过
/sandbox或sandbox.enabled启用,官方未声明其默认开启。请以官网文档为准。
发现数据错误欢迎联系我们。
- Cursor 代理安全(默认批准规则、网络请求范围、MCP 审批、工作区信任):cursor.com/docs/agent/security
- Cursor 运行模式(三种模式、沙盒范围、受保护路径、平台实现、团队控制):cursor.com/docs/agent/security/run-modes
- Cursor 云端 Agent 网络安全(自动执行、默认互联网访问、三档出口策略、策略锁定):cursor.com/docs/cloud-agent/security-network
- Cursor 安全总览(隐私模式、认证与合规):cursor.com/security
- Cursor 团队定价(团队级隐私模式强制、集中管理):cursor.com/docs/account/teams/pricing
- Claude Code 安全(权限架构、云会话隔离、自托管环境、远程控制):code.claude.com — Security
- Claude Code 沙盒(操作系统级隔离、默认读写范围、已知局限):code.claude.com — Sandboxing
- Claude Code 权限模式(六种模式、默认档位随套餐变化、分类器决策顺序):code.claude.com — Permission modes
- Claude Code 成本(托管设置 autoContinueAtUsageLimit):code.claude.com — Costs
- Devin 定价页(并发会话上限、Enterprise 的 VPC 部署与 Teamspace 隔离):devin.ai/pricing
- Devin 官方文档(自主执行范围、Workspace 的 Shell 与 Browser):docs.devin.ai — Introducing Devin