Cursor Cloud Agent 原理简介
作者:程序员罗尼 | 发布:2026-10-10
本地 Agent 有个毛病:它住在你的笔记本上。
你一合盖,它就停工。你开三个任务,风扇先抗议。它能改代码,但能不能跑通测试,全看你本机碰巧装了什么。
Cursor 的 Cloud Agent(以前叫 Background Agent)换了条路:给每个任务单独配一台云端电脑。你关电脑,它还能干。做完后通常以 Draft PR 交接手,你回来审。
这篇文章按这条线讲清楚:它是什么、为什么环境决定成败、一次任务怎么跑、底层怎么拆、Harness 怎么管、隐私怎么防、用它有什么风险。
一、是什么:本地 Agent 的亲戚,不是云端 Chat
Cloud Agent 和本地 Agent 用的是同一套 Agent 基本功——读代码、改文件、跑命令、调工具。
差别在干活的地方。
本地 Agent 继承你的开发环境,像借你家厨房做饭。Cloud Agent 要自己搭厨房:clone 仓库、装依赖、配密钥、连网络。官方文档的大意是:不给它配环境,就像不给工程师配电脑。
| 维度 | 本地 Agent | Cloud Agent |
|---|---|---|
| 住哪 | 你的 IDE / 本机 | 独立云端 VM(或自托管 Worker) |
| 环境 | 白嫖你本机 | 必须重建一遍 |
| 并行 | 抢你的 CPU | 按任务独占虚拟机,用完可回收 |
| 你离线 | 停 | 还能跑 |
| 交付 | 本机改动 | 常见路径:独立分支 + Draft PR |
一句话:
Cloud Agent = 本地那套 Agent 能力 + 隔离的完整开发环境 + 扛得住长时间任务的编排。
它不是「把对话框搬到服务器」。它是「给 AI 配一台能下班也能干活的电脑」。
二、为什么:环境才是产品
模型变强之后,瓶颈经常不在「会不会写」,而在「写完能不能验」。
本地环境你已经配好了,Agent 白嫖。云端没有这份白嫖。缺依赖、缺密钥、出不了网——表面看像模型变笨,根因往往是环境不对。
所以 Cursor 把精力砸在环境上:快照、预热镜像、休眠恢复、密钥脱敏、出网策略。他们自己说,这事越做越像「给 Agent 做企业 IT」。
换个说法:模型是考生,环境是考场。卷子出得再好,不给笔、不给草稿纸,也交不出像样的答卷。
三、怎么跑:一次任务的主要阶段
下面这张图是主路径示意。持久化其实贯穿全程,不是 Loop 结束才存;Draft PR 是常见交接手,不是每次硬保证;回收多在空闲时触发。
- 启动:Web、Desktop、CLI、API、Slack、GitHub 评论
@cursor、Linear、手机都能发任务。 - 供给:拉一台隔离 VM,clone 你授权的仓库,注入密钥和网络策略。
- 执行:在 VM 里改代码、跑测试,必要时操作桌面和浏览器。进度流式回你。
- 持久化:对话、截图、视频、日志边跑边存,方便续跑和复盘。
- 交接手:常见做法是推独立分支、开 Draft PR。合不合并,取决于你们仓库的审查和分支保护,不是 Cursor 替你点合并。
- 回收:空闲就休眠,再按生命周期删掉运行时资源。
权限很死:组织装 Git App,个人再绑自己的账号。Agent 只能碰你本来就能访问的仓库,不会因为开了 Agent 就多拿权限。
四、底层怎么拆:三件东西别绑死
早期他们把本地那套「Worker 抢任务、loop 到结束」硬搬上云,可靠性很差。后来迁到 Temporal 做 durable execution。
Temporal 是啥?你可以把它想成「给长时间任务用的记事本 + 监工」。
Agent 跑几小时很正常。中间模型会抖,机器会换,进程会挂。普通程序一挂,进度就丢。Temporal 把每一步进度记下来:哪步做完了、哪步该重试、换台机器从哪接着干。节点挂了,换人上场,剧本还在。按 Cursor 工程博客的说法,靠这套编排扛住了推理抖动、VM 休眠恢复、跨天甚至跨周的任务。
编排解决的是「别断」。接下来更关键:别把 Agent、机器、会话绑死在一块。先看组件关系,再看一个 Loop 里它们怎么互相喊话。
架构图:几个组件各管什么
读图时抓住四条线就够:
- 你 ↔ 前端 ↔ 会话:人只跟控制面说话,不直接操作 VM。
- Temporal ↔ 模型:编排层把上下文送去推理,拿回 tool calls。
- Temporal ↔ 执行面:真正改文件、跑命令发生在 VM / Worker,不在编排进程里。
- 执行面 → Git:交接手时推分支、开 Draft PR;会话层只负责把过程播给你看。
时序图:一个 Loop 内怎么转一圈
一圈的本质很简单:编排问模型 → 模型要工具 → 执行面干活 → 结果写进会话 → 再问模型。失败就 rewind 后重来;做完就走 Git 交接手。
Loop 不在 VM 里。
Agent 循环的编排活在 Temporal;推理则是去调模型服务。VM 可以休眠、换机、换成预热机。Agent 和机器不用绑一辈子。
Machine 是完整工位。
仓库(可多仓)、依赖、Secrets、受限出网、终端、浏览器、MCP、Hooks。
隔离这块,官方安全文档里的说法比较硬,拆开讲:
- 一个 Agent,一台 VM:这里的 Agent 指一次云端任务运行,VM 指虚拟机。规则是:每开一次 Cloud Agent,就单独起一台虚拟机,不跟别人的任务拼车。不是很多人挤同一台机器、靠进程沙箱拉帘子隔开;你的代码、环境变量、磁盘,隔壁任务和其他用户都看不见。像酒店一客一房,退房再回收,不是通铺。
- Firecracker microVM:上面那条是规则,这条是实现技术。Firecracker 是 Amazon 给 Serverless 用的轻量虚拟机。比普通虚拟机起得快、吃得少,但仍是真虚拟机边界,不是「同一个内核里开个容器」那种软隔离。
- 和 Cursor 其他生产服务分账号:跑 Agent 的那批机器,放在单独的 AWS 账号里,不跟 Cursor 网站、账号系统、计费那套生产服务挤在同一个云账号。设计目标是缩小爆炸半径:一边出事,另一边默认够不着。像公司把「写代码的工位」和「前台收银」分到两栋楼,钥匙也不通用。
三层加起来:任务与任务隔开,用户与用户隔开,Agent 工位和 Cursor 自家其他系统也隔开。
Conversation 单独流。
对话不跟 VM 绑在一起,而是单独存、单独往 Web / Desktop 推。这样 Loop 可以重试、机器可以换,界面却还得跟得上真实进度。
问题来了:Agent 打字是流式往外吐的。吐到一半,这一步失败,Temporal 安排重试——屏幕上已经留下半截旧字。不管的话,旧半截和新答案会叠在一起,看着像完成了,其实对不上。
所以客户端要会 rewind(倒带):发现「这一步重来了」,先撤回那半截旧输出,再接上重试后的新内容。像录像播错了倒回去重播,而不是错着接着播。
这三件拆开了,才有休眠续跑、并行、子 Agent、跨天任务。绑在一起,机器一抖,整条链都断。
五、Harness:缰绳松一点,还是勒紧一点
前面说的是 VM、Temporal、会话怎么拆。拆完之后还有一个问题:谁来管 Agent 怎么干活?
答案是 Harness(马具)。你可以把它想成套在 Agent 外面的缰绳和鞍具:哪些步骤写死在程序里,哪些交给模型自己判断,哪些工具能用,卡住了要不要停下来问人——都在这层定。
没有 Harness,模型就像没鞍的马,力气大,方向随机。Harness 太死,又变成遥控脚本,模型的判断用不上。Cursor 这一年多,主要就在调这根缰绳:松一点,还是勒紧一点。
早期:勒得很紧。
那时候不太信模型。Harness 会在每步后面复查,写完强制 commit、强制 push。多仓库怎么切分支、CI 挂了怎么捞日志,很多都写死在脚手架里。稳,但笨:模型变强了,这些硬逻辑反而变成绊脚石。
现在:能放的交给 Agent。
多仓协作不再靠一堆写死的分支流程,而是告诉它仓库长什么样,再给它开分支、开 PR 的工具,让它自己决定怎么干。CI 修失败也类似:以前 Harness 负责把失败日志塞进 VM;现在把 GitHub CLI 给它,大段输出落到文件里让它自己搜。通知变简单了,决策权还给 Agent。
还有放不掉的。
不是所有事都能撒手。比如 Computer Use——要操作桌面和浏览器——模型还没稳到「自己看着办」。所以 Harness 仍保留专用子 Agent:单独的模型路由、提示词、录屏;VNC 和 Chrome 属于环境,父子 Agent 共用。Agent 决定什么时候调用,脚手架保证调用时不翻车。
云端为什么比本地更松。
本地 Agent 一卡权限,你盯着屏幕,马上点允许或拒绝。云端你可能几小时后才回来看。Harness 要是动不动停下来等人,任务就干耗在那。所以云端提示更鼓励它自己往前推:能测就测,能改就改,最后常以 Draft PR 交人审。松的是执行过程;出网、密钥、合并闸门,要靠下一节的边界来勒。
Harness 不是固定剧本,而是一条持续挪动的边界:模型够用的地方往外放,还不稳的地方留脚手架,无人值守的地方用策略兜底。
六、隐私怎么防:代码进云了,靠什么兜底
Cloud Agent 要干活,代码和会话必然进云。这不是「零存储」,而是「有存储、有边界」。隔离结构(一任务一 VM、Firecracker、分账号)第四节讲过了,这里只补隐私相关闸门——依据 Cursor 官方安全说明:
1. 不扩大权限。
Agent 只能碰发起人本来就能访问的仓库。组织装 Git App,个人再绑自己的账号。开 Agent 不会多拿权限。
2. 加密与生命周期。
传输用 TLS,落盘 AES-256,会话按 Agent 分钥。运行中的工作区空闲会回收;快照默认闲置约 90 天删除;对话可按需删,企业还能设留存策略。按官方安全说明,Cursor 员工不应访问这些 VM 里的代码,相关访问尝试会被监控。
3. 模型侧 Privacy Mode。
Cloud Agent 跑在 Privacy Mode 下:Cursor 不用这些代码和对话训练。多数模型路径还有零留存协议。注意:Cloud Agent 需要在云端保存运行期代码和环境,所以不走旧版 Legacy Privacy Mode 那套假设。
4. 防外泄,不只靠「相信模型」。
Cloud Agent 会自动跑终端命令,比前台 Agent 更自主。仓库里若被人埋了恶意指令(prompt injection),理论上可能诱导它把代码往外送。官方给出的防线包括:
- 出网 allowlist,可收紧到「只能访问你批准的域名」(默认是开公网的,要自己收)
- Runtime Secrets:密钥进环境变量,但从 transcript、工具输出、commit 里抠掉,不进模型
- 敏感路径写进
.cursorignore - 常见交接手是 Draft PR;合不合并看你们自己的审查规则
- Agent 提交可用 HSM 签名并显示 Verified,方便审计和开启「必须签名提交」的分支保护
企业还能上 CMEK/BYOK、组织级锁出网。代码执行不能出内网时,可以走 Self-hosted:推理和编排仍在 Cursor,改文件、跑命令发生在你内网 Worker 上;Worker 只出站 HTTPS 连回去,不用开入站端口。
一句话:隐私不是「云上没数据」,而是「数据进得去、权限扩不开、外网可收紧、合并要人点头」。
七、用 Cloud Agent 有什么风险
官方自己也说:Cloud Agent 和本地 Agent 不是谁更安全,而是风险画像不同。第六节是「对方提供了哪些边界」;这一节是「边界之外,你还得自己扛什么」。
代码进第三方云。
整仓会被 clone 进隔离 VM,快照还会短期留着加速启动。信不信 Cursor 的隔离、加密和删除策略,是使用前提。信不过,走 Self-hosted,或干脆别上敏感仓。
无人值守 = 攻击面更大。
它能自己跑命令、自己迭代测试。好处是闭环验证;坏处是 prompt injection 时,你不在旁边喊停。默认开公网出站,不配 allowlist,就等于后门开着。
密钥可能被读到。
注入进 VM 的环境变量,Agent 运行时要用。别指望「看不见就不存在」——靠 Runtime Secrets 脱敏、别把密钥写进仓库、能用 OIDC 短时凭证就别用长寿命 key。
自主过头会干蠢事。
改错模块、乱依赖、测一半推分支——都可能发生。Draft PR 是交接手,不是免检通行证。合入前还是得按你们的流程审。
成本与留存。
按模型 API 计价,上下文开大就更贵。对话默认长期可回看;不需要的跑完记得删,企业记得配留存策略。
怎么用更稳一点:
- 先从非核心仓练手,敏感仓上 blocklist 或 Protected Git Scopes
- 出网收紧到 allowlist,Secrets 标 Runtime
- 合入前走你们自己的人审;需要的话再挂 Bugbot / Security Agent
- 合规要求严的,优先 Self-hosted
工具能替你写代码,替不了你担责。Cloud Agent 把「干活」搬进云,把「拍板」仍留给你。
八、记住这几句就够
- 它是什么: 不是云端 Chat,是带完整工位的云端 Agent。
- 为什么能成: 环境才是产品;没有可验证的环境,模型再强也交不出答卷。
- 怎么跑: 启动 → 供给 → 执行 → 边跑边存 → 常见以 Draft PR 交接手 → 空闲回收。
- 底层怎么拆: Temporal 管编排别断线;Loop、机器、会话别绑死;客户端会 rewind。
- Harness 怎么管: 能放给模型的放出去,不稳的留脚手架,云端执行松、边界要勒。
- 隐私怎么防: 权限不扩大、外网可收紧、密钥可脱敏;不行就 Self-hosted。
- 用它有什么风险: 风险换了形态,没有消失——哪些仓能进云,得你先想清楚。
你不是在养一个「永远在线的聊天框」。你是在给 AI 配工位、配流程——同时把门锁、监控和签字笔留在自己手里。
如果你也在试 Cloud Agent,评论区聊聊你卡在环境上,还是卡在安全和审查上。
觉得有用,点个在看,转给那个还在合盖就丢任务的同事。
END