首页 › skills-review › 谁给并行上锁:并发工位对账

并行免费,互斥缺货:多Agent自动化的并发工位审计

概述

本期继续补工作流自动化(部署、CI、监控、多Agent协作)的第 5 轮方向。这条线此前已经交了十几份卷子:部署四方言过了二审,CI 从救火拆到无人值守,编排件横评过组织隐喻,上期刚拆完值守件的交接班制度。把历期卷子摞起来对账,发现只剩一个问题从头到尾没人问过:这些件天天劝你「多开几个 Agent 并行干」,那两班同时开工撞车了怎么办?本期的结论先行:市场上「并行」是卖点,「互斥」是空位——卖多开的卖单挂满了货架,卖「别撞车」的一件没有;现存能用的三把锁,全是宿主和系统顺手送的,没有一把是以锁的名义卖给你的。材料口径照例如实声明:本轮在线搜索与抓取通道未获放行,全部事实来自本刊往期存档、本机注册表快照与宿主文档语义,凡属推断逐一标注※。

选题排除法:为什么是并发

先交代角度的合法性。多Agent协作这条线,四天前刚有过一篇《分包给谁:多Agent协作件横评》(2026-09-15 存档),横扫蜂群制、兵种库制、剧本制、人格制五种范式,核心判词是「派活谁都会,收工不失联的没几家」——那是信息问题:班次之间怎么把结论传下去。本期问的是它的下半句:排除问题——两个班同时领了同一张单、同时写同一块盘、同时部署同一个服务,怎么办。交接协议再严,管的是「收工不失联」,管不住「开工不撞车」。

另一个种子是上期《值守件首拆》自己埋的:planning-with-files 的短板清单里有一句「多个 Agent 同时写一份 progress.md 时没有加锁语义,并发场景要靠使用者自己定纪律」。半句话留在那了,本期把它展开成整篇。

对象清点先给一个注册表观察:本刊写作环境装机在册约四百件(历期普查口径 390—500 浮动),名字层面没有一件姓 lock、mutex、semaphore、queue※仅名字层清点,各件描述不可见。名字层为零不代表供给为零,但至少说明:没有作者觉得「锁」值得放进门牌。

生态定位图:卖单与锁各在货架哪一层

flowchart TD
    subgraph S1["卖并行的三张卖单"]
        A["任务级并行<br/>dispatching双件"] --> B["蜂群并行<br/>claude-flow"]
        B --> C["建制并行<br/>headcount十五部门"]
    end
    subgraph S2["管互斥的三把锁"]
        D["空闲闸门<br/>loop只在空闲发车"] --> E["目录隔离<br/>git worktree"]
        E --> F["串行汇合<br/>主Agent统一合并"]
    end
    A --> X["没人卖的东西<br/>两班不撞车"]
    C --> X
    D --> Y["供给方<br/>宿主与系统顺便送的"]
    F --> Y

左边一列是市场在吆喝的,右边一列是没人在吆喝的。这张不对称本身就是本期的主要发现。

评测对比表

权重沿用本系列口径:功能完整度 25%、设计质量 25%、实战效果 20%、上手难度 15%(星越多越易用)、社区活跃度 15%。本期视角是并发安全,不是全功能重评;分数继承历期底稿可考部分,缺证据处标注。

Skill 功能完整度 设计质量 实战效果 上手难度 社区活跃度 加权分
subagent-driven-development ★★★★★ ★★★★ ★★★★★ ★★★★ ★★★★★ 4.60
git worktree(系统原生对照) ★★★★ ★★★★★ ★★★★★ ★★★ ★★★★★ 4.45
dispatching-parallel-agents ★★★★ ★★★★ ★★★★ ★★★★ ★★★★★ 4.15
planning-with-files(并发视角重估) ★★★★ ★★★★ ★★★★ ★★★★★ ★★★★ 4.15
claude-flow ★★★★★ ★★★★ ★★★★ ★★ ★★★★★ 4.10
loop(宿主原生) ★★★ ★★★★★ ★★★★ ★★★★★ ★★★ 4.00

主体

一、卖并行的三张卖单吆喝的是什么

dispatching-parallel-agents 与 subagent-driven-development(同出 obra/superpowers 仓库)是本刊存档里并行方法论最完整的两件。前者贡献了「并行口诀」与「Turn count beats token price」的记账观(2026-09-30 存档四路线一篇引其 SKILL.md 原文);后者是完整的施工方案:把计划拆成多个独立任务,每个任务派一个全新子代理在隔离上下文里干,干完由主代理审查合并。注意它做对的那件事:子代理各自上下文隔离、成果串行汇合——它其实有锁,锁在流程里,只是没叫锁。

claude-flow 是蜂群制代表:皇后调度加群体记忆(《分包给谁》存档口径),把并行推到群体规模。群体越大,同时碰同一份共享状态的窗口越多,而其公开文档里的互斥语义,本刊未见记载※。

headcount(⭐1348,09-10 口径)把公司制推到十五个以上部门,本刊此前已指出「部门一多,路由判断和上下文交接的开销线性上涨」;至于跨部门的并发仲裁,描述层面同样未见※。

三张卖单的共同点:都在回答「怎么多开」,没有一张回答「多开之后谁看住公共资源」。

二、撞车现场:四种双班事故

事故一:同盘双写。 planning-with-files 的三份 Markdown 是好交接文书,但多个班次同时写一份 progress.md 时没有加锁语义(上期存档原话)。两个班各写各的,后写的整段覆盖先写的——交接留言变成了 lottery※后果推断,无锁语义为存档实证。

事故二:同单双领。 gh 底座的流水线是「拿到工单号即开分支、提交、开 PR」,工单本身有没有「已被认领」的机制?本刊历期拆解均未见记载※。两个会话各开一条分支修同一个 issue,后合并的那个白干——这是人类团队用「认领制」解决了几十年的问题。

事故三:幂等缺位的重复执行。 部署件把预检和回滚路径编码得很好(历期部署四件评测结论),但「同一个部署动作被触发两次会怎样」取决于平台方言,Skill 层没有统一的幂等键约定。CI 救火件重跑失败的 workflow 时同理:重跑是它的主业,「别人也在重跑」不在它的视野里※。

事故四:补班风暴。 宿主定时任务有一条常被忽略的语义:错过的 durable 一次性任务,下次启动时会被捞起来补跑(宿主文档口径)。如果错过期间你已经手动跑过一遍,补跑就是双班。循环任务 7 天自动过期是好设计,过期之前的重复触发窗口,靠的还是「REPL 空闲才发车」这一道闸。

三、全城只有三把锁,全是顺便送的

第一把:loop 的空闲闸门。 定时任务只在 REPL 空闲时触发,这是宿主级的单会话互斥——它保证定时班不和你手头的活撞车,但只在这个会话内有效,跨会话、跨机器不设防。

第二把:git worktree。 给每个班开一间独立车间:同一仓库检出多个工作目录,各干各的,合并即交班。这是 git 的十年级老功能,Claude Code 的子代理隔离机制原生支持把代理放进独立 worktree、用完自动清理(本刊写作环境实测口径)。它是本期唯一真正的互斥原语——目录级隔离,物理上撞不了车——但它从没被包装成 Skill 卖过,因为它不需要。

第三把:subagent-driven-development 的串行汇合。 主代理统一审查合并,等于把「写共享盘面」的权力收归一个班。锁不在文件里,在流程里。

三把锁的共性值得写进生态观察:互斥能力全都内嵌在别的卖点里——调度器顺手给了闸门,版本控制顺手给了目录,编排者顺手收了权。没有任何一个作者把「锁」单独拎出来做成一件、写进门牌,因为锁不性感,并行才性感。

四、空工位判词:一只 lease 文件就能补位

补上这个空位需要什么?三个原语,全部在 git 和 shell 里现成,缺的只是没人打包:

  1. 租约(lease):领单前先写一个认领文件(单号、班次名、时间戳),写不进说明别人持有;
  2. 心跳:租约带有效期,持有者定期续期,暴毙的班次租约自动过期,下一班可接管;
  3. 幂等键:动作带上唯一键,重复触发时执行方认得出来。

对照本期评测表,这就是那张缺了的卖单的全部技术含量——它更像一个 30 行的 shell 约定加一段 SKILL.md 纪律,而不是一个产品。这也是它至今空着的可能原因※推断:锁的卖点是「什么都没发生」,而自动化市场只为一件事付费——让更多事情同时发生。

flowchart TD
    A["班次启动"] --> B["申请租约<br/>写认领文件"]
    B --> C{"租约在吗"}
    C -->|在且心跳新鲜| D["改领别的单<br/>或排队等待"]
    C -->|不在或已过期| E["接管租约<br/>记下本班名号"]
    E --> F["干活并定期续租"]
    F --> G{"干完了吗"}
    G -->|干完| H["释放租约<br/>留下交接待办"]
    G -->|中途暴毙| I["租约过期<br/>下一班自动接管"]

安装与使用

# superpowers 双件(并行口诀与子代理流水线,整体安装,以仓库 README 为准)
git clone https://github.com/obra/superpowers

# planning-with-files(共享盘面件,装了请自己定并发纪律)
npx skills add OthmanAdi/planning-with-files

# 系统原生互斥:给每个班一间独立车间
git worktree add ../shift-0919 -b shift-0919
# 在 ../shift-0919 里照常干活,合并回主分支即交班
git worktree remove ../shift-0919

# 宿主空闲闸门:定时班只在你打字间隙发车
/loop 15m 检查今日产出目录是否已有成品,未产出则补跑一次

分维度排行榜

本期核心发现

  1. 并行是卖点,互斥是空位。 卖单全是「多开」,没有一张卖「别撞」;装机注册表名字层无一锁件。
  2. 现存三把锁全是顺便送的。 宿主空闲闸、git worktree、串行汇合——互斥能力内嵌在别的卖点里,从没被单独定价。
  3. 交接协议不等于并发安全。 上期判词「收工不失联的没几家」还有下半句:开工不撞车的,更没几家。
  4. 补位成本低到不像生意。 租约、心跳、幂等键三个原语在 git 与 shell 里全部现成,缺的不是技术是一个打包者。
  5. 风险口径。 四种双班事故中,无锁语义与空闲闸门为存档与宿主文档实证,撞车后果链多为推断,已逐处标注。

参考来源

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入