今天,我们在 Cursor 中推出 Projects。Projects 让你能够承接更大规模的工作,比如一个功能、一次迁移或一个完整的应用。它能在数月的工作中保持上下文,将任务委派给数千个子智能体,并在无需提示的情况下执行周期性工作。
今年 2 月,我们阐述了关于软件开发第三纪元的愿景,在那个纪元里,成群的智能体将承接完整的工作。Projects 正是这一愿景的具体实现。通过向上提升一层抽象,它让开发者从管理智能体中解放出来,转而直接指挥工作本身。
在 Cursor,我们已经使用 Projects 数月之久,完成了诸如运行涉及数百个 PR 的迁移、保持设计系统一致性,以及发布 Projects 本身等工作。我们发现它是一个显著的生产力倍增器:新用户合并的 PR 数量增加了 30%,而主要使用 Projects 的用户合并的 PR 数量则是六倍。
通过一个协调者指挥数千个智能体
你通过与 Project 的协调者智能体对话来管理它。协调者本身不编写代码,而是指挥其他编写代码的智能体。由于它负责委派而非执行,因此它永远不会被阻塞,并且始终能对指令做出响应。
有三项核心能力让 Projects 成为可能:
默认云端运行,需要时本地运行。 一个 Project 运行在它自己的计算机上,因此合上你的笔记本电脑也不会让它停止。这让一个 Project 能够并行运行比你的笔记本电脑所能支持的更多子智能体。当某些东西需要在你的机器上测试时,协调者会启动一个本地智能体在那里运行它。
共享上下文。 你不应该每次开始一项任务时都要重新让一个智能体熟悉情况。每个 Project 都维护一组文件,这些文件会在其智能体所使用的每一台云端和本地机器之间同步。智能体会添加研究内容和产物,以及它们对代码库的了解和你偏好的工作方式。例如,如果一个智能体弄清楚了如何测试某个服务,那么未来每一个智能体都可以使用这些说明。这些上下文会随着 Project 一起成长,使协调者随时间推移变得更加高效。
订阅。 协调者可以监视一个 Slack 频道、按计划运行,或跟踪你所有的 PR,修复 CI,并在它们打开或合并时采取行动。这样它就能根据检测到的信号采取行动,而无需等待你来提示它。
我们在 Cursor 如何使用 Projects
三种模式涵盖了我们工程师使用 Projects 所做的大部分事情。
功能开发
大多数工程师会为一个规模可观的工作创建一个 Project。一个功能通常始于智能体研究系统,并将它们了解到的情况记录为共享上下文。随后,协调者会制定计划,并派出智能体并行实现和测试该功能的不同部分。
随着每一轮反馈,Project 会逐渐了解你的架构和偏好。当功能准备好试用时,协调者可以在你的电脑上启动一个智能体并在本地运行它。功能发布后,同一个 Project 可以监控日志并处理 bug 报告,同时掌握最初决策背后的完整上下文。
迁移
Project 对于那种容易开始、却难以完成的迁移尤其有用。在 Cursor,我们曾用它们来采用新框架,并在数百个 PR 中替换样式系统。
你与协调者一起制定一套安全的方案,然后它会在整个代码库中逐步应用这套方案。早期,你会仔细审查每一个 PR。随着修复逐渐站得住脚,你的审查会减少,而协调者会自行持续推进整个迁移。
园艺
Project 非常适合处理那些永远不会真正结束的工作,比如维护代码质量或监控回归。你可以让协调者跟进新的 PR、监听 Slack 中的 bug 报告,或按计划运行,一旦有新工作出现它就会采取行动。
我们团队的一位工程师就是这样运行一个设计系统 Project 的。起初,这位工程师会审查每一处修复,并纠正它做错的地方。现在,协调器会扫描每一个新的 PR,提取属于设计系统的组件,并且每当同一个错误出现两次时,就添加一条 lint 规则。这个 Project 有望每天处理 20 到 100 个 PR,因此协调器负责组织工作,而工程师则在需要关注的地方进行检查。
开始使用 Projects
Projects 目前处于 beta 阶段,从今天起向所有用户逐步推出。从左侧导航栏启动一个 Project,描述你想要构建的内容,协调器就会接手处理。它最适合那些会跨越单次对话而长期存在的工作,无论是一个包含多个 PR 的功能、一次迁移,还是你希望在你离开时也能处理的任务。
Today we're launching Projects in Cursor. Projects lets you take on larger bodies of work, such as a feature, a migration, or a full app. It maintains context over months of work, delegates tasks to thousands of subagents, and performs recurring work without being prompted.
In February we outlined our vision for a third era of software development, where fleets of agents take on entire bodies of work. Projects is the concrete implementation of that vision. By moving up a level of abstraction, it frees developers from managing agents and lets them direct the work itself.
At Cursor, we've been using Projects for several months, doing work such as running migrations of a few hundred PRs, keeping our design system consistent, and shipping Projects itself. We've found it to be a substantial productivity multiplier: new users merge 30% more PRs while users who primarily use Projects merge six times as many.
Direct thousands of agents through one coordinator
You oversee a Project by chatting with its coordinator agent. The coordinator doesn't write code itself but directs other agents that do. Because it delegates rather than executes, it is never blocked and is always responsive to direction.
There are three core capabilities that make Projects possible:
Cloud by default, local when needed. A Project runs on its own computer, so closing your laptop doesn't stop it. This lets a Project run more subagents in parallel than your laptop could support. When something needs testing on your machine, the coordinator spins up a local agent to run it there.
Shared context. You shouldn't have to onboard an agent every time you start a task. Each Project maintains a set of files that sync across every cloud and local machine its agents use. Agents add research and artifacts, along with what they learn about the codebase and how you prefer work to be done. If one agent figures out how to test a service, for example, every future agent can use those instructions. This context grows with the Project, making the coordinator more effective over time.
Subscriptions. The coordinator can watch a Slack channel, run on a schedule, or follow all your PRs, fixing CI and acting when they open or merge. This way it can take action based on signals it detects, without waiting for you to prompt it.
How we use Projects at Cursor
Three patterns cover most of what our engineers do with Projects.
Feature work
Most engineers create a Project for a substantial body of work. A feature usually starts with agents researching the system and recording what they learn as shared context. The coordinator then creates a plan and sends agents to implement and test different parts of it in parallel.
With each turn of feedback, the Project learns your architecture and preferences. When the feature is ready to try, the coordinator can start an agent on your computer and run it locally. After it ships, the same Project can monitor logs and handle bug reports with the full context behind the original decisions.
Migrations
Projects are especially useful for migrations that are easy to start and difficult to finish. At Cursor, we've used them to adopt new frameworks and replace styling systems across hundreds of PRs.
You work with the coordinator to establish a safe approach, then it applies that approach incrementally across the codebase. Early on, you review each PR closely. As the fixes hold up, you review less, and the coordinator keeps working through the migration on its own.
Gardening
Projects are great for handling work that never really ends, such as maintaining code quality or watching for regressions. You can tell the coordinator to follow new PRs, listen for bug reports in Slack, or run on a schedule, and it acts whenever new work appears.
One engineer on our team runs a design-system Project this way. At first, the engineer reviewed each fix and corrected the ones it got wrong. Now the coordinator scans every new PR, extracts components that belong in the design system, and adds a lint rule whenever it sees the same mistake twice. The Project is on track to touch 20 to 100 PRs a day, so the coordinator organizes the work and the engineer checks in where attention is needed.
Get started with Projects
Projects are available in beta and rolling out to all users starting today. Start a Project from the left hand nav, describe what you want built, and the coordinator takes it from there. It works best on work that will outlive a single chat, whether that's a feature with several PRs, a migration, or a job you want handled while you're away.