Claude Code新增了一项名为Projects的测试版功能:只需把一个大型开发目标交给Claude,它就能并行推进工作。协调者(负责规划和分派工作的Claude)会把目标拆分为多个任务,并为每个任务单独启动一个线程。每个线程都是独立的Claude Code会话,在云端各自的Git分支上运行。这项功能的目的,是省去大型工作过去所需的手动协调,包括配置子智能体、同时开着多个终端会话,以及手动管理worktree。Projects正在面向Pro和Max订阅用户逐步开放。

与普通会话有何不同

Projects由三个部分组成:

组成部分 作用
Project 作为工作空间、持续进行的一个对话
协调者 在对话中把目标拆分为任务,并分派所有任务
线程 负责一个任务的独立Claude Code会话,在云端自己的Git分支上运行

最大的变化在于,过去需要人借助多个终端会话、子智能体和worktree手动完成的编排工作,现在由协调者接手。

由于线程在云端运行,合上笔记本电脑后它们仍会继续工作,用户也可以在手机上查看进度。如果某个任务需要只有本地电脑才有的工具,例如Chrome DevTools,可以只把这一个线程拉到本地机器上继续。

这项功能适合跨越多个会话或多个代码仓库的目标。两个例子:从一个分布在多个代码仓库中的应用里移除已停止维护的软件包;或者修改一个API端点,同时更新后端、Web前端和移动应用。

中央的协调者节点把任务分派给各自位于平行分支轨道上的工作单元

▲ 协调者向线程分派工作

创建项目

在桌面端或网页端打开Claude标签页,选择“New project”。设置界面需要填写三项内容:名称、目标,以及项目可以操作的代码仓库或文件夹。

以一个性能下滑的网站为例:

  • 名称: Site Performance
  • 目标: 在移动端和桌面端都把p75 LCP降到2.5秒以下、CLS降到0.1以下
  • 代码仓库: 营销网站和API

LCP(Largest Contentful Paint)衡量页面主要内容显示出来所需的时间,CLS(Cumulative Layout Shift)衡量页面加载时布局跳动的程度。两者都属于衡量页面体验的指标集Core Web Vitals。“p75”指75%的访问能达到该数值。把目标写成可衡量的数值,Claude就有了明确的完成标准。

项目创建后会进入主对话,协调者会打招呼并建议下一步操作。

从问题报告到8个并行线程

在这个例子中,发给协调者的请求直接描述了症状:营销网站的Core Web Vitals已连续一个月下滑,移动端p75 LCP达到4.1秒,CLS达到0.28,用户不断反映页面跳转很慢。请求最后只有一句“调查并修复”。

Claude检查了两个代码库,追踪瓶颈,然后给出了一份按优先级排序的计划:

  1. 客户端页面跳转
  2. 未经优化的图片
  3. 页面内容缓存
  4. 脚本延迟加载
  5. 网页字体预加载
  6. 拆分JavaScript包
  7. 为横幅预留空间
  8. 压缩静态资源

开发者批准计划后,Claude一次启动了8个工作线程,每个线程负责一项修复。每个线程都以卡片形式显示,上面有实时计时和对应的Git分支名称。

指挥线程

线程可以完全自主运行,但用户始终能看到全部情况并加以控制。

  • 查看: 点击任意线程卡片,即可看到Claude的实时终端输出、正在修改的代码以及当前步骤。
  • 调整: 直接在线程中输入指令,可以调整其优先级,或立即停止。在这个例子中,图片优化线程收到的指令是把首屏主图保留为优先加载图片。
  • 解除阻塞: Threads侧边栏会显示哪些工作线程正在运行,哪些因等待用户输入而被阻塞。

线程完成任务后,会自动在GitHub上创建拉取请求,或在发布前先征求用户同意。在这个例子中,修复内容包括为34个图片标签明确指定宽度和高度。之后,线程会继续跟踪自己创建的拉取请求:监控持续集成(CI,即每次变更都会自动运行的构建和测试)检查,修复失败的测试,并回应审阅者的意见。协调者的动态会汇总所有拉取请求的状态,已批准的变更可以直接在对话中合并。

Projects从目标到合并的工作流程 否 是 设定目标和代码仓库 协调者提出计划 批准计划线程并行运行 线程创建拉取请求 CI通过? 修复失败的测试 在对话中合并
▲ Projects从目标到合并的工作流程

示例项目的最终结果如下:

指标 修复前 目标 修复后
移动端p75 LCP 4.1秒 2.5秒以下 2.2秒
桌面端p75 LCP 未说明 2.5秒以下 1.4秒
CLS 0.28 0.1以下 0.08

网页线框图整齐落位,旁边的柱形显示性能逐步改善

▲ 修复后的性能指标

Library:所有线程共享的产出物

Projects设有Library标签页,用来存放Claude生成的文档等产出物。在这个例子中,Claude被要求撰写一份复盘报告,总结已解决的问题以及修复前后的数据。它生成了一份报告,其中的柱状图对比了移动端LCP、桌面端LCP和CLS。

Library相当于项目长期使用的共享文件夹。除了生成的文档,还可以存放上传的设计稿和技术规格。当前和今后的所有线程都能读取并更新其中的内容,因此后续任务可以从前面任务积累的上下文开始。

用连接器和例行任务持续检查

连接器可以把项目接入外部开发和监控工具。在Environment设置中启用Sentry连接器后,Claude就能直接查询真实用户的遥测数据和错误日志。

例行任务用于添加按计划重复执行的工作。示例只用一条指令就完成了设置:每天下午5点从Sentry拉取营销网站的Core Web Vitals和错误日志,如有指标退化,就调查并修复。当每日检查发现性能退化时,Claude会启动一个专门的调查线程,并创建一个包含修复方案、可供审阅的草稿拉取请求。这样,事后排查就变成了在后台运行的主动检查。

控制用量和成本

每个线程都是一个完整的Claude Code会话,因此并行运行多个线程时,消耗套餐用量上限的速度远快于单个对话。Claude Code团队的建议可以归结为以下几项设置:

设置 建议 原因
协调者的effort Low 它的职责是分派和规划,不需要深度推理
线程默认模型 Sonnet 5.5 足以应对范围明确的任务
困难线程 Opus 5.5 更大的模型只留给复杂工作
行为规则 限制并发线程数,编码前先提交大纲 防止线程意外地一下子增多

模型和effort级别可以在General设置中分别为协调者和线程设定,也可以选择更轻量的Haiku 4.5。把协调者调到Low以上,似乎很少能明显改善协调效果,主要只会增加token成本。线程数上限之类的规则写在与协调者的对话中即可,示例把并发数限制在5个线程。

需要全局适用的规范,可以放进项目记忆。设置中的MEMORY.md文件用来保存编码规范和偏好,当前和今后的所有线程都会继承。该字段最多可输入16,000个字符。

上手步骤

与一条提示词就能完成的小任务相比,Projects在跨代码仓库、需要多个步骤的目标上似乎更能发挥作用。第一次使用时,可以按以下步骤进行:

  1. 选一个跨越多个代码仓库或会话的目标,并写成可衡量的数值。
  2. 连接所有相关代码仓库,先审阅协调者的计划再批准。
  3. 把协调者的effort设为Low,把线程默认模型设为Sonnet 5.5,并设定并发线程数上限。
  4. 把团队的编码规范写进MEMORY.md,让所有线程都遵守。
  5. 如果需要反复执行同一项检查,就用连接器和例行任务实现自动化。

Projects仍处于测试阶段,功能和界面可能会变化。线程越多,用量消耗越快,因此在交给它更大的目标之前,最好先从一个小而明确的目标开始。