Files
aios/docs/aios-v2/adr

AIOS V2 架构决策记录索引

  • 文档版本:V2R1-hardening-candidate
  • 适用范围:影响多个模块、长期演进、兼容性、安全、数据、部署或交付流程的关键架构决策

1. 架构决策记录列表

编号 决策 状态
ADR-001 AIOS 作为唯一控制面 已采纳
ADR-002 OpenClaw 与 Hermes 从控制面职责中解耦 已采纳
ADR-003 所有变更必须通过 GitOps 已采纳
ADR-004 多租户隔离采用默认拒绝模型 已采纳
ADR-005 文档与代码同步门禁 已采纳
ADR-006 候选持久化采用可替换 SQLite Snapshot 已采纳
ADR-007 当前仓库未分配;禁止补写不存在的历史决策 未分配
ADR-008 当前仓库未分配;禁止补写不存在的历史决策 未分配
ADR-009 Workflow Provenance、最小权限子 Grant 与服务级 Scope 已采纳
ADR-010 Hermes 在线生命周期使用默认关闭的内部 Runtime API RC 已采纳;待 Owner 发布批准

2. 编号规则

  • ADR 编号一经发布不得重用。
  • 编号缺口可以保留,不能通过伪造历史文件填补。
  • 新决策使用下一个未占用编号,并在同一分支更新本索引、模块契约和追踪矩阵。
  • ADR-007 与 ADR-008 在当前仓库没有可验证历史文件,因此明确标记为未分配。

3. 状态定义

  • 已提出:决策已提出,但尚未被正式采纳。
  • 已采纳:当前有效,所有新实现必须遵守。
  • 已替代:已被新的 ADR 替代,保留用于历史追踪。
  • 已废弃:保留历史,但禁止新实现继续采用。
  • 未分配:该编号当前没有 ADR 文件,不代表存在隐含历史决策。

4. 必须新增或更新 ADR 的场景

以下变化必须新增或更新 ADR:

  1. AIOS、OpenClaw、Hermes、Agent Router 的控制边界变化;
  2. 多租户隔离模型变化;
  3. API、数据模型或状态机出现不兼容变化;
  4. 持久化、消息、密钥、审计或部署方案发生跨模块变化;
  5. GitOps、发布、回滚或文档门禁变化;
  6. 替换 OpenClaw、Hermes、Agent Router 或核心基础设施;
  7. 引入新的权威事实源、任务生命周期或租户状态;
  8. 生产安全模型、身份代理、Run Provenance、Grant 或 Secret 管理方式变化;
  9. Runtime Result、Dispatch 或服务 Scope 信任边界变化。

5. ADR 内容要求

每份 ADR 必须包含:

  • 背景;
  • 决策;
  • 备选方案;
  • 采用理由;
  • 正面影响;
  • 负面影响和风险;
  • 迁移与回滚;
  • 合规检查;
  • 受影响的代码、测试和文档。

6. ADR 变更联动

ADR 新增、替代或废弃时,必须同步检查并更新:

  • 01-USER-REQUIREMENTS.md;
  • 02-TARGET-ARCHITECTURE.md;
  • 03-MIGRATION-AND-DELIVERY.md;
  • 04-MODULE-CONTRACTS.md;
  • 05-TRACEABILITY-MATRIX.md;
  • 相关代码、测试和部署资产;
  • 候选或 Gate 报告中的风险与发布结论。

7. 审查规则

  • OpenClaw 不得自行采纳改变控制面边界的 ADR;发现需求后必须升级给 Codex。
  • Codex 负责审查 ADR 与代码、测试和文档是否一致。
  • 涉及合并、Tag、生产部署或重大风险接受的 ADR,必须由 AIOS Owner 最终批准。
  • ADR 未完成审查前,相关变更不得标记为 Test-verified 或 Production released。
  • ADR、测试文件或 Acceptance 脚本存在,不等于 Gate 已通过;必须有实际执行日志、退出码和证据。