中文
冲突解决
概览

冲突解决

当多个 Agent 或用户同时修改同一份数据时,PuppyOne 提供完整的冲突检测与解决机制。


并发编辑的挑战

在多 Agent 协作的场景下,并发冲突是不可避免的:

  • Agent A 正在更新 /specs/api-design.md,同一时刻 Agent B 也在修改同一个文件
  • 你在 Dashboard 中编辑某个 JSON 文件,与此同时一个同步连接正在从 Notion 拉取新数据
  • 两个 Agent 各自通过 MCP 修改同一个文件夹下的内容

如果没有冲突管理机制,后写入的操作会悄悄覆盖前一个操作的修改,导致数据丢失。


PuppyOne 的解决方案

PuppyOne 提供三种冲突解决策略,适用于不同场景:

┌─────────────────────────────────────────────────────────┐
│                 冲突解决策略                               │
├──────────────────┬──────────────────┬───────────────────┤
│  Checkout/Commit │  Three-way Merge │  Last-write-wins  │
│  悲观锁定         │  乐观合并         │  最终写入优先       │
│                  │                  │                   │
│  编辑前先锁定     │  提交时自动合并    │  时间戳决定胜负     │
│  其他写入者等待   │  冲突部分标记      │  旧版本保留在历史中  │
│                  │                  │                   │
│  适合:关键数据   │  适合:协作编辑    │  适合:文件同步     │
└──────────────────┴──────────────────┴───────────────────┘

1. Checkout / Commit(悲观锁定)

先锁定、再编辑、最后提交。编辑期间,其他人无法修改被锁定的节点。

适用于对数据一致性要求高的场景,例如修改 API 规范文档、更新关键配置。

2. Three-way Merge(三方合并)

不加锁,允许多方同时编辑。提交时系统自动对比基础版本和各方修改,尝试智能合并:

  • 不冲突的修改自动合并
  • 冲突的部分标记出来,交由人工处理

适用于多人协作编辑的场景。

3. Last-write-wins(最终写入优先)

最简单的策略——后写入的内容直接覆盖先前的内容。被覆盖的版本自动保存在版本历史中,可随时回滚。

这是 OpenClaw 本地文件夹同步的默认策略。


如何选择策略

场景推荐策略原因
修改关键配置文件Checkout/Commit确保独占编辑,避免冲突
多 Agent 协作写文档Three-way Merge允许并行工作,自动合并
本地文件夹同步Last-write-wins简单高效,版本历史兜底
从数据源同步Last-write-wins外部数据源为权威来源
Agent 修改重要业务数据Checkout/Commit防止并发写入导致数据丢失

了解更多