一、为什么需要"多 Agent"
我们先看一个真实场景。
你是一个独立开发者,今天想做三件事:
- 修一个长期搁置的 bug(要看 5 个文件,可能要花 1-2 小时)。
- 给一个新功能写个原型(小,30 分钟)。
- 把网站首页文案改一遍(小,15 分钟)。
传统做法:
- 串行做。先做完 1 再做 2 再做 3。如果 1 卡了,整个晚上就卡了。
- 或者你切换上下文:开三个分支,手动切换。
多 Agent 模式:
- 让 Agent A 在主分支修 bug。
- 让 Agent B 在
feature/xxx分支写原型。 - 让 Agent C 在
content/copy-update分支改文案。 - 三个 Agent 并行,你是"指挥官",看进度、做决策、合并结果。
这就是 Cursor 3 引入 Agents Window 的核心理念。
二、Agents Window:你的"指挥中心"
2.1 怎么打开
按 Cmd+Shift+P,输入 Agents Window,回车。
或者按 Cmd+E(默认快捷键)。
打开后是一个独立窗口(也可以嵌在主编辑器里),长这样:
┌──────────────────────────────────────────────────────────┐
│ Agents Window │
├─────────────┬─────────────┬─────────────┬────────────────┤
│ Agent A │ Agent B │ Agent C │ + 新增 Agent │
│ ───────── │ ───────── │ ───────── │ │
│ 修 bug │ 写原型 │ 改文案 │ │
│ 分支:main │ 分支:feat │ 分支:copy │ │
│ 状态:跑中 │ 状态:等待 │ 状态:完成 │ │
│ │ │ │ │
│ [对话窗] │ [对话窗] │ [对话窗] │ │
└─────────────┴─────────────┴─────────────┴────────────────┘
每个 Agent 是一个独立的"对话",运行在自己的 worktree 里(2.4 节 详解)。
2.2 三种布局
Cursor 3.1 引入了 Tiled Layout(拼贴布局):
| 布局 | 长什么样 | 适合 |
|---|---|---|
| Tabs | 像浏览器标签页,一次看一个 | Agent 数量多,逐个查看 |
| Stacked | 上下堆叠,一次看 2-3 个 | 想同时看几个 Agent 的进度 |
| Tiled | 网格布局,一次看 4+ | 真正的"指挥中心"视图 |
切换:在 Agents Window 顶部的布局图标点一下。
2.3 创建一个新 Agent
点右上角"+",会问你:
- Branch / Worktree:在哪条分支跑?
- "Use current branch":在当前分支
- "Create new worktree":新建一个 worktree(推荐,互不干扰)
- Initial prompt:第一句话给它什么任务?
- Model:用哪个模型?
填好确认,新 Agent 立刻开始干活。
2.4 Worktree 是什么
git worktree 是 Git 的一个高级功能:一个仓库,多个工作目录,每个目录是一个独立的分支。
打个比方:
- 传统 Git:一个仓库 = 一个文件夹。切分支要先
git stash或 commit。 - Worktree:一个仓库 = 多个文件夹。每个文件夹一个分支,互不干扰。
~/projects/my-app/ # 主工作目录(main 分支)
~/projects/my-app-fix-bug/ # worktree 1(fix-bug 分支)
~/projects/my-app-new-feature/ # worktree 2(new-feature 分支)
~/projects/my-app-update-copy/ # worktree 3(update-copy 分支)
Cursor 3 用 worktree 让多个 Agent 真正并行——它们各自在独立的目录里改文件,不会冲突。
2.5 用 /worktree 命令快速创建
在 Composer 输入框里:
/worktree fix-pomodoro-timer-bug
帮我修 PomodoroTimer 在 Safari 上倒计时漂移的 bug。
Cursor 会:
- 自动创建一个新 worktree
~/projects/my-app-fix-pomodoro-timer-bug/。 - 在那里 checkout 一个新分支
fix-pomodoro-timer-bug。 - 起一个新 Agent 在那个目录工作。
- 你的主目录"完全不受影响"。
完事后,让 Agent git push 这个分支,然后开 PR 合回 main。
2.6 同时跑多少个 Agent 合理
| 你的设备 | 推荐并行数 |
|---|---|
| 入门 Mac / 16 GB RAM | 2-3 个 |
| 高配 Mac / 32 GB RAM | 4-6 个 |
| Mac Studio / 64+ GB | 8+ 个 |
Cursor 3 之前限制 8 个,3.0 之后无上限。但是人脑只能同时管 3-4 个——超过你就会失控。
三、Best-of-N:让多模型 PK 同一个任务
3.1 这是什么
/best-of-n 是 Cursor 3 的杀手级功能:同一个任务,让多个模型同时跑,最后让你挑最好的那一份。
3.2 怎么用
在 Composer 输入:
/best-of-n 重构 @File auth.ts,让它更易测试、更易扩展到第三方登录。
Cursor 会问你:
- "用几个模型?"(默认 3)
- "选哪些模型?"(默认 composer-2、claude-4.6-sonnet、gpt-5.4-medium)
确认后,它在 3 个 worktree 里同时跑 3 个 Agent,每个用不同模型做同一个任务。
完成后,Agents Window 里列出 3 份结果,每份带:
- 改了哪些文件
- 总共改了多少行
- 一段"它是这样想的"摘要
你点其中一个"使用这份",那份的改动被合并回主分支,其他两份的 worktree 自动清理。
3.3 什么任务适合 Best-of-N
- 重构:不同模型有不同审美,让你看见多种风格。
- 难题:哪个模型解出来你用哪个。
- 创意类:写文案、写产品描述、设计 UI 时,三选一。
- 学习:你不知道"标准答案",多看几个 AI 的解法。
3.4 什么任务不适合 Best-of-N
- 有标准答案的任务(比如"加一个特定 API"):浪费 token。
- 超大任务(比如"重写整个项目"):每份都要花很多 token,三份就更贵。
- 需要快速迭代的小改动:单 Agent 更快。
3.5 一份典型 Best-of-N 选择
任务:给番茄钟加"白噪音"功能
3 份结果对比:
[ ] composer-2
- 用 Web Audio API 合成雨声(不引入文件)
- 改 2 个文件,新增 80 行
- 优点:零依赖
- 缺点:合成音质一般
[ ] claude-4.6-sonnet ← 选这个
- 内联 base64 编码的 5 秒雨声(循环播放)
- 改 1 个文件,新增 120 行
- 优点:音质好、循环无缝
- 缺点:HTML 体积 +200KB
[ ] gpt-5.4-medium
- 用 noise.js 库(CDN 引入)
- 改 3 个文件,新增 60 行
- 优点:实现简单
- 缺点:违反"不引入依赖"原则
你看了一眼,选 claude 的方案,点"应用",结束。
总耗时:单 Agent 5 分钟 vs Best-of-N 7 分钟。多花 2 分钟,但是质量提升 30%。
四、Cloud Agents:在云端 24 小时打工
4.1 这是什么
Cloud Agents 是 Cursor 3 的另一个杀手级功能:你布置任务给一个 Agent,它在云端虚拟机里跑,完全脱离你的电脑。
你关掉笔记本回家,它继续干。第二天早上你打开 Cursor,看到一份 PR 已经准备好了。
4.2 它的优势
| 维度 | 本地 Agent | Cloud Agent |
|---|---|---|
| 你电脑要开着 | 是 | 否 |
| 速度 | 取决于你电脑 | 云端高配 VM |
| 模型档位 | 受订阅限制 | 总是 Max Mode |
| 适合任务 | 互动式 | 后台长任务 |
4.3 怎么用
方式 1:在 Cursor 桌面里
- 打开 Agents Window。
- 点"+",选"Cloud"。
- 给任务和初始 prompt。
- Cursor 把你当前的代码同步到云端,开始跑。
方式 2:在浏览器里(cursor.com/agents)
- 打开
https://cursor.com/agents。 - 登录你的 Cursor 账号。
- 选一个连接到的 GitHub 仓库。
- 给任务,开始跑。
- 从手机上也能查看进度。
方式 3:从 Slack / GitHub Issue / Linear 触发
- Slack 集成:在频道里
@cursor 修一下 #issue-123 那个 bug,Agent 就动手了。 - GitHub Issue 集成:在 issue 里
@cursor评论,Agent 来读 issue + 写 PR。 - Linear 集成:把任务分配给
@cursor,Agent 自动开始。
4.4 适合 Cloud Agent 的 5 类任务
任务 1:长时间重构
"把整个项目从 Vue 2 迁移到 Vue 3" —— 几个小时活,本地跑你电脑发烫,云端跑你下班吃饭。
任务 2:批量补测试
"为所有 utils/ 下的函数补单元测试" —— 重复劳动,云端慢慢做。
任务 3:周期性巡检
"每天凌晨跑一次 lint + 安全扫描,发现问题开 issue" —— 配定时任务,自动跑。
任务 4:依赖升级
"把所有依赖升到最新版,跑测试,跑通的提 PR" —— 标准化流程。
任务 5:从 Issue 到 PR
"读 #issue-123 的描述,复现问题,修,开 PR" —— 完全自动化。
4.5 本地 ↔ 云端 Handoff
Cursor 3 最优雅的设计之一:你可以随时切换任务的执行位置。
- 你在公司用 Cloud Agent 起一个长任务。
- 你回家了,想接着调试。
- 在 Cursor 里点"Move to Local",整个 Agent 状态、文件改动、对话历史完整迁回你电脑。
- 你接着干。
反过来:
- 你在本地修一个 bug,做了一半要去吃晚饭。
- 点"Move to Cloud",让它在云端继续跑。
- 你回来打开 Cursor,看完成结果。
这种"无缝迁移"是其他工具都没有的。
4.6 Cloud Agent 的成本
- Cloud Agent 默认按 token 计费 + 一些云端 VM 费用。
- 一个中等任务(修 bug + 写测试 + 开 PR)约 $0.5-2。
- Pro 月费里包含一定额度,超出按量付费。
- Ultra 用户:基本无限制。
具体看 cursor.com/pricing。
五、Design Mode:让 AI 看着 UI 改 UI
5.1 这是什么
Design Mode 是 Cursor 3 引入的视觉协作模式:你直接在浏览器里用鼠标圈出"这块不对",AI 看着截图改前端代码。
它解决了一个老大难问题:前端反馈很难用文字描述。"按钮太大"是多大?"颜色不对"是哪里不对?
5.2 怎么开启
- Cursor 内置浏览器打开你的网页(或挂个 localhost)。
- 顶部出现"Design"开关,打开它。
- 进入 Design Mode 后,浏览器变成"涂鸦模式"。
5.3 三种交互方式
方式 1:Shift + 拖拽框选
按住 Shift,拖一个矩形框出来,框住"我有意见的区域"。 弹出输入框,写:"这块的间距太挤,再宽 50%"。
方式 2:Option + 单击
按住 Option(Win 是 Alt),点击具体某个元素。 该元素被选中,弹输入框,写:"这个按钮换成边框样式,不要实心"。
方式 3:Comment 模式
在元素旁边点击,加一条"评论"。 AI 看到评论后改对应代码。
5.4 Design Mode 适合做什么
- 微调样式:颜色、间距、圆角、字号、阴影。
- 改布局:左右换、上下换、对齐、对比。
- 加细节:悬停效果、过渡动画、加个图标。
- 响应式调整:在手机视图下圈一下"这里太挤"。
5.5 一个真实的 Design Mode 工作流
回到你 第二章 的简介页 my-profile。
- Cursor 内置浏览器打开
index.html。 - 开 Design Mode。
- Shift+拖:框住顶部 nav,写"导航字号小一点,再加点字间距"。
- Option+点:项目卡片的"查看"按钮,写"换成深色 outline 风格"。
- 点页脚加 comment:"这里加一行版权声明"。
- 点"Apply All",AI 一次性改完所有改动,浏览器自动刷新。
整个过程你一行 CSS 都没碰。
5.6 Design Mode 的限制
- 只对 Cursor 内置浏览器有效(外部 Chrome 不行)。
- 截图分辨率有限,太细的差异它可能看不出来。
- 复杂的"动效设计"还是要文字描述。
六、Background Agent:让 AI"在你睡觉时"工作
6.1 这是什么
Cloud Agent 的子集——真正的"后台运行"模式。你布置任务后完全不需要任何 UI,Agent 在云端自己跑、自己提 PR。
类比:Cloud Agent 像"远程工作的同事",你能随时看进度;Background Agent 像"晚上加班的同事",你早上看结果。
6.2 触发方式
触发 1:定时
@cursor 每天凌晨 3 点跑一次 lint + 测试,
失败时给我开 issue,写明哪个文件哪一行。
触发 2:Webhook
GitHub 收到 push 事件 → 触发 Cursor Agent → Agent 写 changelog → 评论到 PR
触发 3:Issue / PR 事件
@cursor 修这个 bug → Agent 读 issue → 修 → 开 PR
6.3 适合的场景
- 依赖更新巡检:每周跑一次
npm outdated,发现重要更新自动开 issue。 - 死链接检查:每周扫描文档里的链接,挂掉的自动报告。
- 性能巡检:每晚跑一次 Lighthouse,得分降低自动通知。
- i18n 检查:每次 main 有 push,扫一下"是否有新加的中文未翻译成英文"。
6.4 怎么配置
在 .cursor/background.yaml 写:
agents:
- name: lint-and-test
schedule: "0 3 * * *" # 每天凌晨 3 点
prompt: |
跑一次 npm run lint 和 npm test。
如果挂了,把第一个错误开成 GitHub issue,
标题是 "[自动检测] xxx",内容包含完整错误堆栈。
model: composer-2
- name: dep-check
schedule: "0 9 * * 1" # 每周一早上 9 点
prompt: |
跑 npm outdated --json,找出所有"主版本号落后"的依赖。
把超过 1 个主版本的开成单独 issue。
model: gpt-5.4-medium
存档后 Cursor 自动注册到云端。
七、BugBot:自动审查代码的机器人
7.1 这是什么
BugBot 是 Cursor 提供的 GitHub App,装到你的仓库上之后,每次有 PR 提交,它自动审一遍,留意见。
类比:一个"24 小时在线、永远不睡觉、永远耐心"的高级工程师 reviewer。
7.2 怎么装
- 访问
https://cursor.com/bugbot。 - 用 GitHub 账号登录授权。
- 选你想装的仓库。
- 完成。
7.3 它会做什么
每次 PR 创建或更新:
- 自动拉取改动。
- 跑 lint / 类型检查。
- 找潜在 bug:未捕获异常、空指针、死循环、安全漏洞。
- 找性能问题:N+1 查询、大文件读全内存、忘了 dispose。
- 找代码质量问题:复杂度太高、重复代码、命名不一致。
- 在 PR 里评论:每条问题加一个 inline comment,说明位置和建议。
7.4 一个真实的 BugBot 评论
🤖 BugBot
Hey! I noticed a potential issue in src/api/login.ts:42
```javascript
const user = await db.users.find({ email });
const matched = bcrypt.compareSync(password, user.password);
// ^^^^
// user 可能是 null
```
如果数据库找不到这个 email,user 会是 null,
读 user.password 会报 TypeError。
建议改成:
```javascript
const user = await db.users.find({ email });
if (!user) return res.status(401).json({ error: 'Invalid credentials' });
const matched = bcrypt.compareSync(password, user.password);
```
附带:这种类型问题已经在你最近 30 天的 5 个文件里出现过,
我开了一个 issue 跟踪:#234
普通人 + BugBot = 比一个团队 reviewer 还细致。
7.5 BugBot 的成本
- 公开仓库免费。
- 私有仓库按用户数收费(约 $5 / 用户 / 月)。
- 详见 cursor.com/bugbot/pricing。
八、综合实战:用多 Agent 一晚上做完三件事
我们把本章学的全部用上,模拟一个"超高效晚上"。
场景
你晚上 8 点回家,今晚目标三件事:
- 修番茄钟在 Safari 上倒计时漂移的 bug。
- 给番茄钟加"白噪音"功能。
- 把网页文案从中性改得更有人情味。
8 点到 8 点 10 分:开三个 Agent
打开 Agents Window,开三个 Agent:
Agent A:
/worktree fix-safari-drift
@File app.js
修一下 Safari 上倒计时每分钟漂移 1-2 秒的 bug。
我猜原因是 setInterval 在后台被节流。请用 requestAnimationFrame + Date.now() 重写计时核心。
Agent B:
/worktree add-white-noise
@File app.js @File index.html
加一个"白噪音"功能:
- 工作模式下可选播放雨声 / 海浪声 / 咖啡馆环境音。
- 用 Web Audio API 合成(不引入外部音频文件)。
- 顶部加一个小图标切换。
- 音量可调。
Agent C(用 Best-of-N 跑文案):
/best-of-n 3
@File index.html
把页面所有文案改得更有人情味,参考"少数派"或"即刻"的语气:
- 不要 "Get Started",而是 "好,开始 25 分钟"
- 不要 "Settings",而是 "调一调"
- 标题不要 "Pomodoro Timer",而是"番茄钟 · 给认真的你"
请保持产品逻辑不变,只改文字。
三个 Agent 同时跑。你切到 Tiled 布局,能看到三个并行进度。
8 点 10 分到 8 点 30 分:边看边吃晚饭
Agent A、B 各自在自己的 worktree 跑。 Agent C 是 Best-of-N,会同时起 3 个子 Agent,9 个进度条同时滚。
你边吃边看,发现:
- Agent A 改完了 → 切过去看 diff,没问题,点"Merge to main"。
- Agent B 改了一半 → 看进度。
- Agent C 出来 3 份方案 → 你挑了"最有少数派味"那份,应用。
8 点 30 分到 8 点 50 分:用 Design Mode 微调
Agent B 改完,但是新加的"白噪音"图标位置你不喜欢。
打开 Cursor 内置浏览器看 localhost。 开 Design Mode。 Shift+拖:框住图标,写"图标移到顶部右上、改成圆角方块、悬停时浅色背景"。 Apply。AI 微调代码,5 秒后浏览器自动刷新。
完成。
8 点 50 分到 9 点:一个 Cloud Agent 兜底
最后给一个 Cloud Agent 一个长任务:
把整个项目跑一遍 ESLint 和 Prettier,自动修复所有可修复的问题。
跑测试,确保没有破坏什么。
然后开一个 PR,标题"chore: lint & format"。
你点"Move to Cloud",关掉电脑,去看电视。 第二天早上一看,PR 已经躺在那里,点 merge 就行。
总结
一个晚上完成 4 件事,每件事质量都不差。如果你独自手敲代码,至少 3 个晚上。
九、多 Agent 时代的"心法"
心法 1:你是指挥官,不是工人
不要试图"和 Agent 一起编程"——你的角色是"指方向、做决策、看进度"。 让 Agent 干,你看。
心法 2:批处理你的"待办"
平时把所有"待办"列在一个清单里。 晚上集中"派发"给多个 Agent,一晚上做完。
心法 3:worktree > 切分支
能用 worktree 就别在主目录切分支。 worktree 让你"上下文不丢",多任务并行。
心法 4:Best-of-N 用在"创意"上
不要每个任务都 Best-of-N(贵)。 但凡是 "我自己也不知道哪个方案最好" 的任务,Best-of-N 一定值。
心法 5:Cloud 跑长任务、本地跑短任务
长任务(> 30 分钟)扔 Cloud。 短任务(< 5 分钟)本地。 不确定的,先本地起一下,30 秒后觉得太长就 Move to Cloud。
心法 6:Design Mode 是前端的解药
所有"用文字说不清"的视觉调整,都用 Design Mode。 节省的时间会让你重新爱上前端。
心法 7:BugBot 是免费的高级 reviewer
个人公开项目装一个,相当于免费请了个高级工程师做 code review。
十、对应章节关系
第四章 Composer/Agent ← 单个 Agent 怎么用
↓
第九章 Agents Window 与多代理 ← 多个 Agent 怎么编排(你在这)
↓
第十章 MCP 与扩展能力 ← 让 Agent 用更多外部工具
本章一图回顾
Cursor 3 的多 Agent 武器库
═══════════════════════════════════════════════
Agents Window ← 你的指挥中心
/worktree ← 独立分支独立目录,互不干扰
/best-of-n ← 多模型 PK 同一任务,挑最好
Cloud Agents ← 云端 24 小时打工,关电脑也跑
Background Agent ← 定时 / 触发,全自动后台
Design Mode ← 圈出 UI,AI 看着改前端
BugBot ← 自动 PR review 机器人
适用场景
─────────────
worktree → 并行做多个不相关任务
best-of-n → 重构 / 创意 / 难题
cloud → 长任务 / 离开电脑后跑
background → 巡检 / 定时 / Webhook 触发
design → 前端微调
bugbot → PR 自动 review
7 条心法
─────────────
1. 你是指挥官
2. 批处理待办
3. worktree > 切分支
4. Best-of-N 用在创意上
5. Cloud 跑长 / 本地跑短
6. Design Mode 是前端解药
7. BugBot 装一个不亏
下章预告
多 Agent 之后,下一个层次是"让 Agent 用更多外部工具"。下一章 第十章 MCP 与扩展能力 我们讲 MCP(Model Context Protocol)——它让 Cursor 能调用 Notion、Figma、Slack、GitHub、Postgres、Stripe 等真实工作工具。配 10 个普通人优先安装的 MCP 推荐。