跳转至
ACTIVE

Agents · Conflict Resolution · 5 条冲突解决铁律

第一定律:当冲突出现时,停止 commit,先报 AIOS。继续 commit 只会让冲突指数级扩大。


1. 五条铁律(必须背下来)

铁律 1 · 仓库分区 = 第一道防线

任何冲突的根因要先问:有没有越权写入?Repository-Partition.md。 若有越权:revert 越权 commit,冲突 80% 自动消失。

铁律 2 · 协议契约 = 第二道防线

跨智能体接口分歧 → 查 ../contracts/protocol-v1.md。 若契约里写明:按契约执行,无需仲裁。 若契约里没写:升级到 ClaudeB 补契约 + 写 ADR。

铁律 3 · commit 串行 = 第三道防线

同一文件同一时刻只允许一个 commit。 冲突时:先 commit 者赢,后 commit 者 stash + 等待 + rebase。

铁律 4 · 决策升级链 = 仲裁顺序

智能体内部分歧 → AIOS 仲裁 → 仲裁不下来 → 升级到人类 → 人类拍板 → 写 ADR

每一级有最长等待时间(见 §3)。

铁律 5 · 资源隔离 = 端口/进程不打架

dev server 不抢端口 · 测试不抢数据库 · 备份不抢分支。 见 Repository-Partition.md §6 · 物理隔离(资源层)。


2. 冲突类型与对应铁律

冲突类型 适用铁律 处理时间
两 agent 改同一文件 1 + 3 ≤ 30 分钟
API 接口理解不一致 2 ≤ 2 小时(含补契约)
端口被占用 5 ≤ 5 分钟
协议字段命名分歧 2 + 4 ≤ 4 小时
业务方向分歧 4(直接到人类) ≤ 1 个工作日
实现方案 A vs B 分歧 4 ≤ 4 小时

3. 决策升级链(详解)

Level 1 · 智能体内部尝试和解(最长 30 分钟)

  • 双方在 commit message 互相 ref:[ack: ClaudeB's contract §3.2]
  • 若一方让步 → 直接收敛 · 不需要 ADR

Level 2 · AIOS 仲裁(最长 2 小时)

升级触发: - 30 分钟未和解 - 任一方在 KANBAN 标 ESCALATE: <file/topic>

AIOS 仲裁产出: - 一句话决议("按 ClaudeB 方案 A") - 落地动作("ClaudeA revert 并按 §3.2 重写") - 是否需要 ADR(见 §4)

Level 3 · 人类拍板(最长 1 工作日)

升级触发: - AIOS 仲裁不下(双方理由都成立) - 涉及业务方向 / 钱 / 客户

人类回复格式(standup 时一句话):

拍板: <topic> · 决议: <选 A 或 B 或第三方案> · 理由: <一句话>

AIOS 收到后:写 ADR + 更新 KANBAN + 派落地任务。

Level 4 · ADR 永久写入(异步)

任何 Level ⅔ 的决议在 24 小时内必须写成 ADR-AIOS-NN.md,存入 ../ADR/


4. ADR 触发条件

满足任一即必须写 ADR:

  • ✅ 决议影响 ≥ 2 个智能体的工作流
  • ✅ 决议改变了协议契约
  • ✅ 决议放弃了原计划方案 ≥ 1 步
  • ✅ 决议需要回滚已 commit 的代码 ≥ 100 行
  • ✅ 人类直接拍板(任何级别)

不需要 ADR 的情况: - ❌ 单个智能体内部的实现细节选择 - ❌ 临时性的 hotfix(24h 内会被覆盖) - ❌ 重复出现的、模板化的小冲突


5. 仲裁模板(AIOS 用)

## ⚖️ AIOS 仲裁 · <冲突 topic> · YYYY-MM-DD HH:MM

### 当事方
- **A 方**:<agent> · 主张 <一句话>
- **B 方**:<agent> · 主张 <一句话>

### 事实
- 文件:<path>:<line>
- 已发生 commit:<hash list>
- 协议依据:<contract §X 或 "无契约支持">

### 分析
- A 方优势:<3 点>
- B 方优势:<3 点>
- 折中可能:<是/否>

### 决议
**按 <A/B/折中> 方案** · 理由:<2 句话>

### 落地动作
1. <agent> 在 <时间> 前完成 <动作>
2. <agent> revert <hash>
3. AIOS 写 ADR-AIOS-NN

### ADR 标志
- [ ] 需要 ADR(理由:<...>)
- [ ] 不需要 ADR(理由:单方实现细节)

6. 高频冲突案例库

案例 6.1 · store 命名分歧(ClaudeA vs ClaudeB contract)

症状:ClaudeA 写 useSlotStore,ClaudeB contract 写 useShellSlotStore铁律:2(契约优先) + 4 决议:按 contract 执行 · ClaudeA 改名 · 不写 ADR(属契约执行)

案例 6.2 · 端口冲突(5173 被占)

症状:ClaudeA vite dev 启动失败 "EADDRINUSE :5173" 铁律:5 决议:检查是不是 demo 还在跑(layout-demo),杀进程或换端口

案例 6.3 · contract 字段缺失

症状:ClaudeA 实施 phase 5,contract §5 没写 mode-switcher 信号 铁律:2(契约不全) 决议:升级 ClaudeB 补契约 §5 + 写 ADR-AIOS-NN

案例 6.4 · 业务方向分歧

症状:ClaudeB 想做"unsigned 模式",ClaudeA 担心 phase 工期延长 铁律:4(升级人类) 决议:人类拍板 · 写 ADR


7. 反复出现的冲突 = 设计问题

如果同一类冲突在 1 周内出现 ≥ 3 次:问题不在冲突本身,在于规则缺失

处理: 1. AIOS 把案例汇总到本文件 §6 2. 起草新的 contract 条款 / partition 规则 3. freeze 后通告所有智能体


8. 一句话总结

冲突不可怕,怕的是没有升级链。AIOS 提供 4 级升级 + ADR 永久存档,让每个分歧都有归宿。

版本 日期 变化
v1.0 2026-05-19 5 条铁律 + 4 级升级链