Agent SkillsXiaomingX/mimofan › parallel-agent-lock-guard

parallel-agent-lock-guard

GitHub

提供多Agent并行开发时规避锁竞争的最佳实践,涵盖包管理器缓存、Git索引及共享文件冲突的隔离方案与可执行配置。

.workbuddy/skills/parallel-agent-lock-guard/SKILL.md XiaomingX/mimofan

触发场景

并行 Agent 锁竞争 多 agent 并行构建失败/卡住 package cache lock 避免 git index.lock 并行编译怎么隔离

安装

npx skills add XiaomingX/mimofan --skill parallel-agent-lock-guard -g -y
更多选项

非标准路径

npx skills add https://github.com/XiaomingX/mimofan/tree/main/.workbuddy/skills/parallel-agent-lock-guard -g -y

不安装直接使用

npx skills use XiaomingX/mimofan@parallel-agent-lock-guard

指定 Agent (Claude Code)

npx skills add XiaomingX/mimofan --skill parallel-agent-lock-guard -a claude-code -g -y

安装 repo 全部 skill

npx skills add XiaomingX/mimofan --all -g -y

预览 repo 内 skill

npx skills add XiaomingX/mimofan --list

SKILL.md

Frontmatter
{
    "name": "parallel-agent-lock-guard",
    "description": "并行 Agent \/ 多 agent 开发(monorepo、cargo workspace、code harness agent)时规避锁竞争(cargo\/npm package cache 锁、git index 锁、共享文件写冲突)的最佳实践与可执行配置。当用户说\"并行 agent 锁竞争\"\"多 agent 并行构建失败\/卡住\"\"package cache lock\"\"避免 git index.lock\"\"并行编译怎么隔离\"\"避免下次锁竞争\"时触发。",
    "agent_created": true
}

并行 Agent 锁竞争规避(parallel-agent-lock-guard)

目的

多 agent 并行开发时,多个进程会抢同一份共享可变状态(cargo registry、git index、npm 全局 cache、共享文件),触发 file lock 串行化甚至死等。本 skill 提供分层隔离方案与可落地配置,让并行 agent 互不阻塞。

何时使用

  • 用户启动/规划多 agent 并行开发框架(monorepo、code harness agent、Claude Code 多 agent 插件)。
  • 出现 Blocking waiting for file lock on package cache、git index.lock 冲突、文件被覆盖/读到半成品。
  • 用户问"并行 agent 锁竞争怎么解决""并行构建如何隔离""如何避免下次锁竞争"。

锁竞争分类(4 类,按频率)

类型 现象 根因
包管理器缓存锁(最常见) Blocking waiting for file lock on package cache 多 cargo/npm 进程抢 ~/.cargo/registry 或全局 npm cache 写锁
git index/ref 锁 Unable to create '.git/index.lock' 并行 agent 在同一工作副本做 git 写操作
共享文件写冲突 文件被覆盖、编译读到半成品 多 agent 写同一文件/目录(如同一 Cargo.toml)
CI runner 内锁 同机并行 step 互等 同 runner 内多个构建 step 共享 registry/cache

最佳实践(5 层,MECE)

A. 进程级——下载与编译分离

  • 所有写 registry/cache 的操作(cargo fetch / npm install / cargo install)作为全局一次性预热,跑在 agent 并行启动之前。
  • 并行阶段所有 agent 用 --offline / --locked / --frozen,只读 cache,不碰写锁。
  • install 类工具(cargo-audit 等)禁止与 build 并行,要么预装进基础镜像,要么放串行 phase。

B. 仓库级——git worktree 隔离工作副本

  • 每个 agent 一个独立 worktree,彻底隔离 index.lock / refs,互不干扰。

C. 文件级——按域分片所有权 + 写队列

  • monorepo 按 crate/package 给 agent 分配目录所有权,不交叉写。
  • 任何必须写共享资源(git push、写汇总文件)的操作走 harness 的单一串行队列

D. 缓存级——sccache 是解药不是问题

  • sccache 原生并发安全。配置 SCCACHE_DIR 持久化可放大命中、避免重复编译,反而缓解竞争。

E. 调度级——重试退避

  • 编译类 job 加重试退避(如 3 次重试 + 30s sleep),吸收瞬时锁等待。

可执行配置

  1. 预热 + 离线只读:运行 bash scripts/warm-cargo-parallel.sh <project_dir>(等价于 cargo fetch --locked),之后各 agent 用:
    CARGO_TARGET_DIR=./target-agent-$AGENT_ID \
    CARGO_NET_OFFLINE=true \
    cargo build --locked --offline --target $TARGET
    
  2. git worktree 隔离
    git worktree add -b agent/$AGENT_ID ../agent-$AGENT_ID main
    cd ../agent-$AGENT_ID   # 独立 index/working tree,零锁竞争
    
  3. 彻底隔离(备选):为每个 agent 设独立 CARGO_HOME——registry cache 完全不共享,代价是重复下载,仅在无法预热时用。
  4. sccache 持久化:确保 SCCACHE_DIR 在 agent 间共享且持久(mimofan 已配置 ~/.cargo/config.toml 并关闭 incremental)。
  5. install 串行化:cargo-audit / 其他 cargo install 工具移到串行 phase 末或预装。

针对 mimofan 的具体约定

  • 项目是 cargo workspace(resolver=2edition=2024),多 crate 用 .workspace=true 复用中央依赖。
  • 已配 sccache,实测命中 ~96%,二次重建仅重编 1 crate——保持 SCCACHE_DIR 持久以延续收益。
  • 真实案例:agent-mimofan 曾并行 cargo build + cargo install cargo-audit,互相阻塞 ~13min 于 package cache 锁。规避=build 前先 cargo fetch --locked,install/工具串行或预装。
  • 依赖多版本分叉(starlark / portable-pty 等传递依赖)属 semver 分叉,不是锁竞争,不在本 skill范围;勿为消除重复而强制统一版本。

工作流(落地步骤)

  1. 并行启动前:在该仓库跑 bash scripts/warm-cargo-parallel.sh <project_dir>(= cargo fetch --locked)完成 registry 预热。
  2. 给每个 agent 分配独立 git worktree + 独立 CARGO_TARGET_DIR
  3. 并行阶段:各 agent CARGO_NET_OFFLINE=true cargo build --locked --offline --target <t>
  4. install 类工具移到串行 phase 或预装进基础镜像。
  5. 写共享资源(git push、汇总文件)走 harness 单一串行队列。

反模式(不要做)

  • 不在并行区跑 cargo install / cargo update(写 Cargo.lock + registry)。
  • 不让多 agent 共享同一 worktree 做 git 写。
  • 不要为"消除重复依赖版本"而强制统一版本——那是传递依赖分叉,风险高、非锁竞争。

版本历史

  • ccf85b9 当前 2026-08-08 08:00

同 Skill 集合

crates/tui/assets/skills/delegate/SKILL.md
crates/tui/assets/skills/documents/SKILL.md
crates/tui/assets/skills/feishu/SKILL.md
crates/tui/assets/skills/fleet-manager/SKILL.md
crates/tui/assets/skills/mcp-builder/SKILL.md
crates/tui/assets/skills/pdf/SKILL.md
crates/tui/assets/skills/plugin-creator/SKILL.md
crates/tui/assets/skills/presentations/SKILL.md
crates/tui/assets/skills/skill-creator/SKILL.md
crates/tui/assets/skills/skill-installer/SKILL.md
crates/tui/assets/skills/spreadsheets/SKILL.md
crates/tui/assets/skills/v4-best-practices/SKILL.md

元信息

文件数
0
版本
ccf85b9
Hash
21035f2d
收录时间
2026-08-08 08:00

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-09 04:47
浙ICP备14020137号-1 $访客地图$