介绍 Projects
今天,我们在 Cursor 中推出 Projects。Projects 让您能够承接更大规模的工作,比如一项功能、一次迁移,或是一个完整的应用。它能在长达数月的工作中维持上下文,向成千上万个子智能体委派任务,并无需提示就自动完成周期性工作。
今年二月,我们阐述了对软件开发第三时代的构想:由成群的智能体承接完整的工作。Projects 正是这一构想的具体实现。通过提升一个抽象层级,它让开发者不必再费心管理智能体,而是直接指挥工作本身。
在 Cursor,我们已经使用 Projects 数月,用它完成了涉及数百个 PR 的迁移、保持设计系统的一致性,以及交付 Projects 本身等工作。我们发现它能显著放大生产力:新用户合并的 PR 数量提升了 30%,而主要使用 Projects 的用户,合并量达到原来的六倍。
通过一个协调智能体指挥数千个智能体
您通过与 Project 的协调智能体对话来管理 Project。协调智能体本身不写代码,而是指挥其他负责写代码的智能体。由于它只负责委派而不亲自执行,因此永远不会被阻塞,始终能够响应你的指令。
有三项核心功能让 Projects 成为可能:
默认在云端运行,需要时切换到本地。 每个 Project 都运行在自己的计算机上,所以合上笔记本电脑也不会中断它。这让 Project 能够并行运行的子智能体数量远超你的笔记本电脑所能支撑的规模。当某项工作需要在你的机器上测试时,协调智能体会启动一个本地智能体在本地运行。
共享上下文。 你不该每次开始任务都要重新给智能体交代一遍背景。每个 Project 都会维护一组文件,并在其智能体所使用的所有云端和本地机器之间同步。智能体会不断补充研究成果和产出物,以及它们对代码库的理解和你偏好的工作方式。例如,某个智能体摸清了如何测试某项服务后,之后的每个智能体都能直接沿用这些说明。这份上下文会随着 Project 一同积累,让协调智能体越用越高效。
订阅。 协调智能体可以监听 Slack 频道、按计划运行,或跟踪你所有的 PR,在 PR 打开或合并时修复 CI 并采取行动。这样,它就能根据检测到的信号主动行动,无需等你发出提示。
我们在 Cursor 内部如何使用 Projects
我们的工程师使用 Projects 的方式,大多可以归为以下三种模式。
功能开发
大多数工程师会为一项体量较大的工作创建一个 Project。功能开发通常从智能体调研系统开始,并把了解到的内容记录下来,作为共享上下文。随后,协调智能体制定规划,并派出多个智能体并行实现和测试其中的不同部分。
在一轮轮反馈中,Project 会逐渐熟悉你的架构与偏好。当功能可以试用时,协调智能体可以在你的电脑上启动一个智能体,在本地运行。功能上线后,同一个 Project 可以监控日志、处理缺陷报告,并完整掌握当初各项决策背后的上下文。
迁移
Projects 尤其适合那些开头容易、收尾困难的迁移工作。在 Cursor,我们就用它跨越数百个 PR 完成了新框架的引入和样式系统的替换。
您先与协调智能体一起确定一套稳妥的方案,再由它在整个代码库中逐步落实。初期,您会仔细审查每个 PR;随着修复经受住考验,审查可以逐渐放松,协调智能体则会自行推进整个迁移。
园丁式维护
Projects 非常适合处理那些永远不会真正结束的工作,比如维护代码质量、留意回归问题。您可以让协调智能体跟进新的 PR、监听 Slack 中的缺陷报告,或按计划定时运行,一旦有新工作出现,它就会自动着手处理。
我们团队有一位工程师就是这样运行一个设计系统 Project 的。起初,他会审查每一处修复,并纠正其中出错的地方。如今,协调智能体会扫描每个新 PR,提取出属于设计系统的组件,并在同一个错误出现第二次时添加一条 lint 规则。这个 Project 有望达到每天处理 20 到 100 个 PR 的规模,由协调智能体统筹工作,工程师只需在需要关注的环节介入。
开始使用 Projects
Projects 现已进入 beta 阶段,从今天起逐步向所有用户开放。在左侧导航栏中新建一个 Project,描述您想要构建的内容,剩下的交给协调智能体。它最适合那些一次 chat 无法完结的工作,无论是涉及多个 PR 的功能开发、一次迁移,还是您希望在离开时自动推进的任务。