Skip to content
rookie_L
Go back

前端大任务太大时,我会怎样拆给多个 Claude Code

Edit page

当一个前端重构任务涉及几十个组件、几百处类型变更以及国际化文案替换时,单会话的 Agent 很快就会遇到瓶颈:

解决超大工程任务的必然出路是多 Agent 并行协同(Multi-Agent Orchestration)

但多 Agent 绝不是简单地打开三个终端同时敲命令。如果缺乏物理隔离与契约设计,多个 Agent 在同一个文件夹里互相覆盖文件、抢占 Git 锁,制造出的冲突排查成本将远远超过单人编写。


拓扑架构:主从协调模式(Coordinator-Worker Pattern)

在前端工程中,最稳定的多 Agent 协作模式是主从协调拓扑,而不是松散的对等网络:

┌────────────────────────────────────────────────────────┐
│             Coordinator Agent (主协调实例)             │
│   负责:通读需求、定义契约接口 (Schema)、切分子任务    │
└────────────────────────────────────────────────────────┘

     ┌───────────────────────┼───────────────────────┐
     ▼ 分发独立子任务         ▼ 分发独立子任务         ▼ 分发独立子任务
┌──────────────┐        ┌──────────────┐        ┌──────────────┐
│   Worker A   │        │   Worker B   │        │   Worker C   │
│ UI 组件样板   │        │ 数据适配与请求 │        │ 单元测试套件   │
│ (Branch A)   │        │ (Branch B)   │        │ (Branch C)   │
└──────────────┘        └──────────────┘        └──────────────┘
     │                       │                       │
     └───────────────────────┼───────────────────────┘
                             ▼ 统一汇聚合并
┌────────────────────────────────────────────────────────┐
│            集成验收:运行全量检查与冲突消除             │
└────────────────────────────────────────────────────────┘

物理隔离利器:Git Worktrees 隔离工作区

如果你在同一个目录的不同终端里同时启动两个 Claude Code,它们会发生极其灾难的冲突:A 刚写完文件还没提交,B 跑了一次 git checkout,导致 A 的修改全部报废。

正确的工程做法是使用 Git Worktree 为每个 Worker 派发完全独立的物理文件树:

# 1. 在主仓库基于 main 分支拉出两个隔离的工作区
git worktree add ../blog-worker-ui -b feat/comment-ui
git worktree add ../blog-worker-api -b feat/comment-api

# 2. 在终端窗口 1 打开 UI 工作区并启动 Claude Code
cd ../blog-worker-ui && claude

# 3. 在终端窗口 2 打开 API 工作区并启动 Claude Code
cd ../blog-worker-api && claude

每个 Worktree 拥有完全独立的工作目录与分支头指针,但底层共享同一个 .git 对象库。两个 Agent 可以同时读写、同时执行构建,互不干扰。


实战:契约先行(Contract-First)任务拆分法

以“为博客增加带本地持久化的点赞与评论卡片”为例,我们来看 Coordinator 是如何调度的:

阶段一:由主 Agent 固化 TypeScript 契约

在主分支上,Coordinator 仅生成一份不可变的类型契约文件 src/types/comments.ts

export type CommentItem = {
  id: string;
  postId: string;
  authorName: string;
  content: string;
  createdAt: string;
  likes: number;
};

export interface CommentStorageAdapter {
  list(postId: string): Promise<CommentItem[]>;
  create(
    postId: string,
    payload: Omit<CommentItem, "id" | "createdAt" | "likes">
  ): Promise<CommentItem>;
  like(commentId: string): Promise<number>;
}

将该提交推送到基线分支后,Worker 们的任务便拥有了铁一样的锚点。

阶段二:并行分派无交集的子任务

两个 Worker 在各自的 Worktree 中飞速编码、各自运行校验,完全没有等待和阻塞。


阶段三:集成合流与冲突消解

当 Worker A 和 Worker B 分别在其分支完成提单后,回到主工作区进行集成:

cd /Users/jt-lee/Desktop/blog-project

# 合并 UI 分支
git merge feat/comment-ui

# 合并 API 分支
git merge feat/comment-api

# 唤醒主 Agent 执行集成测试与类型连通性审查
claude -p "运行 pnpm astro check 与 pnpm build,检查 CommentView 与 localCommentAdapter 连接处是否存在类型不兼容,并完成组装。"

主 Agent 此时只需要编写胶水代码(将 Adapter 传给 UI),运行一次类型检查确认全绿,整个大需求就以极高的质量完成了交付。

最后清理临时工作区:

git worktree remove ../blog-worker-ui
git worktree remove ../blog-worker-api

结语

多 Agent 协作的瓶颈从来不是算力,而是架构切分的清晰度

契约先行确立公理、Git Worktree 打造安全沙箱、主从模式统一调度合流——掌握这套工业级的多 Agent 协同体系,你一个人就能调度一支井然有序的“AI 前端突击队”。


Edit page

Previous Post
同一个前端任务,我如何在终端、Web 和 CI 之间接着做
Next Post
什么是认知架构?从线性 Chain 到有状态 Agent 图