跳到主内容
快讯直播
AI智模界
教程

用 Claude Code Projects 管多智能体小队

把一支云端智能体小队跑起来,大致长这样:仓库里放一份需求文档、一份接口契约、几张任务卡;在 Claude Code 的 Projects 里建一个项目、连上仓库;然后为每张任务卡开一条独立会话。几个 Agent 在各自的沙箱里并行改代码,各自推分支、各自写一份交付报告;最后用一条"汇总会话"只读报告和 diff,产出可以直接贴回 Word 或 Excel 的交付说明。

以一个常见需求为例:给订单页加"导出 CSV"。一次流程跑完,你能拿到这些东西——

  • 3~5 个命名规范的分支与 PR,每个只动自己那一块代码;
  • 每个任务一份 docs/reports/T-xxx.md
  • 一份面向非技术同事的交付摘要,可以直接粘进文档或幻灯片;
  • 一条清晰可回滚的路径:回滚哪个分支、影响哪些功能。

Projects 的具体入口、命名和可用范围会随官方迭代变化,以官方文档当前版本为准。下面讲的是不管界面怎么改都成立的做法。

前置条件清单

动手之前,把这几样准备好,后面会顺很多:

1. 一个 Git 托管账号(GitHub、GitLab 等均可),仓库已有 main 分支,并开启分支保护,禁止直接推主干。

2. 一个可用的 Claude 账号,且账号具备云端会话 / Projects 的使用权限。具体套餐与地区可用性以官方页面为准。

3. 本地装好 Claude Code CLI。即使主力在云端跑,本地留一份用于复现问题、验证契约。

4. 仓库自带运行环境声明:package.jsonpyproject.tomlgo.mod 之类,以及一条能跑通的测试命令。

5. 一份需求文本。放在 Word、Excel、飞书文档里都行,但最终要转成纯文本进仓库。

6. 约定好的分支命名规则,例如 feat/T-002-export-api

步骤 1:把"小队编制"写进仓库

云端 Agent 每次都是从零开始读仓库,所以规则必须落在文件里,不能只存在于你的脑子里。在仓库根目录建 CLAUDE.md

```markdown

项目约定

命令

  • 安装依赖:npm ci
  • 跑测试:npm test
  • 跑单个子集:npm test -- src/server/export

硬性规则

  • 不允许修改 main 分支,所有改动走功能分支。
  • 每个任务一张任务卡,位于 docs/tasks/
  • 跨模块的接口以 contracts/ 下的文件为准,不得擅自改动契约。
  • 完成一个任务后必须写 docs/reports/<任务ID>.md,包含:改动文件清单、验证命令与结果、未请求的额外改动、遗留风险。
  • 不要做任务卡之外的重构、格式化或依赖升级。

```

再建一个任务卡目录 docs/tasks/,每张卡一个文件:

```markdown

T-002 后端导出接口

目标

提供 GET /api/orders/export,按筛选条件返回 CSV 流。

允许改动

  • src/server/export/**
  • src/server/routes/index.ts(仅新增一行路由注册)

禁止改动

  • src/server/auth/**
  • src/server/billing/**

契约

contracts/export.openapi.yaml

验收标准

  • npm test -- src/server/export 全绿
  • 大数据量(10 万行)下内存占用不随行数线性增长

交付物

  • 分支 feat/T-002-export-api
  • docs/reports/T-002.md

```

任务卡写得好不好,直接决定并行能不能成立。"允许改动"和"禁止改动"两栏是关键,它把冲突概率压到了架构层面。

步骤 2:先冻结契约,再开并行

这是整套流程里容易被跳过的一步。多智能体并行失败,绝大多数不是模型能力问题,而是接口没定死:前端 Agent 以为返回的是 JSON,后端 Agent 直接吐了 CSV 流,两边都"通过了自己的测试"。

所以在派单之前,先单独用一个会话(或者干脆手工)把契约写出来:

```yaml

contracts/export.openapi.yaml

paths:

/api/orders/export:

get:

parameters:

  • name: from

in: query

schema: { type: string, format: date }

  • name: status

in: query

schema: { type: string, enum: [paid, pending, refunded] }

responses:

"200":

content:

text/csv:

schema: { type: string }

"403":

description: 无导出权限

```

契约文件一旦提交,就进入"只读模式"。任何 Agent 想改契约,必须先在报告里提出来,由人来裁决,而不是自己改掉。

步骤 3:在 Projects 里建项目、连仓库

到 Claude Code 的 Projects 界面新建一个项目,关联目标仓库。需要配置的东西通常是这几类:

```text

项目名称:order-export

关联仓库:<org>/<repo>

默认分支:main

环境初始化:npm ci

健康检查:npm test

环境变量:按需注入(密钥放平台的环境变量里,不要写进仓库)

```

环境初始化命令要写清楚。云端沙箱是干净的,Agent 不会"记得"你本机装过什么。让它自己去猜依赖怎么装,浪费的是你的时间。

项目建好后,建议先用一条只读会话验证连接是否正常:

```text

请只读地做一些检查,不要修改任何文件:

1. 列出仓库根目录结构;

2. 跑一次 npm ci && npm test,报告结果;

3. 告诉我 src/server/export 目录当前是否存在。

```

步骤 4:一张任务卡开一条会话

并行的单位是"会话",不是"消息"。一个任务一条会话,做完就关,不要在同一个会话里连续塞三个不相关的需求——那样上下文必然互相污染,Agent 会把前一个任务的假设带进后一个任务。

派单指令可以直接引用任务卡,避免重复粘贴:

```text

你负责 docs/tasks/T-002.md 这一张任务卡。

要求:

  • 先完整读一遍 CLAUDE.md 和任务卡,再动手。
  • 只允许改动任务卡里列出的路径。
  • 契约文件 contracts/export.openapi.yaml 只读,不得修改。
  • 完成后运行 npm test -- src/server/export,把真实输出贴进报告。
  • 提交到分支 feat/T-002-export-api,并写 docs/reports/T-002.md。
  • 如果有任何地方与任务卡冲突,停下来在报告里说明,不要自行决定。

```

按同样方式再开三条会话:T-001 前端导出按钮与状态、T-003 权限与审计日志、T-004 测试与文档。四条会话同时跑,互不干扰。

步骤 5:上下文隔离靠三件事

隔离不是靠"提醒 Agent 别乱看",而是靠环境本身:

路径隔离。 每个任务在自己的分支或工作区里干活。如果要在本地复现,用 worktree 而不是切来切去:

```bash

git fetch origin

git worktree add ../repo-T-002 -b feat/T-002-export-api origin/main

git worktree add ../repo-T-003 -b feat/T-003-permission origin/main

```

契约隔离。 多个任务之间共享的只有 contracts/ 目录,其余代码各改各的。共享面越小,冲突越少。

会话隔离。 一条会话只装一个任务的上下文。不要把 A 的构建日志贴给 B 看,也不要让 B "顺便参考一下 A 的思路"——那不是协作,那是污染。

步骤 6:结果汇总,只读 diff 和报告

四条会话跑完后,先做机械核对,再让汇总会话做归纳。机械核对的命令是确定的:

```bash

git fetch --all

每个分支相对 main 改了哪些文件

git diff --stat main...feat/T-002-export-api

git diff --stat main...feat/T-003-permission

有没有多个分支动了同一个文件

git diff --name-only main...feat/T-002-export-api | sort > /tmp/a.txt

git diff --name-only main...feat/T-003-permission | sort > /tmp/b.txt

comm -12 /tmp/a.txt /tmp/b.txt

```

comm -12 输出的就是重叠文件,有重叠就说明任务拆分需要调整。

然后开一条汇总会话,只喂报告和 diff 统计,不要喂全部源码:

```text

下面是四个任务的交付报告和 diff 统计。请只基于这些材料工作,

不要猜测未提供的内容。

请输出:

1. 每个任务的状态(完成 / 部分完成 / 阻塞),并给出依据;

2. 分支之间的文件冲突清单;

3. 一份变更说明,分三段:交付内容、影响面与回滚方式、遗留风险;

4. 需要人工确认的问题列表。

输出纯 Markdown,不要用表格。

```

把上下文限制在"报告 + diff 统计",汇总质量反而更稳。

步骤 7:用 Office 入口串起需求与交付

很多团队的真实入口不是仓库,而是一份 Excel 台账或一份 Word 需求。可以这样接:

需求进。 在 Word 里写清需求后,另存为纯文本,人工整理成任务卡,再提交进 docs/tasks/。不要让 Agent 直接读带样式的文档——格式噪声会带来歧义。

台账管。 在 Excel 里维护一张任务台账,字段建议:任务 ID、任务卡路径、负责会话、分支名、状态、验收人、报告路径。这张表是给人看的,不参与自动化。

交付出。 把步骤 6 生成的变更说明直接粘回 Word 或幻灯片,发给非技术同事。因为是纯 Markdown,粘过去基本不用重排。

Claude 的 Office 侧集成具体支持哪些文档类型、哪些账号可用,以官方页面为准。原则是一样的:文档负责给人看,仓库负责给 Agent 看,中间用纯文本转换。

步骤 8:合并与收尾

按任务卡逐条验收,不要因为"报告里说全绿"就放行——以 CI 的实际结果为准。合并顺序建议:先合契约和公共部分,再合后端,最后合前端。合并完主干跑一次全量测试,再关掉对应的云端会话。

常见坑与排错

两个 Agent 改了同一个文件。 症状是合并时反复冲突。根因通常是任务拆分按"功能"而不是按"路径"。回到步骤 1,把"允许改动"写成目录白名单,重叠的文件提取成独立任务先行完成。

Agent 顺手做了重构。CLAUDE.md 里明确禁止,并要求报告里单列"未请求的额外改动"。看到这一栏非空,就先回滚那部分再评审。

云端环境跑不起来。 通常是初始化命令没写、依赖没锁定、或者需要密钥。把安装命令写进项目配置,密钥走平台环境变量。让 Agent 自己猜怎么装依赖,只会得到一堆"我已修复"的错误结论。

会话越跑越慢、结论越来越飘。 一条会话里塞了太多历史。任务做完就开新会话,长任务拆成两段:先出方案,确认后再动手。

汇总说"全部通过",但 CI 挂了。 报告是 Agent 的自述,CI 是事实。把 CI 状态作为唯一放行依据。

从文档粘贴过来带了一堆不可见字符。 先在纯文本编辑器里过一遍,再去建任务卡。

下一步建议

跑顺一两次之后,可以考虑这几件事:

1. 把任务卡做成模板,用一个脚本按任务 ID 批量创建分支和 worktree,减少手工步骤。

2. 在 CI 里加一条检查:任何 PR 如果改了 contracts/ 却没有对应的评审标记,直接失败。

3. 给每个任务卡加"预估影响文件数",用来判断这个任务适不适合并行。

4. 复盘一次:记录哪些任务并行成功、哪些必须串行。通常涉及同一张数据库表迁移、同一份配置文件的改动,串行比并行省事。

5. 把步骤 6 的汇总提示词固化成文件,放进仓库,让汇总行为可版本化、可复现。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。