omne_harness / v0 · design closeout
● always-on control plane 7 BC · 5 子系统 · 13 ADR v0 · design phase closeout

CONTROL
PLANE FOR
ALWAYS-ON
AGENTS.

omne_harness 是 OMNE agent 系统的控制平面 sub-project——把 Runtime × State × Resource 拆成三件生命周期正交独立的事,并以分布式异构 fleet 形态承载 always-on 的物质基础。

§ 01 · 三正交命题

Runtime ⊥
State ⊥
Resource.

agent harness 的核心命题是把 执行体 · 真相 · 物理资源 三件事生命周期正交独立—— 进程挂了可重启、状态永不丢失、资源可替换;三者不能要求"原子一致提交", 但同一会话跨实例切换仍是同一条命脉。

灵感来自 Anthropic Managed Agents(Control / Session / Sandbox 三件套), 但术语与守护边界全部按 OMNE 自有 ubiquitous language 重锚。

AXIS · 01

RUNTIME 执行体 · 肉体

承载 agent 进程 / 线程 / worker 的调度与生命周期。Worker pool · dispatch order · assemble pipeline · failover saga 都属于这一轴。

INV-1 Runtime 实例可挂可补——崩溃后新 runtime 从 State 恢复继续。
BC-0 Agent Runtime / Scheduling Plane
AXIS · 02

STATE 会话真相 · 灵魂

会话发生过的领域真相——append-only 事件日志 + 由日志投影出的所有 state 视图。State 不依附 Runtime。

INV-2 State 永不丢失,且不可阻塞 Runtime 写入(append-only · fire-and-forget)。
INV-5 三正交不影响同一会话的连续性——跨实例切换仍是同一 RuntimeSession。
AXIS · 03

RESOURCE 物理资源 · 环境

agent 视野下的一切物理资源——长期存在的环境资源(runtime-host / user-host / agent-computer)+ 按需 acquire 的工作时资源(一次性 sandbox / browser / GPU job)。

INV-3a 环境资源 embodiment continuity——产品视角持续在;backing 实例可替换,identity 不可换。
INV-3b 工作时资源 ephemeral replaceability——挂了 acquire 新实例续即可。

⊥ = orthogonally-independent lifecycle  ·  INV-4 = 三者事务边界互不跨越

§ 02 · ADR-013 · 2026-05-28

One Owner,
One Fleet.
Always‑On.

你拥有的所有计算资源都应当能成为 agent 的运行载体—— 手机 · 笔记本 · 台式机 · Mac Mini 集群 · 企业云—— 同属一个 owner 的设备群构成 agent runtime 的分布式异构计算池

always-on 不可能寄生在单一设备上(手机会关机、笔记本会合盖); 它必须寄生在整片设备群上—— 其中至少一部分长期可达,承担 STATE_AUTHORITY 角色。 两条用户给定不变式把"分布式 agent"的难度从分布式数据库档拉回到主从复制档。

FLEET TOPOLOGY · personal · owner_tenant ⊃ ● 4 nodes
OWNER_TENANT · single owner AUTHORITY MAC MINI ×N always-reachable + COMPUTE + REPLICA COMPUTE PHONE sleep · cellular partial replica COMPUTE LAPTOP screen / mic partial replica COMPUTE DESKTOP GPU · CUDA partial replica DRAINED TABLET offline hinted handoff ship · LSN ship · LSN STATE_AUTHORITY COMPUTE · ACTIVE PARTIAL_REPLICA · OFFLINE
▣ PERSONAL · 个人用户

Mac Mini ×N + 手机 + 笔记本 + 台式机

用户自选 Mac Mini 集群担任 STATE_AUTHORITY(always-on 保障设备); 其它设备承担 COMPUTE + 本地 PARTIAL_REPLICA "曾经跑过的 session"。

authority
Mac Mini 集群
session affinity
用户当前焦点设备优先
handoff
显式 · 自动 · 双轨合一
▣ ENTERPRISE · 企业组织

中央云集群 + 员工设备

中央云集群担任 authority;员工设备 per-employee partial replica(不跨员工,由 BC-7 tenant ACL 守护)。 模型层与个人形态完全同构——差异仅在 NodeRole 分配与 replica scope 策略。

authority
org 中央云
replica scope
per-employee · BC-7 ACL
policy
mechanism / policy 分离
USER-GIVEN · INV-1
Single-Writer Per Session
同一 session 全生命周期只能在同一 WorkerNode 中运行。全序天然由单一进程决定。零 CRDT / vector clock。
USER-GIVEN · INV-2
Eventual Consistency + SSOT
state 在异构节点群中走最终一致;至少一个节点担任 SSOT 角色存储权威数据。难度坍缩到主从复制档。
DECISION · D-1
Degraded-Write + Hinted Handoff
authority 短失联:active session 在 affinity worker 本地继续 append,ship 失败入 PendingQueue,回线后按 LSN 顺序补 ship(Cassandra 风格)。
DECISION · D-4
Day0 (α) Degenerate · Quality Dial-able
单节点同时担任三角色 → 起额外节点 → 分配 STATE_AUTHORITY → shipper 走真网络。零 domain 改动从单机升真分布式。
§ 03 · ADR-001 · 架构定调

Control Plane
+ Data Planes.

类比 Kubernetes:K8s API + scheduler 是 control plane, CNI / CSI / device plugin / operator 是 data plane。 omne_harness 拥有所有跨切关注点的协议 (capability 注册 · resource 类型 · event 摄入 · inbound trigger schema · permission grant), 其它 OMNE 子项目实现注册协议接入。

外部 sub-project 是可插拔而非纠缠的—— 新增 sandbox backend / world source / capability type,意味着实现一个已注册协议, 而不是修改控制平面。omne_harness 演进 = 添加 / 精化协议;backend 独立演进 = 重新实现协议。

分层 · 谁拥有什么

  • CONTROL omne_harness · 5 子系统 + 7 BC · 拥有所有 cross-cutting 协议 SSOT
  • DATA 具体 backend 实现——sandbox / capability plugin / world adapter / storage / channel adapter / 等
  • BIND 注册协议(register-back)——backend 启动时声明实现,control plane 通过 Registry dispatch
  • ACL 额外 anti-corruption layer:ExternalSourceSpec 让 omne_engram / omne_user_cognition / omne_veracity 通过 envelope pre-project 入 state
Why this architecture
  • 单一协议 SSOT——每个 cross-cutting 概念只由一个子系统拥有
  • 外部子项目可插拔不纠缠——加新 sandbox / world source = 实现协议,不动 control plane
  • 演进局部化——control plane 加 / 精化协议,backend 独立重新实现
▣ k8s-style topology · plug-in by registration
CONTROL PLANE · omne_harness BC-3/4/5 agent_blueprint 骨架 + 皮囊 BC-0 runtime_plane 肉体 BC-1 state 灵魂 BC-2 inbound 入口 BC-6 resource 环境 BC-7 · GOV tenant 治理 BC · ADR-012 REGISTER-BACK PROTOCOLS CAPABILITY · DATA omne_agent_capabilities omne_agent_toolkits omne_capability_market omne_agent_skills omne_agent_cognition (planned) RESOURCE · DATA omne_agent_computer omne_agent_workspace GPU / browser / network-isolated (planned backends) INBOUND · DATA omne_world_adapter omne_gateway app-web omne · CLI cron · domain-event (planned) DATA PLANES · 其它 OMNE 子项目 ACL · state.ExternalSourceSpec omne_engram · omne_user_cognition · omne_veracity pre-project into state via envelope · no model import in either direction
§ 04 · 5 子系统 / 7 BC

One Body,
Five Parts.

5 个子系统承载 7 个 Bounded Context,沿用"agent 身体"隐喻—— 骨架 · 皮囊 · 肉体 · 灵魂 · 入口 · 环境。 每个子系统在 libs/ 下分层: core · web_server · web_client · cli · agentic。

BC-7 Tenant 由 ADR-012 引入作为治理 BC(不直接对应子系统,而是横切所有 owner-scoped 资源)。

subsystem / 子系统
bounded context
role · 职能
守护 INV
01 骨架 + 皮囊
agent_blueprint manifest · capability · hook · permission
BC-3 Behavior Authoring定义 agent 是什么
BC-4 Behavior Composition定义 agent 能做什么
BC-5 Permission Governancepermission grant model
定义 agent 的 manifest schema · capability registry · hook protocol · permission grant model
02 肉体
runtime_plane worker · dispatch · failover
BC-0 Agent Runtimescheduling plane
实例化并运行 agent——worker pool · dispatch order · assemble pipeline · failover 编排。ADR-013 后承载分布式异构 fleet。
INV-1
INV-NEW-5/6/8
03 灵魂
state event log · projection · ship · replay
BC-1 Session Truth & History会话真相与历史
记录与召回——append-only event log · projection views · resume payload · fork / lineage · authority / partial replica 二分。
INV-2 · INV-5
INV-NEW-7/9
04 入口
inbound adapter · trigger · routing
BC-2 Inbound Triggering外部信号到 agent 调用
把外部信号翻译成 agent 调用——adapter 注册 · trigger 订阅 · routing。第一个标准 ddd/ 实例。
05 环境
resource env-resource · working-resource · registry
BC-6 Execution Resource物理资源 + 工作时资源
建模 runtime-host / user-host / agent-computer 环境资源 + WorkingResource registry(一次性 sandbox / browser / GPU)。
INV-3a · INV-3b
GOV 治理
— horizontal — two-layer tenancy
BC-7 TenantADR-012 引入 · 横切所有 owner-scoped 资源
双层租户模型:UserAccount (个人) / OrgTenant (组织)。owner_tenant 是 fleet · session · replica scope 的边界。
INV-4
INV-NEW-7
§ 05 · 不变式参考卡

Five Locked.
Five Fleet.

十条不变式是三正交命题的形式化表达—— 5 条 Locked(vision 层 · 2026-05-19 锁定) + 5 条 Fleet(ADR-013 派生 · 2026-05-28)。

INV-1/2(vision)与 INV-1/2(ADR-013 user-given)同名但语义不同—— 前者是 vision 层根命题,后者是 fleet 形态下的工程边界。 互证关系详见 ADR-013 §1.3。

Locked · vision · 2026-05-19 Derived · ADR-013 · 2026-05-28
INV-1 vision · runtime

Runtime 实例可挂可补

runtime 进程崩溃,新 runtime 从 State 恢复继续。failover 是常态而非例外。

INV-2 vision · state

State 永不丢失,且不可阻塞 Runtime 写入

append-only + fire-and-forget——State 的耐久性不能拖慢 Runtime 主流程。

INV-3a vision · resource

环境资源 embodiment continuity

runtime-host / user-host / agent-computer 在产品视角持续在;backing 实例可替换,identity 不可换。agent-computer 是化身,不是工具。

INV-3b vision · resource

工作时资源 ephemeral replaceability

WorkingResource 实例挂了——只能 acquire 新实例续,不强求"接续同一 instance"。一次性 sandbox / browser / GPU job 均属此类。

INV-4 vision · cross-axis

三者事务边界互不跨越

Runtime / State / Resource 不能要求"原子一致提交"——这是三正交独立性的工程兜底。

INV-5 vision · cross-axis

三正交不影响同一会话的连续性

session 跨 runtime / resource 实例切换仍是同一 RuntimeSession——业务视角"还是这个会话"。

INV-NEW-5 ADR-013 · affinity

Session-Worker Affinity

session ACTIVE 期内所有 DispatchOrder 命中同一 worker_id;TERMINATED 或 lease 失效后才允许 reschedule + epoch+1。K8s pod scheduling sticky 同源。

INV-NEW-6 ADR-013 · authority

Authority Reachability

新 session 起前必须能 ack-write 到 authority(带超时);不可达即 reject——避免离线期 session_id 与 authority 回线后冲突。Kafka min.insync.replicas 同源。

INV-NEW-7 ADR-013 · replica

Replica Scope Containment

partial replica 内 session 集合 ⊆ 本节点曾任 affinity 的 session ∩ owner_tenant 可见范围。多租 SaaS 标准做法。

INV-NEW-8 ADR-013 · lease

Single-Writer Per Session

同一 session_id 任一时刻仅一个 worker 持有有效 affinity lease;authority 颁发 + heartbeat 续期 + 过期自动失效。K8s / etcd lease 同源。

INV-NEW-9 ADR-013 · LSN

Append-Only + Monotonic LSN

同一 session 的 EventLog append 序号在 affinity worker 上单调递增;ship 后保留同序。Kafka offset / Postgres LSN 同源。

⟂ 互证 ⟂ synthesis

user-given INV-1 = INV-NEW-5 ∧ INV-NEW-8

user-given INV-2 = INV-NEW-6 ∧ INV-NEW-7 ∧ INV-NEW-9

INV-NEW-5~9 是 Runtime + State 维度形态的具体化精化,不推翻 vision 5 INV,不动三正交命题。

§ 06 · 13 决策快照

The Decisions
on Record.

10 个 Architecture Decision Record——从 ADR-001(control plane 定调)到 ADR-013(分布式异构 fleet 架构 cap)。 任何 ADR 翻转都需新 ADR + supersession。

ADR-002 / 004 / 005 / 006 留作未来扩展卡位;ADR-013 是本期 cap,Proposed 状态。

ADR · 001 accepted

Control Plane and Data Planes Architecture

子项目根本架构定调——K8s 风格 control plane + 注册协议 + 可插拔 data planes。

foundationtopology
ADR · 002 accepted

Cross-BC Collaboration via Events and Policies

跨 BC 协作走事件 + 策略——不直接依赖、不直接调,所有 cross-cutting 走 EventBus。

collaborationevents
ADR · 003 accepted

Kernel Import vs Predecessor Copy Policy

kernel 资源的导入与前任拷贝策略——共享 vs 独立的边界判定。

kernelpolicy
ADR · 007 accepted

External Agent Harness Integration

外部 agent harness 接入协议——如何把第三方 agent runtime 纳入控制平面。

integrationplugin
ADR · 008 accepted

Agent Dispatch and Instance Lifecycle Model

DispatchOrder · AgentInstance 生命周期模型——软引用 worker_id + 状态机。

dispatchlifecycle
ADR · 009 accepted

Failover and Recovery Model

五分类故障域 + recovery saga——ADR-013 D-1 degraded-write 扩展为 B 类新增子类。

failoverrecovery
ADR · 010 accepted

Inbound Control Signal Architecture

inbound 子系统控制信号架构——adapter / trigger / routing 的协议骨架。

inboundcontrol-signal
ADR · 011 accepted

Inbound Matching Ownership and External Access Protocol

inbound matching 归属 + 对外访问协议——谁能订阅、谁能投递、谁拥有 source。

inboundaccess
ADR · 012 accepted

Tenant Bounded Context and Two-Layer Tenancy

BC-7 Tenant 立为治理 BC——UserAccount / OrgTenant 双层模型;fleet ⊆ owner_tenant。

tenantgovernance
ADR · 013 ● proposed

Distributed Heterogeneous Fleet Architecture

WorkerNode 升格为用户拥有的设备群 + State Authority / Replica 二分。本期 cap 决策。

fleetdistributed2026-05-28