在 monorepo 里用一把聚合站 key 开多个 Claude Code 窗口:并行会话怎么不互相踩
在同一个 monorepo 里同时跑多个 Claude Code 会话,冲突往往来自文件写覆盖和花费归属不清,而非 key 本身。本文给出目录约定、git worktree 隔离、后端与额度分配三类做法,让一把聚合站 key 支撑多条并行流而不互相踩。
问题的真实来源
很多人以为并行会话的问题是「一把 key 不够用」。实际上,聚合站的一把 key 本来就是为多模型、多会话设计的,真正会出问题的是下面三件事:
- 工作目录重叠:两个会话在同一个 checkout 里改文件,git status 里混成一团,谁都说不清哪次改动属于谁。
- 后端不分:所有会话都打同一个模型,排查问题时看不出哪条流在烧哪部分额度。
- 花费无归属:月底看到一份总账单,无法回溯到具体任务。
下面按「目录 → 隔离 → 分配」的顺序处理。
一、把「一个仓库」拆成「一个入口 + 多个工作区」
monorepo 天然适合按包划分工作区。约定一条简单规则:每个并行的、有文件写入的会话,独占一个目录。
- 只读类任务(问架构、找调用点、写文档草稿)可以共享主 checkout,因为它们不落盘。
- 任何会产生提交的会话,都需要独立目录。
- 目录名带上任务标识,例如
wt/payments-retry、wt/auth-cleanup,让ls一眼看出有哪些流在跑。
这条约定比任何工具都重要。先有「谁拥有哪个目录」的心智模型,工具才有意义。
二、用 git worktree 做文件级隔离
git worktree 是解决并行会话写冲突最直接的手段:它让同一个仓库的多个分支同时检出到不同目录,共享一份 .git 对象库,不重复克隆。
典型做法:
- 主目录留在主分支,作为「看得见的基线」。
- 每开一条并行流,就为它建一个 worktree 和对应分支。
- 会话结束后合并或丢弃分支,再移除 worktree。
这样做的好处:
- 两个会话改同名文件也不会互相覆盖,因为物理路径不同。
- 各自的
git diff只反映自己的改动,评审时边界清晰。 - 依赖安装(如 monorepo 的包级缓存)可以按 worktree 复用,不必每处重建。
注意 worktree 不是沙箱:多个 worktree 共享同一份 .git,分支操作、stash、rebase 仍会互相影响。约定「每个 worktree 只操作自己的分支」即可。
三、后端按任务类型分配,而不是随机
聚合站的价值在于一个 key 可以调多个模型。并行会话时,把「用哪个模型」当成一项显式决策:
- 重推理 / 架构设计:选长上下文、推理能力强的模型,通常也是单价较高的那一档。
- 批量改写 / 机械重构:选成本更低的模型,把贵的额度留给真正需要的会话。
- 工具调用密集的流:优先选函数调用稳定的模型,减少反复重试带来的额外消耗。
关键是在启动会话时就确定并记录,而不是在同一个终端里随手切换。这样当某条流出现异常花费时,你能对上号。
聚合站按官方价 ×1.3 扣费,这个倍率是统一的,不随模型变化。所以省钱的空间来自「选对模型档位」和「减少无效重试」,而不是靠切换渠道。
四、给每个会话一个可见的花费标签
一把 key 走所有会话,账单上是合并的。要做归属,靠的是外部记录,而非 key 本身:
- 会话启动时,在终端标题或会话首条消息里写明任务名。
- 在仓库根放一个轻量的
sessions.md或 issue,登记「任务名 / worktree 路径 / 模型 / 开始时间」。 - 结束时补一行结果,形成可追溯的流水。
这不精确到 token,但足以回答「哪个任务最费」这个实际问题。对大多数团队来说,这个粒度已经够用。
五、并发连接本身要注意什么
同一把 key 同时打多个会话,在服务端看起来就是多个并发请求。需要留意的是:
- 不要把并发数开到远超自己实际处理能力的程度,否则你只是在制造排队和自己看不懂的失败率。
- 遇到限流或超时,先看是不是某条流出错后进入重试循环——重试是并行场景里最常见的隐性花费来源。
- 给每个会话设置合理的超时,失败要快速失败,而不是无限重试。
聚合站不改变底层模型的限流特性,它只是把多个提供方的入口统一到一把 key 上。所以限流策略仍取决于你选的那个模型。
六、一套可直接照做的流程
- 主 checkout 保持干净,只做只读探索。
- 为每个有写入的任务建 worktree 和分支,命名与任务一致。
- 在该 worktree 目录里启动会话,首条消息写明任务名与所选模型。
- 在
sessions.md登记一行。 - 会话结束:合并或丢弃分支 → 移除 worktree → 补记结果。
按这套流程,一把聚合站 key 可以稳定支撑多条并行流:文件不互相覆盖,模型选择有据可查,花费有归属。真正需要管理的从来不是 key 的数量,而是目录边界和决策记录。
关于贡献 key 的一点补充
如果你同时在向聚合站贡献 key,注意返还是按官方价 ×1.1(优质 ×1.2)以 USDC 结算,与你自己使用时的 ×1.3 扣费是两条独立的账。并行会话只影响你的使用侧花费,不影响贡献侧的返还计算。把这两本账分开记,比混在一起看更清楚。