忘川风华录苏秦喵角色解析:技能机制、阵容搭配与实战强度评测
2026-07-09 3389576
2026-07-09 0
在 四模式选型指南 里,我提过:大重构 / 实验性改动,用 Agent + worktree,别直接在 main 上改。
但很多人追问下一层:
在 Cursor 一年复盘 里,我做过一次「Options API → Composition API」批量迁移:两个 Agent 并行,核心迁移从一周压到 2~3 天。代价也真实存在——合并冲突、风格不一致、某个 Agent 擅自改了公共组件。
这篇文章是一份 前端大改动并行实战手册:什么时候该开多 Agent、worktree 怎么隔离、任务怎么切、合并怎么审,以及我踩过的坑。
很多人把两者混为一谈。其实它们是 两层隔离:
| 能力 | 解决什么问题 | 类比 |
|---|---|---|
| Git Worktree | 同一仓库多份工作目录,互不干扰 | 两个工位各干各的,不抢同一张桌子 |
| 多 Agent 并行 | 多个 Agent 会话同时跑,各自独立上下文 | 两个实习生同时接单,各写各的模块 |

一句话:
复制代码Worktree = 物理隔离(文件系统层面)
多 Agent = 执行隔离(对话和任务层面)
两者配合,才能放心让 Agent 「放手干」——干砸了直接删 worktree,主分支一行没动。
| 场景 | 为什么适合并行 | 拆分维度 |
|---|---|---|
| 框架迁移(Options API → Composition API) | 模块间耦合低,模式统一 | 按 views/ 子目录 |
| 批量重命名 / 路径调整 | 改动模式重复 | 按目录或文件类型 |
| 多页面 UI 统一改版 | 页面互不依赖 | 按 page / route |
| 实验性架构验证 | 可能全盘推翻 | 独立 worktree,不合并 |
| 大仓库多 feature 并行 | 减少互相等待 | 按 feature 模块 |
| 场景 | 原因 | 替代方案 |
|---|---|---|
| 改 1~2 个文件 | 开 worktree 比改动本身还重 | 单 Agent 或直接 Tab |
| 强耦合公共层重构 | 多 Agent 必然抢同一文件 | 单 Agent + Plan,或先抽公共层 |
| 涉及数据库迁移 | 并行难以协调顺序 | 串行 Agent,严格 Plan |
| 你不熟悉这块代码 | 拆任务都拆不对 | 先 Ask 摸底 |
满足 3 条及以上,再开多 Agent:
千万别跳过这步。 多 Agent 翻车的第一大原因,是各 Agent 用了不同的迁移模式。
复制代码【Plan 模式,不要写代码】目标:将 src/views/ 下 Options API 页面迁移到 Composition API。请输出:
1. 统一迁移模式(script setup? 组合式函数提取?)
2. 参考实现:@src/views/dashboard/index.vue(已是 Composition API)
3. 按目录拆分的任务边界(哪些文件夹可并行、哪些有共享依赖)
4. 禁止改动的文件清单(公共组件、store、router)
5. 每个子任务的验收标准(lint 通过、页面可渲染)不要写代码。
Plan 输出后,人审三件事:
components/、utils/、store/ 等公共层?Cursor 支持通过 /worktree 命令创建隔离工作区。手动方式也常用:
复制代码# 从 main 创建两个并行 worktree
git worktree add ../project-order-migrate -b migrate/order
git worktree add ../project-product-migrate -b migrate/product
| 方式 | 优点 | 缺点 |
|---|---|---|
Cursor /worktree | 和 Agent 集成好,一键隔离 | 需熟悉 Cursor 命令 |
git worktree add | 标准 Git 操作,可控 | 需手动开 Cursor 窗口 |
命名规范(建议):
复制代码分支名:migrate/<模块名>
目录名:../<项目名>-<模块名>-migrate
每个 Agent 的 Prompt 必须包含 五要素:
| 要素 | 说明 | 示例 |
|---|---|---|
| 范围 | 只改哪些目录 | src/views/order/** |
| 禁止 | 明确不能碰的文件 | 不要改 components/、store/ |
| 模式 | 引用 Plan 对齐的迁移模式 | 按 dashboard/index.vue 风格 |
| 验收 | 完成标准 | pnpm lint 通过 |
| 约束 | Rules 引用 | 遵循 .cursor/rules/ |
Agent A 模板:
复制代码【Agent 模式】任务:将 src/views/order/ 下所有页面从 Options API 迁移到 Composition API。范围:
- 只改 src/views/order/** 下的 .vue 文件
- 可新增 src/views/order/composables/ 存放提取的逻辑禁止:
- 不要改 src/components/、src/store/、src/router/
- 不要改 src/views/order/ 以外的任何文件
- 不要 git commit模式:
- 严格参考 @src/views/dashboard/index.vue 的写法
- 使用
- 复杂逻辑提取为 composables验收:
- 完成后跑 pnpm lint
- 列出改动文件清单和迁移要点
Agent B 模板(并行,换目录即可):
复制代码任务:将 src/views/product/ 下所有页面从 Options API 迁移到 Composition API。
(其余约束同 Agent A,范围换成 src/views/product/**)
并行时你做三件事,不用盯着 Agent 写每一行:
红旗信号——立刻叫停某个 Agent:
components/ 或 utils/ 公共文件按 Code Review 文 的标准,每个 worktree 分支单独审,不要一次性全 merge。
复制代码# 在对应 worktree 目录
git diff main...HEAD --stat
git diff main...HEAD# 逐分支合并
git checkout main
git merge migrate/order --no-ff
# 解决冲突 → 跑 pnpm lint && pnpm typecheck
git merge migrate/product --no-ff
合并后 统一格式化一遍(多 Agent 最容易出现风格漂移):
复制代码pnpm lint --fix
pnpm format # 如有
这是我在 Cursor 复盘 里做过的真实项目,完整复盘如下。
| 项 | 数据 |
|---|---|
| 项目 | Vue 3 后台管理系统 |
| 待迁移 | src/views/ 下 47 个 Options API 页面 |
| 已迁移参考 | src/views/dashboard/(Composition API) |
| 人力 | 1 前端 + Cursor 多 Agent |
复制代码Agent A(worktree: migrate/order) → src/views/order/** (12 个页面)
Agent B(worktree: migrate/product)→ src/views/product/** (15 个页面)
Agent C(串行,A/B 完成后) → src/views/settings/** (8 个页面)
人工 → src/views/report/** (含复杂图表,不敢交给 Agent)
为什么 report 没并行? 含 ECharts 封装、自定义 Hooks,和公共层耦合重——这类模块宁可串行 + 人盯。
| 阶段 | 耗时 | 说明 |
|---|---|---|
| Plan 对齐 | 0.5 天 | 出迁移模式 + 边界 + 参考实现 |
| Agent A/B 并行 | 1 天 | 各跑 3~4 小时,人中间抽查 2 次 |
| 合并 + Review | 0.5 天 | order 分支 2 处冲突,product 0 处 |
| Agent C + 人工 report | 1 天 | 串行收尾 |
| 合计 | ~3 天 | 以前估时 1 周 |
| 问题 | 原因 | 处理 |
|---|---|---|
Agent B 改了 components/Table.vue | Prompt 禁止清单不够明确 | 回滚该文件,Prompt 加粗「禁止」 |
两个 Agent 对 ref 命名风格不一 | Rules 未覆盖 composable 命名 | 合并后统一 lint --fix + 补 Rule |
| order 分支合并冲突 | 共同改了 types/order.ts | 该文件划入「禁止清单」,人工处理 |
复制代码按「目录边界」切,不按「文件数量」切
按「零共享写入」切,不按「谁写得快」切
| 拆分方式 | 适合 | 风险 |
|---|---|---|
| 按路由 / 页面目录 | 页面型后台、多模块 SPA | 低 |
| 按 feature 模块 | src/features/order/ 等 | 低~中 |
| 按文件类型 | 所有 .test.ts 批量补测试 | 低 |
| 按层级 | 「所有 API 层」「所有组件层」 | 高——容易抢文件 |
| 按「前半 / 后半」 | 文件列表对半砍 | 高——无逻辑边界 |

典型做法:
多 Agent 并行的前置条件,是你已经建好约束体系:
| 层级 | 作用 | 并行场景下的价值 |
|---|---|---|
| Rules | 统一输出风格 | 减少合并后风格漂移 |
| Skills | 固化迁移 SOP | 每个 Agent 触发同一 Skill,步骤一致 |
| 四模式 | Plan 先行、Agent 执行 | Plan 是所有 Agent 的「总合同」 |
| MCP | 拉文档 / 查 MR | 各 Agent 对齐同一接口文档 |
建议在项目 Skill 里加一段 并行任务专用 SOP:
复制代码## 多 Agent 并行迁移 SOP1. Plan 模式输出总方案和任务边界
2. 人审边界,确认无文件交叉
3. 每个 worktree 开独立 Agent,粘贴标准任务 Prompt
4. 禁止清单必须包含:components/、store/、router/、types/
5. 各分支完成后单独 Review,再合并
6. 合并后统一 pnpm lint --fix
后果:A 用 script setup,B 用 defineComponent;合并后像两个人写的代码。
对策:Plan 输出「唯一迁移模式」,写入每个 Agent Prompt。
后果:Agent 改了公共组件,两个分支都受影响。
对策:用 目录级 禁止(不要改 src/components/**),不只写「不要改公共文件」。
后果:开了 5 个 Agent 迁 5 个页面,合并和 Review 比串行还累。
对策:每个 Agent 至少覆盖 8~15 个文件 或 一个完整子模块。
后果:Agent 跑了 2 小时,方向全错,worktree 白干。
对策:启动后 15~20 分钟看一次 diff,确认模式正确再继续。
后果:分支各自 lint 通过,合并后类型冲突。
对策:每个 merge 节点跑 pnpm typecheck && pnpm lint && pnpm test。
后果:磁盘占满、分支混乱、不确定哪个目录是最新的。
对策:合并完成后立刻清理:
复制代码git worktree remove ../project-order-migrate
git branch -d migrate/order
多 Agent 是 worktree 的 进阶用法。日常实验性改动,单 Agent + 单 worktree 就够用:
| 场景 | 做法 |
|---|---|
| 试验新状态管理方案 | 开 worktree,Agent 随便改,不满意删目录 |
| 评估大版本升级 | worktree 里跑 pnpm upgrade,主分支不动 |
| 给同事演示 Agent 改动 | worktree 隔离,演示完丢弃 |
复制代码git worktree add ../project-experiment -b experiment/new-state
# Cursor 在 experiment 目录打开 Agent 折腾
# 不行就:git worktree remove ../project-experiment
这比 git stash + 切分支更适合 Agent 场景——Agent 改动量大,stash 容易乱。
typecheck + lint + test四模式选型 解决的是「这一步用什么模式」;Rules / Skills 解决的是「按什么规矩做」;多 Agent + Worktree 解决的是「大活怎么提速且不把 main 分支赌进去」。
它不是日常开发的默认选项,而是前端工程师的 「重型设备」——任务够大、边界够清、Review 跟得上的时候,收益非常明显。
记住三个关键词:Plan 定模式、目录切边界、合并必审查。做到这三点,大重构不用再赌一把。