Cursor 智能体现在可以控制自己的计算机了

Jonas Nelle & Alexi Robbins产品

智能体的能力上限取决于其运行环境。如果无法实际使用自己正在构建的软件,智能体的能力就会触顶。

在过去几个月里,我们先在内部解决了这个问题,为智能体提供了独立的虚拟机,内置完整的开发环境,并赋予它们测试自己更改的能力,以及生成产出物(视频、截图和日志),这样你就可以快速评估它们的工作成果。

今天,我们正式推出新版的 Cursor cloud agents,你可以在任何工作的地方使用它们,包括 Web、移动端、桌面应用、Slack 和 GitHub。Cloud agents 会自动适配你的代码库,并生成带有演示产出物、可直接合并的 PR。你也可以接管智能体的远程桌面,直接使用已修改的软件并亲自进行编辑,而无需在本地检出分支。

自从我们从 Tab 自动补全转向与智能体同步协作以来,这是我们构建软件方式最大的一次变革。现在,我们在 Cursor 合并的 PR 中,已有超过 30% 是由在云端沙盒中自主运行的智能体创建的。

现在有 30% 的内部已合并 PR 由云端智能体创建现在有 30% 的内部已合并 PR 由云端智能体创建

更高层次的自主性

本地 Agent 便于你快速开始生成代码,但它们很快就会互相冲突,并与你一起争夺电脑资源。Cloud agents 通过为每个 agent 提供一个独立的虚拟机(VM)来消除这一限制,这样你就可以并行运行大量 agent。

Cloud agents 还可以在各自的沙箱环境中直接构建并操作软件,使它们能够不断迭代,直到验证自己的输出结果,而不是把第一次尝试的结果就交给你。下面的视频展示了我们在增强计算机使用方面早期研究中的一个概念验证原型。

你可以看到 agent 在浏览器中访问网页、操作电子表格等工具、解读数据并做出决策,以及在复杂的 UI 环境中排查并解决问题。

agent 在其 VM 中录制了自己与桌面应用交互的全过程。

在 Cursor 中使用云端 agent

过去一个月里,我们在内部使用云端 agent,这改变了我们构建软件的方式。相比把任务拆成很多小块并对 agent 进行微管理,我们现在会委派更复杂、更宏大的任务,让它们自主运行。

以下是我们使用云端 agent 的几种方式:

构建新功能

我们使用云端 agent 帮助我们构建了 plugins,并最近在 Cursor Marketplace 上线了它们。下面是我们使用的其中一个提示词:

对于某个 plugin 页面中展示的每个组件,我们希望包含一个指向其源码的链接。对于 skills、commands、rules 和 subagents——对应的是 .md 文件。对于 hooks,对应的是 hooks.json。对于 mcps,对应的是 .mcp.json 或定义它的 manifest。随着我们为一个 plugin 建立所有组件的索引,请记录源码文件,并基于底层的 github url 构造指向该文件的链接。将这些信息暴露给前端,并让前端使用这个图标链接到 github。请在本地使用 https://github.com/prisma/cursor-plugin 进行测试

agent 实现了这个功能,然后录制了自己导航到导入的 Prisma plugin,并点击每个组件来验证 GitHub 链接。

agent 录制了自己点击按钮来验证它们是否链接到正确的源码文件。

在本地测试时,agent 会临时绕过控制 marketplace 页面展示的 feature flag,在推送前再还原。它会基于 main 做 rebase,解决合并冲突,并压缩为单个提交。

复现漏洞

我们在 Slack 中启动了一个云端 agent,并给出提示词:“Please triage and explain this vulnerability to me in great detail”,随后附上了一个剪贴板窃取漏洞的描述。agent 运行结束后,会在 Slack 线程中回复一条总结,说明它完成了什么。

云端 agent 复现漏洞

agent 构建了一个 HTML 页面,通过暴露的 API 利用该漏洞。它启动了一个后端服务器,在本地托管该演示页面,并在 Cursor 的应用内浏览器中加载该页面。

视频记录展示了完整的攻击流程:agent 将测试用的 UUID 复制到系统剪贴板,在 Cursor 的浏览器中加载演示页面,并点击一个按钮来窃取并显示该 UUID。它还截取了一张展示剪贴板成功被窃取的屏幕截图,并将演示用的 HTML 文件提交到仓库中。

agent 录制了自己走完整个攻击流程,以演示该漏洞。

处理快速修复

我们让云端 agent 将静态的 "Read lints" 标签替换为由 lint 结果驱动的动态标签。它实现了在诊断为 0 时显示 "No linter errors",在有 N 条诊断时显示 "Found N errors",并使用与现有 CSS 匹配的样式。

agent 在 Cursor 桌面应用中测试了两种情况:一个包含多个类型错误的文件,以及一个没有错误的干净文件。视频记录展示了 agent 验证干净文件拥有一个展开的分组,并显示 “No linter errors”。

agent 录制了自己验证 lint 标签修复是否正确实现的过程。

测试 UI

我们启动了一个云端 agent 来检查 cursor.com/docs 上的一切是否正常工作。它花了 45 分钟,对我们的文档站点进行了完整的走查。agent 提供了一个总结,列出了它测试过的所有功能,包括侧边栏、顶部导航、搜索、复制页面按钮、反馈对话框、目录以及主题切换。

agent 录制了自己在 Cursor 文档站点上测试 UI 的过程。

现在,既然 agent 可以处理大部分实现工作,我们发现开发者的角色更多是在设定方向,以及决定要发布什么功能。

接下来

我们正迈向一个自动驾驶代码库的未来,在这个未来里,Agent 会合并 PR、管理发布和监控生产环境。我们将从一个开发者使用 Agent 来创建 diff 的世界,走向一个由 Agent 端到端交付已测试功能的世界。

要真正实现这一转变,需要持续改进工具链、模型以及交互模式。我们当前的重点,是协调多 Agent 之间的协同工作,并构建能够从过往运行中学习、随着经验积累而变得更高效的模型。

前往 cursor.com/onboard 开始体验,看看 Agent 如何自动完成配置并录制演示。或者在文档中了解更多信息。

归档于: 产品

作者s: Jonas Nelle & Alexi Robbins

Cursor 智能体现在可以控制自己的计算机了 · Cursor