Files
aios/docs/aios-v2/adr/ADR-001-single-control-plane.md
T

3.2 KiB
Raw Blame History

ADR-001:AIOS 作为唯一控制面

  • 状态:已采纳
  • 日期:2026-07-20
  • 影响范围:Control Plane、Agent Router、OpenClaw、Hermes、Web Console、GitOps、审计

1. 背景

现有系统已经包含多个执行、调度和治理能力。如果 OpenClaw、Hermes、Agent Router 或 Web 层分别保存自己的租户、策略、审批和任务状态,就会形成多个权威事实源,带来以下问题:

  • 同一任务在不同模块中状态不一致;
  • 审计链不完整;
  • 多租户隔离难以统一验证;
  • Web、Runtime 和运维入口可能绕过策略;
  • Bug 修复和发布无法判断应该修改哪个事实源。

2. 决策

AIOS Control Plane 是唯一权威控制面,负责:

  • Tenant Registry;
  • Identity 与角色上下文;
  • Agent Registry;
  • Task Lifecycle;
  • Policy Decision;
  • Approval;
  • Audit Event;
  • Runtime Inventory;
  • Execution Evidence;
  • GitOps 与发布状态可视化。

OpenClaw、Hermes 和 Agent Router 只能执行、路由或调度已经由 AIOS 批准的工作,不得拥有第二套租户、策略、审批或任务生命周期。

3. 目标边界

Web / API
   |
   v
AIOS Control Plane
   |
   v
Execution Orchestrator / Agent Router
   |
   +--> OpenClaw Adapter --> OpenClaw Runtime
   |
   +--> Hermes Boundary --> Hermes Workers

4. 备选方案

方案 A:保持多个控制面

拒绝原因:状态会持续分裂,无法形成统一审计和租户隔离。

方案 B:由 OpenClaw 或 Hermes 成为主控制面

拒绝原因:二者主要价值是执行与 Runtime,不适合作为统一产品、租户、审批和发布控制面。

方案 C:推倒重写全部能力

拒绝原因:会丢失现有执行能力、运行经验和迁移可回滚性。

5. 正面影响

  • 任务、策略和租户状态唯一;
  • Web/API、OpenClaw、Hermes 和 GitOps 使用同一权威模型;
  • 审计、执行证据和发布判断可以统一;
  • 新 Runtime 可以通过稳定 Adapter 接入;
  • 多租户和权限模型可集中验证。

6. 负面影响与风险

  • 所有旧执行入口需要迁移到 Orchestrator;
  • Runtime 需要稳定 Contract;
  • Control Plane 可靠性要求提高;
  • 在迁移完成前可能短期存在旧旁路,需要明确冻结和监控。

7. 迁移与回滚

迁移顺序:

  1. 建立 AIOS Control Plane 权威模型;
  2. 引入 Orchestrator;
  3. OpenClaw/Hermes 通过 Adapter 接入;
  4. 将 Web 和自动任务切换到 AIOS API;
  5. 关闭旧控制旁路。

回滚只允许回滚 Runtime 或应用版本,不允许恢复第二套权威控制状态。

8. 合规检查

任何新功能必须回答:

  • 权威状态是否存放在 AIOS?
  • Runtime 是否只接收已批准工作?
  • Web 是否只调用 AIOS API?
  • 是否新增了第二套状态机或租户事实源?

若最后一项为“是”,变更必须拒绝或新增替代 ADR。

9. 实现与测试映射

  • 实现:active-runtime/app/aios_v2/control_plane.py
  • 编排:active-runtime/app/aios_v2/orchestrator.py
  • 应用入口:active-runtime/app/aios_v2/app.py
  • 测试:tests/aios_v2_candidate/test_candidate_flow.py
  • 追踪:docs/aios-v2/05-TRACEABILITY-MATRIX.md