RUNTIME 执行体 · 肉体
承载 agent 进程 / 线程 / worker 的调度与生命周期。Worker pool · dispatch order · assemble pipeline · failover saga 都属于这一轴。
omne_harness 是 OMNE agent 系统的控制平面 sub-project——把 Runtime × State × Resource 拆成三件生命周期正交独立的事,并以分布式异构 fleet 形态承载 always-on 的物质基础。
agent harness 的核心命题是把 执行体 · 真相 · 物理资源 三件事生命周期正交独立—— 进程挂了可重启、状态永不丢失、资源可替换;三者不能要求"原子一致提交", 但同一会话跨实例切换仍是同一条命脉。
灵感来自 Anthropic Managed Agents(Control / Session / Sandbox 三件套), 但术语与守护边界全部按 OMNE 自有 ubiquitous language 重锚。
承载 agent 进程 / 线程 / worker 的调度与生命周期。Worker pool · dispatch order · assemble pipeline · failover saga 都属于这一轴。
会话发生过的领域真相——append-only 事件日志 + 由日志投影出的所有 state 视图。State 不依附 Runtime。
agent 视野下的一切物理资源——长期存在的环境资源(runtime-host / user-host / agent-computer)+ 按需 acquire 的工作时资源(一次性 sandbox / browser / GPU job)。
你拥有的所有计算资源都应当能成为 agent 的运行载体—— 手机 · 笔记本 · 台式机 · Mac Mini 集群 · 企业云—— 同属一个 owner 的设备群构成 agent runtime 的分布式异构计算池。
always-on 不可能寄生在单一设备上(手机会关机、笔记本会合盖); 它必须寄生在整片设备群上—— 其中至少一部分长期可达,承担 STATE_AUTHORITY 角色。 两条用户给定不变式把"分布式 agent"的难度从分布式数据库档拉回到主从复制档。
用户自选 Mac Mini 集群担任 STATE_AUTHORITY(always-on 保障设备); 其它设备承担 COMPUTE + 本地 PARTIAL_REPLICA "曾经跑过的 session"。
中央云集群担任 authority;员工设备 per-employee partial replica(不跨员工,由 BC-7 tenant ACL 守护)。 模型层与个人形态完全同构——差异仅在 NodeRole 分配与 replica scope 策略。
类比 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 独立演进 = 重新实现协议。
ExternalSourceSpec 让 omne_engram / omne_user_cognition / omne_veracity 通过 envelope pre-project 入 state
5 个子系统承载 7 个 Bounded Context,沿用"agent 身体"隐喻——
骨架 · 皮囊 · 肉体 · 灵魂 · 入口 · 环境。
每个子系统在 libs/ 下分层:
core · web_server · web_client · cli · agentic。
BC-7 Tenant 由 ADR-012 引入作为治理 BC(不直接对应子系统,而是横切所有 owner-scoped 资源)。
十条不变式是三正交命题的形式化表达—— 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。
Runtime 实例可挂可补
runtime 进程崩溃,新 runtime 从 State 恢复继续。failover 是常态而非例外。
State 永不丢失,且不可阻塞 Runtime 写入
append-only + fire-and-forget——State 的耐久性不能拖慢 Runtime 主流程。
环境资源 embodiment continuity
runtime-host / user-host / agent-computer 在产品视角持续在;backing 实例可替换,identity 不可换。agent-computer 是化身,不是工具。
工作时资源 ephemeral replaceability
WorkingResource 实例挂了——只能 acquire 新实例续,不强求"接续同一 instance"。一次性 sandbox / browser / GPU job 均属此类。
三者事务边界互不跨越
Runtime / State / Resource 不能要求"原子一致提交"——这是三正交独立性的工程兜底。
三正交不影响同一会话的连续性
session 跨 runtime / resource 实例切换仍是同一 RuntimeSession——业务视角"还是这个会话"。
Session-Worker Affinity
session ACTIVE 期内所有 DispatchOrder 命中同一 worker_id;TERMINATED 或 lease 失效后才允许 reschedule + epoch+1。K8s pod scheduling sticky 同源。
Authority Reachability
新 session 起前必须能 ack-write 到 authority(带超时);不可达即 reject——避免离线期 session_id 与 authority 回线后冲突。Kafka min.insync.replicas 同源。
Replica Scope Containment
partial replica 内 session 集合 ⊆ 本节点曾任 affinity 的 session ∩ owner_tenant 可见范围。多租 SaaS 标准做法。
Single-Writer Per Session
同一 session_id 任一时刻仅一个 worker 持有有效 affinity lease;authority 颁发 + heartbeat 续期 + 过期自动失效。K8s / etcd lease 同源。
Append-Only + Monotonic LSN
同一 session 的 EventLog append 序号在 affinity worker 上单调递增;ship 后保留同序。Kafka offset / Postgres LSN 同源。
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,不动三正交命题。
10 个 Architecture Decision Record——从 ADR-001(control plane 定调)到 ADR-013(分布式异构 fleet 架构 cap)。 任何 ADR 翻转都需新 ADR + supersession。
ADR-002 / 004 / 005 / 006 留作未来扩展卡位;ADR-013 是本期 cap,Proposed 状态。
子项目根本架构定调——K8s 风格 control plane + 注册协议 + 可插拔 data planes。
跨 BC 协作走事件 + 策略——不直接依赖、不直接调,所有 cross-cutting 走 EventBus。
kernel 资源的导入与前任拷贝策略——共享 vs 独立的边界判定。
外部 agent harness 接入协议——如何把第三方 agent runtime 纳入控制平面。
DispatchOrder · AgentInstance 生命周期模型——软引用 worker_id + 状态机。
五分类故障域 + recovery saga——ADR-013 D-1 degraded-write 扩展为 B 类新增子类。
inbound 子系统控制信号架构——adapter / trigger / routing 的协议骨架。
inbound matching 归属 + 对外访问协议——谁能订阅、谁能投递、谁拥有 source。
BC-7 Tenant 立为治理 BC——UserAccount / OrgTenant 双层模型;fleet ⊆ owner_tenant。
WorkerNode 升格为用户拥有的设备群 + State Authority / Replica 二分。本期 cap 决策。