点四十次"同意"治不好——Cursor 用 Auto-review 把 agent 自主性从开关拧成旋钮,顺便说穿了一个安全行业不敢说的真相
点四十次"同意"治不好——Cursor 用 Auto-review 把 agent 自主性从开关拧成旋钮,顺便说穿了一个安全行业不敢说的真相

本期关键词:旋钮非开关(dial not a switch,agent 自主性是按风险拧的连续刻度,不是一刀切的全开或全关)/ 提示疲劳(prompt fatigue,反复弹窗要人批准,点多了人就不看了,于是审批变成一阶安全问题)
每个真用过 AI 编程 agent 的人,手上都有一种慢性病。一个会话里,agent 每要跑一条命令、读一个文件、发一个请求,就弹一个框问你"Run / 同意"。第一次你认真看,第十次扫一眼,第四十次手指已经形成肌肉记忆——啪、啪、啪,眼睛根本没在读。
Cursor 把这个动作起了个名字,叫它"病",还顺手开了药方。2026 年 5 月 29 日,Cursor 在 3.6 版本里上线 Auto-review,官方中文标题是《用 Auto-review 管控智能体自主性》。表面上这是一个体验功能:少弹几个框。但 Cursor 这篇博客真正干的事,比"少弹框"狠得多——它把一句几乎所有做"人在环里"AI 的人都心知肚明、却没人敢摆到台面上的话,写进了产品文档:反复让人点"同意",本身就是一个安全漏洞。
这句话一旦说出口,整个"加更多人工审批 = 更安全"的直觉就塌了一半。这篇就只拆 Cursor 这一个产品,把这道闸门怎么转、那句判断为什么锋利、以及它最该被警惕的地方,一层层讲到底。
一、y-spamming:点四十次"同意"的病,和"旋钮不是开关"的药
先看 Cursor 自己怎么描述病灶。在它的开发者社区里,这个反复点同意的动作有个半官方的黑话,叫 y-spamming——因为很多终端确认框里,按 y 就是 yes。一个 agent 越能干、能调的工具越多,y-spamming 就越严重:它每越权一步都要问,而它现在一个任务里能迈出几百步。
旧的解法是一个二选一的开关。要么开"自动允许全部"——爽,但等于把命门交出去,agent 一条 rm -rf 或者一个把密钥 POST 到外网的请求也照跑不误;要么老老实实一条条审——安全,但你就成了那个点到手麻的人,而且点到第四十次,你已经不在审了,你在盖章。两头都不对。
Cursor 给的核心比喻,值得逐字抄下来,因为这一篇后面所有东西都从这句话长出来:
"makes decisions around agent autonomy behave more like a dial than a switch. The core idea is that an agent should be able to move freely when the stakes are low, but slow down when its next action crosses a meaningful boundary." (让关于智能体自主性的决策,表现得更像一个旋钮,而不是一个开关。核心想法是:风险低的时候 agent 可以自由行动,但当它下一步要越过一条有意义的边界时,就慢下来。) 来源:https://cursor.com/cn/blog/agent-autonomy-auto-review
把"自主性"从一个布尔值(开/关)改造成一个连续刻度(旋钮),这就是 Auto-review 的全部立意。读 package.json、跑 npm test 这种低风险动作,旋钮拧到"自由跑"那头,agent 一路狂奔不打断你;要删迁移文件、要碰生产数据库、要把什么东西发到外网,旋钮自动回到"慢下来、问一下"那头。同一个 agent,在同一个会话里,自主性是逐个动作浮动的——这就是"旋钮不是开关"的字面意思。
值得把这个比喻钉死的原因是:它把问题重新框定了。开关思维下,你问的是"要不要信任这个 agent";旋钮思维下,你问的是"这一个动作,在这个任务里,该给多大自由"。前者是一锤子买卖,后者是一道需要持续判断的题——而"持续判断"这件事,Cursor 决定不让你来做,让一个模型来做。

二、三层闸门怎么转:白名单、沙箱、分类器子 agent——拦的是动作,不是代码
旋钮听着抽象,落地是一道很具体的三层闸门。它只管三类工具调用——Shell(跑命令)、MCP(调外部工具)、Fetch(发网络请求),因为这三类是能真正在你机器上和外网上搞出副作用的。每一个这样的动作进来,从最便宜到最贵走三道关:
- 第一层,白名单:用户预先批准过的命令(
git status、ls、npm test这类只读或无害的),直接放行,模型根本不进场。这一层是纯规则、零成本、零延迟。 - 第二层,沙箱:能被安全隔离的动作,自动塞进 Cursor 的沙箱里跑,出不来——哪怕它干了坏事,也被关在盒子里。
- 第三层,分类器子 agent:前两层都拦不住的,交给一个小模型,它只做三选一——放行 / 建议一个更安全的做法 / 升级给人来批。
这里有一个所有报道都极容易说错、必须咬死的区分:Auto-review 不是"agent 审查自己写的代码"。
它是一道在工具调用执行之前的输入闸门。它判断的是"这个动作该不该做",而不是"这段代码写得对不对"。它拦动作、不验产物。一段代码即便逻辑稀烂、埋着 bug,只要它要执行的那个动作(比如 python build.py)本身在当前任务里说得通,Auto-review 就放行——代码质量根本不在它的视野里。
为什么要反复强调?因为 Cursor 另有一个名字极像的功能叫 Agent Review,那个才是在 agent 写完之后审 diff(代码改动)的。日本技术社区 note.com 上一篇拆解就专门挂出警告:很多人把 Auto-review 和 Agent Review 当成一回事,结果完全理解反了——一个在动作执行前拦输入,一个在代码生成后审产物,作用的时间点和对象都不一样(来源:https://note.com )。营销话术里"更安全的执行"很容易让人脑补成"它会帮我把代码审一遍",不会。它只是在你的 agent 伸手按某个按钮之前,拦一下那只手。
第三层最有意思,因为那个分类器本身就是一个 agent。它不是一个把命令字符串塞进正则、查个表就吐 yes/no 的静态规则机。它在裁决之前,能先调用 ReadFile、Grep、Glob、ListDir 翻一遍工作区,再下判断。为什么需要这么重?因为同一条 python script.py,安全与否完全取决于那个脚本里写了什么——光看命令字符串你判断不了,得真去读一眼文件。Cursor 把这个分类器做成了和父 agent 共用同一条 RPC 流的子 agent:父 agent 要执行动作,子 agent 在旁边现场调查、现场裁决。
更妙的是被拦下时的处理。它不弹窗打断你,而是给父 agent 返回一段解释——"这条路有风险,原因是……"。Cursor 说,父 agent "通常能据此自己换一条更安全的路,无需打断用户"。也就是说,大量本该惊动你的拦截,被消化在了两个 agent 之间的对话里,你压根没感觉到。
而它裁决的轴心,是这一段——这是整道闸门的灵魂:
"问题不在于某个操作孤立来看是否存在风险,而在于这个操作是否符合用户让智能体执行的任务。" 来源:同上
这一句把判断标准从"绝对风险"挪到了"任务相关性"。删数据库这个动作孤立看当然危险,但如果用户明明白白让 agent"清掉测试库重建",那它就该放行;反过来,一个看着人畜无害的 cat 命令,如果它去读的是 .env 里的密钥、而当前任务跟密钥八竿子打不着,那才该拦。危险不危险,要放进"用户到底让它干嘛"这个上下文里才有答案——这正是为什么裁决者必须是个能查工作区、懂任务意图的 agent,而不是一张静态黑名单。

三、这一波最锋利的判断:反复点"同意",本身就是一个安全漏洞
如果只能从这篇博客里抢救一句话出来,是这一句,不是上面任何一段技术描述:
"asking for permission too often is itself a safety problem. After enough repeated prompts, people stop reading them and the approval process becomes less and less meaningful." (问得太频繁,本身就是一个安全问题。在足够多次重复提示之后,人们就不再读它们了,批准这个流程也变得越来越没有意义。) 来源:https://cursor.com/cn/blog/agent-autonomy-auto-review
这句话锋利在哪?它把"提示疲劳"从一个体验问题,重新定义成了一个一阶安全问题。
主流的安全直觉是单调的:审批越多 = 把关越多 = 越安全。在这个直觉里,弹框是成本但换来安全,所以多弹几个总没坏处。Cursor 直接掀桌:审批不是越多越安全,存在一个拐点,过了拐点,更多的人工审批 = 更少的安全。
机制很朴素,朴素到一说就懂。一个让人不断点"同意"的系统,训练出来的不是一个警惕的审核者,是一个条件反射盖章的人。当第四十个框弹出来时,按下"同意"的那个动作里,已经没有"审核"这个认知步骤了——它退化成了纯肌肉记忆。于是真正危险的那一次(那个混在四十个无害请求里、要把密钥发出去的请求),和前三十九次一样被秒批。你以为有一道人工防线,其实那道防线早在第十次点击时就睡着了。 弹框还在弹,把关已经停了。
这个判断之所以重要,是因为它的射程远远超出编程。它能推广到所有"人在环里"(human-in-the-loop)的 AI 系统——风控审批流、内容审核队列、自动驾驶的接管提示、医疗 AI 的二次确认。任何一个设计上"为了安全,所以让人多确认几次"的流程,都得重新过一遍这个拐点测试:你加的确认步骤,到底是在唤起注意,还是在制造一个一旦点开就不再读的盖章工。 把人放进环里,不等于把安全放进环里;一个会让人麻木的"人在环里",是安全剧场,不是安全。
这才是 Cursor 这篇博客真正的贡献。三层闸门是工程,会被别家抄、被迭代;但"反复点同意本身就是漏洞"这个判断,是把一个整个行业默认正确的假设给证伪了。它值得每一个设计审批流的人抄在工位上。

四、同一堵墙,三种修法:信分类器、信规则书、信集装箱
把镜头从 Cursor 拉远一点,会看到它根本不是一个人在撞墙。2026 年 5 月这几周里,三家头部编程 agent 几乎同时交出了三种完全不同的"刹车哲学"——而 Cursor 选的,恰恰是三条路里最方便、也最不可审计的那一条。
独立分析者 andrew.ooo 把这三种哲学浓缩成一句话,精准到可以直接挂墙上:
"Cursor: trust a classifier, keep things local, accept best-effort. Claude Code: trust a rulebook, keep things auditable, accept friction. Codex: trust a container, keep things isolated, accept latency." (Cursor:信一个分类器,保持本地,接受尽力而为。Claude Code:信一本规则书,保持可审计,接受摩擦。Codex:信一个集装箱,保持隔离,接受延迟。) 来源:https://andrew.ooo
把这三条拆开看,三种世界观的取舍清清楚楚:
Cursor——信分类器。 就是上面那道闸门:一个 LLM 在运行时逐次现场判断。好处是它懂上下文——能读工作区、能权衡任务意图,所以在"该放就放、该拦才拦"的精细度上最高,体验最顺。代价是这个判断者非确定:同一个动作,模型这次放行下次可能拦,反过来也一样;而且它在你本地机器上跑,没有一道硬隔离边界。
Claude Code——信规则书。 它走的是另一个极端:一本静态规则书。权限写死在 ~/.claude.json 加 .claude/settings.json 的 allow / deny 清单里,列明哪些命令、哪些路径、哪些工具允许或禁止。没有任何 LLM 在环里判断一条 curl 安不安全——规则就是你亲手写下的那些,一个字不多一个字不少。好处是最可审计:任何一次放行或拦截,都能精确追溯到你写的某一条规则,事后复盘时责任链是闭合的,半夜出了事能查到是哪条规则放的行。代价是最磨人:规则是死的,覆盖不到的边缘情况要么一刀切拦死、要么得你手动追加规则,摩擦最大。
Codex——信集装箱。 OpenAI 的路子是每个任务起一个临时容器,在云上或本地把整个任务圈进一个隔离边界里跑,最后审它吐出来的那个 PR(合并请求),而不审中间每一步。好处是它最接近一道真正的安全边界——容器是硬隔离,agent 在里头怎么折腾都炸不到外面,爆炸半径被物理地框住了。代价是最慢:起容器、跑任务、出 PR,延迟最大,也不适合那种要一步步交互盯着改的活。
三者的取舍,是一个清清楚楚的三角,没有谁更先进:
- Cursor 最方便、精细度最高,但最不可审计——LLM 在环、判断非确定,你没法保证它下次还这么判。
- Claude Code 最可审计、责任链最清晰,但最磨人——一切都得你写进规则书。
- Codex 最接近真隔离、爆炸半径最小,但最慢——拿延迟换那道硬边界。
所以选型这件事,根本不存在"选最好的那个",只存在**"选最匹配你爆炸半径的那个"**。一个改个人玩具项目、追求顺手的人,和一个碰生产数据库、要随时能向合规交代的人,本就该把旋钮拧到不同的档位。这一周真正的信号不是 Cursor 多巧妙,而是:整个行业同时撞到了同一面墙——全自主的 agent 必须配一套信任机制,而"每次都问"这条老路,压根不 scale。 撞墙的姿势有三种,墙只有一面。

五、审计盲区:营销说"更安全",核实是"少点几次同意 + 一道软护栏"
Cursor 这条路最方便,但它的便利是有代价的,而且难得的是——Cursor 自己把代价说清楚了,反倒是转述它的媒体把代价弄丢了。这一节把数字和盲区都摆到台面上。
先看那组撑场面的数字,它们确实漂亮:Cursor 合作过的一些企业客户,在上 Auto-review 之前,大约 40% 的操作会被弹出来要人批准——这就是 y-spamming 的量化版,差不多每两三个动作就打断你一次。上线之后,只有大约 7% 的全部对话会触发至少一次打断,分类器真正出手拦截的动作约占 4%。从"40% 的操作被拦"到"7% 的对话才被打断一次",体感上确实是从"点到手麻"变成了"基本不打扰"。
训练这个分类器的数据也讲得很实在:他们收了约 12 小时的内部开发会话,清洗、去重,压成 6122 行带标签的数据,再补上"读密钥、碰生产数据、执行高副作用操作"这类在正常使用里出现得不够多、但恰恰最危险的合成样本。过程里还有一个反直觉的发现,值得做模型选型的人记一笔:"低推理模型并不总是更快。" 一个推理能力更弱的小模型,未必带来更低的延迟——有时候它想不清楚反而更慢、更容易误判。
这里必须插一句纠错,否则你会跟着错传:外面流传甚广的"Auto-review 减少了 84% 的中断"这个数字,是 AlphaSignal(一个 AI 资讯媒体)拿 40%→7% 自己算出来的(从 40 降到 7,降幅约 84%),Cursor 官方从头到尾没说过这个数(来源:https://alphasignal.ai )。它不是假的,但它是二手推算,不是 Cursor 给的官方指标。引用时别把它安到 Cursor 头上——这正是"评论员核实一手材料"和"搬运二手标题"的分水岭。
数字之外,才是真正要警惕的东西。Cursor 在自己的论坛和安全文档里反复声明这个分类器的局限,诚实得近乎刺眼:它是非确定性的、会犯错、能被 prompt injection(提示注入,把恶意指令藏进 agent 会读到的内容里、骗它执行)骗过。它拦的是动作输入,可一旦放行,生成并运行的代码在运行时照样能干坏事——它从一开始就不验证产物。Cursor 自己给这道闸门下的定性是一句话,分量很重:
"best-effort convenience, not a security boundary." (尽力而为的便利,不是一道安全边界。)
把这句官方定性,和营销页上"更安全的执行"那种措辞放在一起,落差就出来了。营销说的是"更安全",核实下来是"少点几次同意 + 一道软护栏"。 "软"在于:它非确定,所以你无法保证它每次都拦住该拦的;它能被注入骗过,所以一个精心构造的恶意 prompt 可以诱导它放行;它不验产物,所以即便放行的动作"看起来符合任务",那段代码运行起来照样可能越界。这道护栏挡得住"手滑"和"agent 一时糊涂走错路",挡不住"有人专门来攻你"。
所以盲区的本质是:Cursor 用"可审计性"换来了"便利性和精细度"。 一个 LLM 在环里逐次现场判断,体验上行云流水,但你永远无法给出一条确定的、可复现的、能在审计时摆出来的规则说"它为什么放了这一个、拦了那一个"。对一个改个人项目的人,这笔交易划算极了;对一个要过合规、要在事故后向监管和客户交代"当时这个危险动作是怎么被放行的"的团队,这道用非确定模型搭的软护栏,不能当最后一道防线。它该是体验层的减负工具,不该是责任链的终点。

对从业者意味着什么
选 agent,别再问"哪个最能干",先问"哪种信任模型匹配我的爆炸半径"。 碰生产数据、要随时能向合规交代,选 Claude Code 的规则书(可审计、责任链闭合)或 Codex 的容器(硬隔离、爆炸半径小);改个人项目、追求顺手且能接受偶尔误判,Cursor 的分类器体验最好。andrew.ooo 那句"信分类器 / 信规则书 / 信集装箱"就是一张现成的选型清单。把"自主性"当成一个你要为每个项目单独拧的旋钮,而不是一个全局开关。
分清 Auto-review 和 Agent Review,别买错预期。 Auto-review 是动作执行前的输入闸门——它拦的是"要不要做这个动作",不审你的代码质量。想要 agent 写完之后帮你审 diff,那是另一个功能 Agent Review 的活。把"更安全的执行"理解成"它会帮我把代码审一遍",是会出事的误读。
盯死"分类器"这条路的审计盲区。 它非确定、会被 prompt injection 骗、不验证产物,Cursor 自己都白纸黑字写了它是"尽力而为的便利,不是安全边界"。营销写"更安全",落地是"少点几次同意 + 一道软护栏"。任何要合规、要事后追责、要向客户解释清楚的场景,别拿一个 LLM 闸门当最后防线——它挡手滑,不挡定向攻击。
把 Cursor 那句反直觉的话,记到你设计的一切审批流上。 "问得太频繁,本身就是一个安全问题。"一个让人不断点"同意"的系统,最终训练出的是不看就点的人——你的弹框还在弹,把关却早就停了。这条原则适用于一切"人在环里"的 AI,远不止编程:风控、审核、人工接管……你的审批流设计得越啰嗦,可能越不安全。在加下一个"为了安全的二次确认"之前,先过一遍那个拐点测试:它是在唤起注意,还是在批量制造盖章工。
引用与信源
- Cursor《用 Auto-review 管控智能体自主性》(2026-05-29,3.6 版本,含旋钮比喻、三层闸门、40%/7%/4%、6122 行训练数据、两句核心金句、"尽力而为的便利不是安全边界"):https://cursor.com/cn/blog/agent-autonomy-auto-review ;英文原版 https://cursor.com/blog/agent-autonomy-auto-review
- andrew.ooo《Cursor 3.6 Auto-review vs Claude Code Permissions vs Codex Sandbox》(2026-06-01,三种刹车哲学对比,"信分类器 / 信规则书 / 信集装箱"原句出处):https://andrew.ooo
- note.com 日本技术社区拆解(明确警告 Auto-review ≠ Agent Review,一个拦动作输入、一个审代码 diff,别混):https://note.com
- AlphaSignal("减少 84% 中断"数字的来源——由 40%→7% 二手推算得出,非 Cursor 官方指标,引用勿安到 Cursor 头上):https://alphasignal.ai
- Claude Code Permissions 文档(静态 allow/deny 规则书,
~/.claude.json+.claude/settings.json,无 LLM 在环):https://docs.anthropic.com/en/docs/claude-code/settings - OpenAI Codex Sandbox(每任务临时容器、审 PR 不审单步、最接近真隔离):https://openai.com/index/introducing-codex/
- Anysphere(Cursor 母公司)2025-11 估值约 293 亿美元(NVIDIA、Google 参投)、ARR 从约 10 亿美元被报道升至约 20 亿美元、Auto-review 现为新用户默认:https://techcrunch.com/2025/11/ ;产品默认见 Cursor 官方博客(同条 1)