Cursor 3 深度实战:多 Agent 并行如何重新定义编程范式——从 Glass 界面到 Composer 2 自研模型的全链路架构解析
引言:IDE 不再是主角
2026 年 4 月 2 日,Cursor 发布了代号"Glass"的 3.0 版本。这不是一次常规的功能迭代,而是一次产品哲学的根本性转向——传统代码编辑器被降级为备选界面,取而代之的是一个以 Agent 为中心的智能体管理控制台。
如果你从 VS Code 时代过来的,你可能会觉得这很不可思议:文件树消失了,取而代之的是提示词输入框;左侧栏不再是目录结构,而是 Agent 列表——本地跑的、云端跑的、从 GitHub PR 触发的,全部集中在一个界面。
这背后折射出的是整个 AI 编程工具领域的结构性变革:开发者角色的核心能力,正在从"写代码"转向"编排智能体"。
本文将从架构设计、核心功能、实战操作、竞品对比、性能优化五个维度,对 Cursor 3 做一次全链路的深度解析。不是泛泛而谈的"新功能介绍",而是真正帮你理解它为什么这么设计、怎么用才能发挥最大价值、以及它对程序员职业未来的影响。
一、从 VS Code Fork 到 Agent 控制台:Cursor 3 的架构革命
1.1 历史:从代码补全到 Agent 编排
Cursor 2022 年诞生时,本质是 VS Code 的一个 Fork,核心卖点是在编辑器里集成了 AI 代码补全。那时候的 AI 编程工具,本质上还是"增强版自动补全"——你打几个字符,它猜你接下来要写什么。
到了 2025 年,Composer 功能的加入让 Cursor 有了质变——AI 不再只是补全,而是可以根据自然语言指令生成跨文件的多步代码修改。但 Composer 仍然是串行的:一个任务,一个 Agent,一步步执行。
Cursor 3 做的事情,是把"一个 Agent 干活"变成了"一组 Agent 协作"。这不是量的提升,而是范式的转变。
1.2 Glass 界面的设计哲学
Cursor 3 的内部代号叫"Glass"(玻璃),这个名字本身就透露了设计意图:透明、全景、一览无余。
传统 IDE 的核心抽象是"文件"。你看到的是文件树,操作的是文件,思考的粒度也是文件。Glass 的核心抽象是"Agent"——你看到的是智能体列表,操作的是任务,思考的粒度是工作流。
具体来说,Glass 界面的核心组件包括:
| 组件 | 传统 IDE 对应 | Glass 中的角色 |
|---|---|---|
| 左侧栏 | 文件树 | Agent 列表(本地/云端/远程) |
| 主区域 | 代码编辑器 | Agent Workspace + Agent Tabs |
| 底部面板 | 终端/输出 | Agent 日志 + Diff 视图 |
| 顶部输入 | 命令面板 | 提示词输入框 |
切换方式也很直觉:Cmd+Shift+P → Agents Window 进入 Glass 界面,Cmd+Shift+E 回到传统编辑器。两种模式可以同时打开、无缝切换。
1.3 多仓库工作区:Agent 的操作空间
Cursor 3 默认支持多仓库工作区。一个 Agents Window 里可以同时打开多个代码仓库,Agent 可以跨仓库操作——比如一个 Agent 在后端仓库修改 API 接口,另一个 Agent 在前端仓库同步更新类型定义。
这在实际工作中非常重要。现代项目很少有单仓库就能搞定的,微服务架构下一个改动经常涉及 3-5 个仓库。以前你需要在多个 VS Code 窗口之间切来切去,现在在一个 Agents Window 里就能统一管理。
# 多仓库工作区的实际操作
# 1. 打开主仓库
cursor .
# 2. 在 Agents Window 中添加关联仓库
# 点击左侧栏底部的 "+ Add Repo" 按钮
# 或者使用命令面板:Cmd+Shift+P → "Add Folder to Workspace"
# 3. Agent 可以直接跨仓库引用文件
# 例如在提示词中:
# "在后端仓库 src/api/users.ts 修改 /users 接口的返回格式,
# 同时在前端仓库 src/types/user.d.ts 更新对应的 TypeScript 类型定义"
二、Agents Window:多 Agent 并行的核心引擎
2.1 Agent Tabs:你的"开发团队"
Agents Window 最核心的功能是 Agent Tabs。每个 Tab 就是一个独立的 Agent 会话,有自己的上下文、模型选择和执行环境。
操作方式极其直观:
# 新建 Agent Tab
Cmd+T(和浏览器新建标签页一样的快捷键)
# 切换 Tab
Cmd+1 / Cmd+2 / Cmd+3 ...
# 分屏排列
右键 Tab → Split Right / Split Down
# 关闭 Tab
Cmd+W
分屏的时候可以把 Tab 拖成网格布局,一屏看四个 Agent 同时干活。这不是花哨的 UI 功能,而是实实在在的生产力倍增器——想象一下,你同时在监控四个 Agent:一个写后端接口、一个改前端组件、一个跑测试、一个做 Code Review。
2.2 实战场景:并行 Agent 编排
让我用一个真实的场景来说明 Agent Tabs 的价值。
假设你需要给一个电商系统添加"商品收藏"功能,涉及后端 API、数据库迁移、前端组件、E2E 测试四个方面。在传统的串行模式下,你可能需要按顺序一个个来,整个过程可能需要半天。
在 Cursor 3 中,你可以这样做:
Tab 1 — 后端 Agent:
在 src/api/favorites.ts 创建收藏相关的 RESTful API:
- POST /api/favorites 添加收藏
- DELETE /api/favorites/:id 取消收藏
- GET /api/favorites 获取收藏列表(支持分页)
使用 Express + Prisma,参考 src/api/cart.ts 的代码风格
Tab 2 — 数据库 Agent:
创建 Prisma migration 添加 Favorite 模型:
- id: Int (自增主键)
- userId: Int (外键关联 User)
- productId: Int (外键关联 Product)
- createdAt: DateTime (默认 now())
添加唯一约束:userId + productId 组合唯一,防止重复收藏
生成 migration 并执行
Tab 3 — 前端 Agent:
在 src/components/ 创建 FavoriteButton.vue 组件:
- 收藏状态切换(实心/空心爱心图标)
- 点击时调用对应 API
- 加载状态显示
- 错误处理(toast 提示)
在商品详情页和商品列表页集成该组件
Tab 4 — 测试 Agent:
等待其他 Agent 完成后,编写 E2E 测试:
- 使用 Playwright
- 测试添加收藏、取消收藏、收藏列表展示
- 等待后端 API 和前端组件就绪后再开始
四个 Agent 并行工作,你只需要在 Agent Workspace 里监督进度、审查输出。整个过程从半天缩短到 30 分钟以内。
2.3 /worktree:安全的沙盒隔离
并行 Agent 最怕什么?互相冲突。两个 Agent 同时修改同一个文件,Git 冲突就来了。
Cursor 3 的解决方案是 /worktree 命令。它基于 Git 的 worktree 功能,为每个 Agent 创建一个独立的代码检出分支:
# 在 Agent 中使用 /worktree
# Agent 会自动创建一个隔离的 Git worktree
# 所有修改都在独立的目录中进行,不会影响主工作区
# 实际操作示例
# Agent 1: /worktree feature/favorites-backend
# → 在 .git/worktrees/feature-favorites-backend/ 中工作
# → 修改后端文件,不会影响其他 Agent
# Agent 2: /worktree feature/favorites-frontend
# → 在 .git/worktrees/feature-favorites-frontend/ 中工作
# → 修改前端文件,同样完全隔离
worktree 的底层原理:
主工作区: /project/ ← HEAD: main
Worktree 1: /project/.worktrees/agent-1/ ← HEAD: agent/favorites-backend
Worktree 2: /project/.worktrees/agent-2/ ← HEAD: agent/favorites-frontend
每个 worktree 共享同一个 .git 目录但有不同的 HEAD 指针和索引,所以它们看到的文件状态是互相独立的。Agent 在自己的 worktree 中自由修改,完成后你可以选择 merge 或 cherry-pick 到主分支。
2.4 /best-of-n:模型竞标择优
这是 Cursor 3 最让我兴奋的功能之一。/best-of-n 允许同一个任务在多个 AI 模型中并行运行,每个模型都在独立的 worktree 中工作,最后你对比挑选最佳的结果。
# 使用 /best-of-n 的典型场景
# 你需要实现一个复杂的排序算法,不确定哪种实现最好
输入提示词:
"实现一个支持多字段排序的通用排序函数,要求:
1. 支持升序/降序
2. 支持嵌套字段(如 user.profile.age)
3. 性能优化:大数据集(10万条)下排序时间 < 100ms
4. 完整的 TypeScript 类型支持"
然后使用 /best-of-n 3
→ Cursor 3 同时启动 3 个 Agent
→ Agent 1: 使用 Composer 2 模型
→ Agent 2: 使用 Claude Opus 4.6
→ Agent 3: 使用 GPT-5.4
→ 每个都在独立的 worktree 中实现
→ 你在 Agent Workspace 中并排对比三个实现
→ 挑选最优的那个 merge 到主分支
这就像在做一个内部 Hackathon——多个"参赛者"同时解决同一个问题,你当裁判。区别是,这个 Hackathon 几分钟就结束了。
2.5 Cloud Handoff:本地与云端的无缝流转
Cursor 3 另一个杀手级功能是 Cloud Handoff(云交接)。你可以把一个正在本地运行的 Agent 会话无缝迁移到 Cursor 云端,关上电脑它继续跑;需要审查代码时再拉回本地。
# Cloud Handoff 工作流
1. 本地启动一个耗时任务
"重构整个认证模块,从 JWT 迁移到 Session-based 认证"
2. 下班了,Handoff 到云端
点击 Agent 面板中的 "Handoff to Cloud" 按钮
→ Agent 在云端继续执行
→ 云端 Agent 会生成截图和变更摘要
3. 回到家,从云端拉回
在手机或另一台电脑上查看进度
或者回到工位后 "Pull from Cloud" 拉回本地
→ 在本地编辑器中审查代码变更
Cloud Handoff 解决了一个很现实的问题:AI Agent 执行复杂任务可能需要十几分钟甚至更长时间,你不能一直等着。之前你只能保持电脑不关、Cursor 不关,现在可以放心地交接给云端。
底层架构上,Cloud Handoff 的实现涉及:
- 会话状态序列化:将 Agent 的完整上下文(对话历史、已修改文件、执行状态)打包
- 云端执行环境:Cursor 云端的隔离沙盒,可以访问你的代码仓库(需要授权)
- 变更截图生成:云端 Agent 执行完成后自动截图,方便你在手机上快速审查
- 双向同步协议:确保本地和云端不会产生冲突的变更
三、Design Mode:前端开发的新范式
3.1 直接"指"给 AI 看
Design Mode 是 Cursor 3 在 Agents Window 中新增的功能,专门针对前端/UI 开发场景。
传统的工作流是:看到 UI 问题 → 切到代码 → 找到对应组件 → 修改代码 → 切回浏览器刷新 → 还是不对 → 再来一遍。
Design Mode 的工作流是:在浏览器中直接点击/圈选 UI 元素 → 添加注释"这里字体太大"、"这个按钮应该居中" → Agent 直接理解你的意图并修改代码。
# Design Mode 的操作流程
1. 在 Agents Window 中点击 "Design Mode" 按钮
2. Cursor 会打开一个浏览器预览窗口
3. 直接在 UI 上操作:
- 点击元素 → 高亮并显示组件信息
- 添加文本注释:"这个卡片需要圆角和阴影"
- 框选区域 → "这里需要添加一个筛选器"
4. Agent 接收精确的视觉上下文,直接修改代码
5. 浏览器自动热更新,即时查看效果
3.2 Design Mode 的技术实现
Design Mode 背后的关键技术是 DOM 元素定位 + 视觉注释的映射:
// Design Mode 的核心映射逻辑(概念模型)
interface DesignAnnotation {
// DOM 元素的 CSS 选择器路径
selector: string;
// 组件文件路径和行号(通过 source map 反查)
componentLocation: {
filePath: string;
line: number;
column: number;
};
// 用户的视觉注释
annotation: string;
// 截图上下文
screenshot: Buffer;
}
// Agent 接收到的提示词会自动包含:
// 1. 精确的组件位置信息
// 2. 用户的具体修改要求
// 3. 周围 UI 的视觉上下文
这比纯文本描述效率高太多了。以前你需要写"在 src/components/ProductCard.tsx 第 45 行的 div 容器上添加 rounded-lg shadow-md",现在只需要在 UI 上点一下说"加圆角和阴影"。
四、Composer 2:Cursor 的自研编码模型
4.1 为什么要自研模型?
Cursor 3 发布前的三个月,公司经历了一场被媒体称为"生死存亡"的危机。Claude Code 的年收入在一年内飙升到 25 亿美元,超过 Cursor 的 20 亿美元;开发者公开表示要"脱 Cursor 投 Claude";Cursor 的投资人发现其投资组合中的初创公司也在考虑解约。
危机的根源之一是:Cursor 的核心编码能力完全依赖第三方模型(主要是 Anthropic 的 Claude)。这意味着 Cursor 的产品天花板受制于模型提供商,而且在定价上没有主动权。
Composer 2 就是在这个背景下诞生的——基于月之暗面开源的 Kimi K2.5 打造的 Cursor 自研编码模型。Cursor 声称,Composer 2 在其自家的 CursorBench 测试中得分 61.3,高于 Claude Opus 4.6 的 58.2。
4.2 Composer 2 的定价策略
Composer 2 的定价是它最大的杀手锏:
| 模型 | 输入价格(/百万 token) | 输出价格(/百万 token) |
|---|---|---|
| Composer 2 | $0.50 | $2.50 |
| Claude Opus 4.6 | ~$15 | ~$75 |
| GPT-5.4 | ~$10 | ~$30 |
成本差了一个数量级。当你同时跑 5-10 个并行 Agent 时,这个差距就是每天几百美元和几千美元的区别。
4.3 Composer 2 的技术架构
Composer 2 基于 Kimi K2.5 开源模型,Cursor 在其基础上做了深度微调:
Kimi K2.5 (基座模型)
├── MoE (混合专家) 架构
│ └── 推理时仅激活约 220 亿参数
│ └── 降低推理成本,提升吞吐量
├── Cursor 专用微调
│ └── 代码编辑任务特化训练
│ └── 跨文件修改能力强化
│ └── Git 操作和项目结构理解
└── CursorBench 评估体系
└── 多文件编辑准确率
└── 上下文理解深度
└── 指令遵循能力
MoE 架构的关键优势:不是所有参数同时参与计算,而是根据输入动态选择最相关的"专家"子网络。这意味着 Composer 2 在保持大模型能力的同时,推理成本可以大幅降低——这对并行 Agent 场景至关重要。
4.4 实际体验:Composer 2 vs Claude Opus
我做了几个实际对比测试:
测试 1:单文件复杂逻辑实现
任务:实现一个支持事务的内存 KV 存储,带过期时间和 Watch 机制
Composer 2:生成的代码结构清晰,事务实现用了 MVCC 方案,Watch 机制用了事件订阅模式。编译通过,单测覆盖了核心路径。
Claude Opus:实现更完善,额外考虑了死锁检测和超时回滚,代码注释更详细。但在简单场景下差异不大。
测试 2:跨 5 个文件的重构
任务:将一个单体 Express 应用拆分为 Router → Service → Repository 三层架构
Composer 2:正确理解了三层架构的意图,文件拆分合理,依赖注入模式使用正确。但在边界情况(如中间件迁移)上有遗漏。
Claude Opus:拆分更彻底,连错误处理中间件也做了分层,但生成的代码量更大。
测试 3:前端组件开发
任务:实现一个带虚拟滚动的多选 Tree 组件
Composer 2:虚拟滚动实现简洁高效,Tree 展开收起动画流畅。TypeScript 类型完整。
Claude Opus:额外实现了搜索过滤和拖拽排序功能(超出需求),虚拟滚动的实现更健壮。
结论:在大多数日常开发场景下,Composer 2 的表现已经足够好,性价比极高。只有在特别复杂或需要超越指令范围的场景下,Claude Opus 的优势才明显。而 /best-of-n 功能让你可以两者都用、择优选取。
五、从 Slack 到手机:Agent 的全渠道接入
5.1 统一侧边栏:所有 Agent 的控制中心
Cursor 3 的侧边栏不只是显示本地的 Agent。它会从 Cursor 的所有界面中提取 Agent 会话:
- 本地桌面 Agent:在 Cursor 桌面端直接启动的
- 云端 Agent:Handoff 到 Cursor 云端的
- Web 客户端 Agent:在浏览器版 Cursor 中启动的
- 移动端 Agent:通过手机浏览器启动的
- Slack 触发的 Agent:通过 Slack 消息触发的自动化任务
- GitHub PR 触发的 Agent:PR 创建/更新时自动启动的 Code Review Agent
- Linear 触发的 Agent:从项目管理工具 Linear 启动的
所有这些 Agent 都显示在同一个侧边栏中,你可以统一查看进度、审查输出、决定下一步操作。
5.2 Automations:事件驱动的 Agent 触发
Cursor 3 之前,Cursor 在 3 月 5 日发布了 Automations 系统,这是 Agent 全渠道接入的基础:
# Automations 配置示例
# GitHub PR 自动 Code Review
automation:
name: "PR Code Review"
trigger:
type: github_event
event: pull_request
action: opened
agent:
model: claude-opus-4.6
prompt: |
对这个 PR 进行全面 Code Review:
1. 代码质量和可维护性
2. 潜在的性能问题
3. 安全隐患
4. 测试覆盖是否充分
用中文输出 Review 意见
# Slack 消息触发 Agent
automation:
name: "Slack Bug Fix"
trigger:
type: slack_message
channel: "#bugs"
pattern: "bug:"
agent:
model: composer-2
prompt: |
根据 Slack 消息描述的 Bug,在代码仓库中定位问题并修复。
修复后运行测试确保没有引入新问题。
# 定时任务
automation:
name: "Daily Dependency Check"
trigger:
type: cron
schedule: "0 9 * * 1-5" # 工作日每天 9 点
agent:
model: composer-2
prompt: |
检查项目依赖是否有安全更新:
1. 运行 npm audit
2. 检查是否有 critical/high 级别的漏洞
3. 如果有,尝试自动修复并创建 PR
这意味着 Agent 不再需要你手动启动。代码提交了,Agent 自动审查;Bug 报告来了,Agent 自动定位;该更新依赖了,Agent 自动检查。
5.3 移动端工作流
Cloud Handoff + 移动端访问的组合,创造了全新的工作模式:
早上 9:00 — 在办公室用 Cursor 桌面端启动一个重构任务
↓ Handoff to Cloud
上午 10:00 — 开会时用手机浏览器查看 Agent 进度
↓ 审查截图,确认方向正确
中午 12:00 — 午餐时在手机上启动另一个 Agent(从 Linear 创建)
↓
下午 2:00 — 回到工位,从云端拉回两个 Agent 的结果
↓
下午 2:30 — 审查代码,merge 修改
六、竞品格局:四条路线的 Agent 编排之争
6.1 四大玩家的不同押注
AI 编程工具的 Agent 编排层已经成为一个独立的产品类别,目前有四条不同的技术路线:
| 产品 | 核心理念 | 编排层位置 | 代表特征 |
|---|---|---|---|
| Cursor 3 | Agent 控制台 + IDE | IDE 内部(Agent 优先) | Glass 界面、worktree 隔离、Cloud Handoff |
| Claude Code | 终端优先 | 独立于 IDE 的 CLI | SWE-bench 80.8%、命令行编排、100万 Token 上下文 |
| OpenAI Codex | 无处不在 | 多端统一 | 桌面应用 + CLI + VS Code 扩展 + 云界面 |
| Google Antigravity | 双视图平等 | IDE 内部(Agent/Editor 并重) | 管理器界面 + 编辑器视图、Windsurf 团队打造 |
6.2 Cursor vs Claude Code:编排层之争
这是当前最关键的竞争。两者的根本分歧在于:编排层应该在 IDE 内部还是外部?
Cursor 的逻辑:
- Agent 不可避免会犯错,犯错时你需要直接查看和修改代码
- IDE 提供的代码导航、搜索、重构工具在审查 Agent 输出时不可或缺
- 将编排层和编辑器集成在一起,减少上下文切换
Claude Code 的逻辑:
- 终端是开发者最自然的工作环境,不需要学习新界面
- CLI 的可组合性更强,可以和 git、docker、ssh 等工具无缝协作
- 100 万 Token 的超长上下文意味着 Agent 更少犯错,审查的需求更低
我的判断:短期内 Cursor 的方案对大多数开发者更友好,因为"审查代码"还是刚需。长期来看,随着 Agent 准确率提升,编排层可能会脱离 IDE 独立存在——就像今天我们很少直接 SSH 上服务器,都是在控制面板上操作。
6.3 Cursor 3 vs TRAE SOLO:免费策略的冲击
字节跳动的 TRAE SOLO 是另一个值得关注的竞争者。它的核心策略是"核心功能完全免费",这在中国市场极具杀伤力。
TRAE SOLO 的 SOLO 模式实现了 PRD → 架构 → 编码 → 测试 → 部署的全流程闭环。对于个人开发者和初创团队,免费 + 全流程的吸引力很大。
但 Cursor 3 在几个关键维度上仍有优势:
- 并行能力:TRAE SOLO 目前还不支持真正的多 Agent 并行
- 生态成熟度:Cursor 的 MCP 插件生态、Automations 系统更完善
- Cloud Handoff:云端流转能力是 TRAE SOLO 目前不具备的
- 模型选择:Cursor 支持在 Composer 2、Claude、GPT 之间切换
七、实战最佳实践:用 Cursor 3 构建真实项目
7.1 项目初始化:设置规则和约束
在开始项目之前,先用 /generate rules 为项目设定清晰的约束,这能帮助 Agent 理解项目的边界和规范:
# 使用 /generate rules 自动生成项目规则
# 或者手动创建 .cursor/rules 文件
# .cursor/rules.md 示例
## 项目规范
### 技术栈
- 前端:React 19 + TypeScript 5.6 + Tailwind CSS 4
- 后端:Node.js 22 + Express 5 + Prisma 6
- 数据库:PostgreSQL 18
- 测试:Vitest + Playwright
### 编码规范
- 强制使用 ES6+ 语法,禁止使用 var
- 组件使用函数式组件 + Hooks,禁止类组件
- API 响应格式统一:{ code: number, data: T, message: string }
- 错误处理使用自定义 AppError 类,不要直接 throw Error
- 所有函数必须有 TypeScript 返回类型注解
### 项目结构
- src/api/ — API 路由和控制器
- src/services/ — 业务逻辑层
- src/repositories/ — 数据访问层
- src/middleware/ — Express 中间件
- src/types/ — TypeScript 类型定义
- src/utils/ — 工具函数
### 禁止事项
- 不要使用 any 类型
- 不要在组件中直接调用 API,必须通过 service 层
- 不要使用 console.log,使用 winston logger
7.2 提示词工程:像写 Mini Spec 一样
模糊的提示只会得到模糊的代码。Cursor 3 的提示词应该像一份简短的技术规格说明:
# ❌ 差的提示
"写一个登录功能"
# ✅ 好的提示
"使用 React 19 + TypeScript 实现 OAuth2.0 登录组件,要求:
1. 支持 Google 和 GitHub 两种 OAuth 提供商
2. 登录成功后重定向到 /dashboard
3. 支持 '记住我' 功能(使用 localStorage 存储 refresh token)
4. 组件需要支持暗黑模式(使用 Tailwind CSS 的 dark: 变体)
5. 错误处理:网络错误、OAuth 回调错误、Token 过期
6. 参考 src/components/auth/SignupForm.tsx 的代码风格和项目结构
7. 不依赖第三方 OAuth 库,使用 fetch 直接调用后端 /api/auth/* 接口"
7.3 TDD + Agent:先写测试,再让 Agent 通过
这是我觉得最实用的 Agent 编排模式:
# 第一步:你手动编写测试(作为 Agent 的约束)
// src/api/favorites.test.ts
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import request from 'supertest';
import { app } from '../app';
import { prisma } from '../db';
describe('Favorites API', () => {
let userId: number;
let productId: number;
beforeAll(async () => {
// 创建测试用户和商品
const user = await prisma.user.create({ data: { email: 'test@test.com' } });
const product = await prisma.product.create({ data: { name: 'Test Product', price: 99.9 } });
userId = user.id;
productId = product.id;
});
it('should add a favorite', async () => {
const res = await request(app)
.post('/api/favorites')
.send({ userId, productId });
expect(res.status).toBe(201);
expect(res.body.data.userId).toBe(userId);
});
it('should not add duplicate favorite', async () => {
const res = await request(app)
.post('/api/favorites')
.send({ userId, productId });
expect(res.status).toBe(409);
});
it('should list favorites with pagination', async () => {
const res = await request(app)
.get('/api/favorites')
.query({ userId, page: 1, pageSize: 10 });
expect(res.status).toBe(200);
expect(res.body.data.items).toBeInstanceOf(Array);
expect(res.body.data.total).toBeGreaterThan(0);
});
it('should remove a favorite', async () => {
const fav = await prisma.favorite.findFirst({ where: { userId, productId } });
const res = await request(app)
.delete(`/api/favorites/${fav!.id}`);
expect(res.status).toBe(200);
});
afterAll(async () => {
await prisma.favorite.deleteMany();
await prisma.product.deleteMany();
await prisma.user.deleteMany();
});
});
# 第二步:启动 Agent,让它实现代码使测试通过
"根据 src/api/favorites.test.ts 中的测试用例,实现收藏功能:
1. 创建 Prisma 模型和 migration
2. 实现 src/api/favorites.ts 路由
3. 实现 src/services/favorites.service.ts 业务逻辑
4. 实现 src/repositories/favorites.repository.ts 数据访问层
5. 运行测试,确保所有测试通过
如果测试失败,根据错误信息修复代码,直到全部通过"
这种"测试先行 + Agent 实现"的模式有几个好处:
- 测试是 Agent 的"紧箍咒",防止它乱来
- 你可以通过测试结果快速判断 Agent 输出的质量
- 测试失败信息可以直接反馈给 Agent 形成闭环
7.4 复杂重构:多 Agent 分工协作
以一个实际的重构场景为例——将单体 Express 应用拆分为微服务:
# Agent 1 — 架构设计 Agent
模型:Claude Opus 4.6(需要更强的架构思维)
任务:
"分析当前 Express 单体应用的模块依赖关系,设计微服务拆分方案:
1. 绘制模块依赖图
2. 确定服务边界(按业务领域拆分)
3. 定义服务间通信协议(gRPC vs REST vs 消息队列)
4. 规划数据库拆分策略(每个服务独立数据库)
5. 输出拆分计划文档到 docs/microservice-migration.md"
# Agent 2 — 用户服务 Agent
模型:Composer 2(性价比高,任务相对明确)
任务:
"根据 docs/microservice-migration.md 中的方案,提取用户相关功能为独立服务:
1. 创建 services/user-service/ 目录
2. 迁移 src/api/auth/* 和 src/services/user.service.ts
3. 使用独立的 PostgreSQL 数据库
4. 实现 gRPC 服务接口
5. 编写 Dockerfile 和 k8s 部署配置"
# Agent 3 — 订单服务 Agent
模型:Composer 2
任务:
"根据 docs/microservice-migration.md 中的方案,提取订单相关功能为独立服务:
1. 创建 services/order-service/ 目录
2. 迁移 src/api/orders/* 和 src/services/order.service.ts
3. 使用独立的 PostgreSQL 数据库
4. 实现 gRPC 服务接口和消息队列消费者
5. 编写 Dockerfile 和 k8s 部署配置"
# Agent 4 — API Gateway Agent
模型:Composer 2
任务:
"创建 API Gateway 服务:
1. 使用 Kong 或自研 Node.js Gateway
2. 配置路由规则:/api/users/* → user-service, /api/orders/* → order-service
3. 实现认证中间件(JWT 验证)
4. 实现限流和熔断
5. 编写 Dockerfile 和 k8s 部署配置"
四个 Agent 并行工作,使用 /worktree 隔离,架构设计 Agent 先跑完(因为它决定了其他 Agent 的方向),后三个并行执行。整个过程可能只需要 1-2 小时,而传统方式可能需要 1-2 周。
八、MCP 插件生态与企业管理
8.1 MCP 结构化内容支持
Cursor 3 对 MCP(Model Context Protocol)的支持进行了升级,现在支持结构化内容输出。这意味着第三方工具的输出不再只是纯文本,而是可以包含表格、代码块、链接等富文本格式。
// MCP 工具输出的结构化内容示例
{
"type": "structured",
"content": {
"summary": "数据库迁移检查结果",
"tables": [
{
"name": "users",
"status": "✅ 已迁移",
"rows": 15420
},
{
"name": "orders",
"status": "⚠️ 需要手动处理",
"rows": 89532,
"note": "包含外键引用,需要先迁移 users 表"
}
],
"action_items": [
"运行 ALTER TABLE orders ADD CONSTRAINT fk_user...",
"更新 seed 数据脚本"
]
}
}
8.2 企业团队控制
Cursor 3 为企业用户增加了多项管控功能:
- 审计日志:现在直接显示具备可读性的目录组名称(之前是数字 ID)
- 云端 Agent 密钥管理:团队管理员可以限制密钥的创建和修改权限
- "Made with Cursor" 标识:管理员可以全局禁用,普通用户可在设置中单独配置
- 第三方插件默认关闭:未设置时第三方插件导入处于禁用状态,需要管理员显式开启
8.3 自托管云 Agent
3 月份 Cursor 还推出了自托管云 Agent 功能,允许财富五百强企业在其内部基础设施上运行 Cursor 智能体。这对有数据合规要求的企业(如金融、医疗)是刚需——代码不能出内网,但 Agent 的能力又需要。
九、性能优化:让并行 Agent 跑得更快
9.1 大文件 Diff 渲染优化
Cursor 3 大幅优化了大文件 Diff 的渲染速度,同时降低了内存占用。这在并行 Agent 场景下特别重要——当你同时审查 3-4 个 Agent 的代码变更时,Diff 渲染的性能直接决定了你的审查效率。
优化手段包括:
- 虚拟化 Diff 视图:只渲染可见区域的差异行
- 增量计算:只在文件修改时重新计算 Diff,不是每次打开都全量计算
- Web Worker 卸载:将 Diff 计算移出主线程,避免阻塞 UI
9.2 Agent 智能化提升
Cursor 3 的 Agent 在长时间运行任务的监控上做了改进:
# 新增的 Await 工具
# Agent 可以等待后台 Shell 命令完成,而不是盲目轮询
# 之前(轮询模式,低效)
Agent: 运行 npm run build
Agent: (3 秒后)构建完了吗?检查输出...
Agent: 还没完?再等一下...
Agent: (反复检查,浪费 token)
# 现在(Await 模式,高效)
Agent: 运行 npm run build
Agent: await("Ready on http://localhost:3000")
→ 等待特定输出出现才继续,不浪费 token
此外,浏览器自动化也做了优化——当 DOM 交互不可靠时,Agent 会自动退回到基于屏幕截图的坐标点击方案,大幅减少报错循环。
9.3 资源管理器子代理缓存
Agent 启动子代理(如文件搜索、代码分析)时的启动时间通过缓存得到了显著优化。在连续操作中,子代理的响应速度提升了约 60%。
十、深度思考:Cursor 3 对程序员意味着什么
10.1 从"写代码"到"审代码"的角色转变
Cursor 3 的核心设计假设是:开发者会将大部分时间用于调度智能体、审查输出及决定发布哪些任务。
谷歌 CEO 皮查伊最近公开的数据也佐证了这个趋势——谷歌 75% 的新代码已经由 AI 生成。程序员的职业角色正在从"手动写代码"转向"审核和优化 AI 生成的代码"。
这听起来像是坏消息,但我认为这是好事。因为:
- "审代码"本来就是高级工程师的核心技能——Code Review 的质量直接决定项目质量
- AI 生成代码后,人类可以专注于架构设计和业务逻辑——这些才是真正需要创造力的地方
- 编程的门槛降低了,但工程的上限提高了——更多人能参与开发,但做出高质量系统仍然需要经验
10.2 编排能力成为新的核心竞争力
在 Cursor 3 的世界里,你能同时编排多少个 Agent、每个 Agent 分配什么任务、如何审查和合并它们的输出——这些能力直接决定了你的开发效率。
这和从"手写 SQL"到"设计数据仓库"的转变是一样的。工具帮你做了执行层面的工作,你的价值在于决策和编排。
10.3 VS Code 时代的终结?
Cursor 3 从 VS Code Fork 而来,但现在正在和 VS Code 的设计理念渐行渐远。如果以 Agent 为中心的界面最终胜出,VS Code 扩展的重要性将一路降低。
微软显然不会坐视不管。GitHub Copilot 已经在向 Agent 方向演进,但它的底层仍然绑定在 VS Code 的编辑器范式上。能否完成从"编辑器 + AI 辅助"到"Agent 编排 + 编辑器备用"的转型,将决定微软在 AI 编程时代的地位。
JetBrains 同样面临压力。传统 IDE 在编程智能与重构工具上的竞争优势,在 Agent 主导的开发流程中将大幅缩水——当 Agent 帮你重构代码时,IDE 的重构工具就不再是差异化优势了。
10.4 最后的代码编辑器?
Cursor 3 押注的理念是:监督智能体比编辑文件更重要。如果这个判断是正确的,那么我们可能正在使用人类记忆中的最后一代以"代码编辑"为核心的 IDE。
这不是说 IDE 会消失,而是它不再是开发者的主要工作界面——就像 SSH 终端还在,但已经不再是运维人员的主要操作界面。控制面板接管了决策,终端变成了调试工具。
十一、总结与展望
Cursor 3 不仅仅是一个代码编辑器的更新,它是整个 AI 编程范式从"辅助编码"到"Agent 编排"转变的标志性产品。
核心变化:
- 界面范式:从文件树到 Agent 列表,从编辑器到控制台
- 工作模式:从串行编码到并行 Agent 协作
- 模型策略:从完全依赖第三方到自研 Composer 2 + 多模型可选
- 运行环境:从纯本地到本地 + 云端无缝流转
实际建议:
- 立即升级 Cursor 3,即使你暂时不用 Agent Workspace,传统编辑器模式也完全保留
- 从小事开始:先在 Agent Workspace 中处理日常的 Bug 修复和小功能开发
- 善用 /worktree 和 /best-of-n:这是并行 Agent 的安全网和加速器
- 尝试 TDD + Agent 模式:先写测试,让 Agent 实现,这是最可控的 Agent 编排方式
- 关注 Composer 2 的成本优势:在并行场景下,token 成本是乘法级的
未来展望:
- Agent 的准确率会继续提升,"审查"的压力会逐步降低
- 编排层会从 IDE 内部逐渐独立出来,成为跨工具的统一控制面
- 模型选择会成为基础设施决策,就像选择数据库一样
- 开发者的核心竞争力将从"代码实现"转向"系统设计 + Agent 编排"
四十年来的软件开发范式一直由代码编辑器定义。Cursor 3 认为监督智能体比编辑文件更重要。如果这个判断是对的,我们正在见证一个时代的结束和另一个时代的开始。
本文基于 Cursor 3.0 正式版(2026 年 4 月发布)的功能和公开资料撰写。Cursor 更新频繁,部分功能可能在后续版本中有调整。