跳转到内容

架构深度解析

本指南深入讲解 Rotifer 协议的架构设计,涵盖 URAA 五层体系、适应度模型、Arena(竞技场)机制、Agent 生命周期以及 Binding(绑定)架构。

通用轮虫自治架构(URAA)将关注点分离为五个不可变层。每层承担单一职责,层间仅通过标准化接口通信。

┌─────────────────────────────────────────────────┐
│ L4: 集体免疫层 — 物种记忆 │
├─────────────────────────────────────────────────┤
│ L3: 竞争与交换层 — 选择压力 │
├─────────────────────────────────────────────────┤
│ L2: 校准层 — 免疫系统 │
├─────────────────────────────────────────────────┤
│ L1: 合成层 — 基因表达 │
├─────────────────────────────────────────────────┤
│ L0: 内核层 — 不可变信任锚 │
└─────────────────────────────────────────────────┘

信任根基。L0 强制执行不可变约束,任何高层均无法覆盖

  • 约束执行:每个 Gene(基因)执行前必须通过 L0 检查(权限、资源限制、伦理边界)
  • 状态锚定:Agent 状态压缩为固定大小摘要,防篡改持久化
  • 权限隔离:Gene 在隔离的权限域中运行——不可跨 Gene 访问状态

在 Playground 中,L0 通过 WASM 沙箱实现,具备燃料计量和内存上限。

协议的”核糖体”——将原始输入转化为标准化 Gene 片段并执行。

  • WASM 沙箱wasmtime 引擎,可配置燃料(指令预算)、内存限制和纪元中断
  • IR 编译器:Gene 编译为 Rotifer IR(WASM + 自定义段:rotifer.versionrotifer.phenotyperotifer.constraintsrotifer.metering
  • 双执行模式:Direct(express 导出)和 WASI(_start 入口点)

受胸腺选择启发的多阶段验证:

  1. 静态分析:Schema 验证、导出检查、禁止指令检测
  2. 沙箱模拟rotifer test 在隔离环境中用示例输入运行 Gene
  3. 受控试运行:逐步部署到 Agent 子集(未来)

L3: 竞争与交换层 — 选择与转移

Section titled “L3: 竞争与交换层 — 选择与转移”

两种机制驱动进化:

  • Arena:同域 Gene 按适应度 F(g) 竞争。本地和云端维护排名。Gene 根据适应度自动被选中。
  • 水平逻辑传递(HLT):高适应度 Gene 元数据在 Agent 间传播。Agent 根据能力缺口拉取 Gene。(当前通过 Cloud Registry;基于 libp2p 的 P2P 传播计划在 v0.9 实现)

网络级防御和模式检测:

  • 恶意 Gene 指纹在网络中广播
  • 防御策略在 Agent 间共享
  • 时间衰减确保过期威胁数据失效
  • 共识验证的写入操作防止误报

每个 Gene 有可量化的适应度分数。适应度函数使用乘法模型——任何单一因子为零将导致总分为零,避免弱维度被强维度掩盖:

F(g)=Srln(1+Cutil)(1+Rrob)LRcostF(g) = \frac{S_r \cdot \ln(1 + C_{util}) \cdot (1 + R_{rob})}{L \cdot R_{cost}}
符号定义
SrS_r成功率(成功调用次数 / 总调用次数)
CutilC_{util}覆盖利用率 [0, 1]
RrobR_{rob}鲁棒性评分 [0, 1]
LL归一化延迟评分
RcostR_{cost}归一化资源消耗(燃料、内存)

这种设计确保成功率为 0 的 Gene 总分一定为零,无论其速度或效率多高。

Gene 进入 Arena 前必须通过双重阈值:

  • F(g) >= τ (0.3) — 最低适应度分数
  • V(g) >= V_min (0.7) — 最低安全/验证分数

在 Playground 中,适应度从 Gene 内容哈希确定性计算,确保无需运行时执行即可获得一致排名。

安全评分评估 Gene 对 L0 约束的合规程度:

V(g) = 约束合规率 × 权限评分 × 资源评分
其中:
约束合规率 = 通过检查数 / 总检查数
权限评分 = 在声明权限内为 1.0,否则扣分
资源评分 = 在限制内为 1.0,超出按比例缩放

信誉在瞬时适应度之上增加了更长期的信任信号:

R(g) = Arena评分、使用评分、稳定性评分的加权组合
其中:
Arena评分 = F(g) 历史,按时间近度加权
使用评分 = 归一化下载量,上限 1.0
稳定性评分 = 归一化调用量,上限 1.0

时间衰减为 v0.9 计划项,当前尚未启用。

创作者信誉

R(d) = (Σ 正分 R(g_i) × ln(1+n)/n) + 社区奖励 // 奖励 = min(Arena 胜场 × 0.02, 0.2)

Arena 以纪元为单位运行。每个纪元内:

  1. Gene 通过 rotifer arena submit 提交
  2. 计算适应度 F(g)(Playground 模式中从内容哈希估算)
  3. Gene 在其领域内排名
  4. 排名靠前的 Gene 被选中用于 Agent 表达
  5. 多样性机制防止单一化(多样性低于阈值时纪元重置)

Gene 仅在其声明的 domain 内竞争(如 search.webcode.format)。跨域 Gene 不相互竞争。

云端 Arena 将竞争扩展到跨创作者:

  • rotifer arena submit --cloud 上传适应度结果到 Supabase
  • 服务端 get_arena_rankings() 生成全局排名
  • 信誉分数 R(g)F(g)V(g) 并列显示

Agent 经历四个状态:

Created → Active → Suspended → Terminated
Suspended

Agent 运行时,从其 Genome(基因组)中选择 Gene,使用组合代数执行:

  1. 手动选择--genes gene1,gene2,gene3
  2. 自动选择--domain search.web --top 3 从 Arena 选取排名最高的 Gene
  3. 管道执行:默认通过 Seq(顺序)组合 Gene

协议是 Binding 无关的。相同的 Gene IR 可在任何 Binding 上运行:

┌───────────────────┐
│ Gene IR (WASM) │ ← 一次编写
├───────────────────┤
│ RotiferBinding │ ← 切换 Binding
├─────┬──────┬──────┤
│本地 │云端 │Web3 │ ← 运行时目标
└─────┴──────┴──────┘
  • SQLite 存储,wasmtime 沙箱,本地 Arena
  • 自包含,无网络依赖
  • Supabase 后端(PostgreSQL + Storage + Auth + Realtime)
  • GitHub OAuth(PKCE 流程)
  • 发布/搜索/安装/Arena 的 REST API
  • 端点无关:通过 ~/.rotifer/cloud.json--endpoint 配置

P2P Binding(基础阶段 — 真正的 P2P 计划于 v0.9)

Section titled “P2P Binding(基础阶段 — 真正的 P2P 计划于 v0.9)”
  • Cloud-first 混合模型:云端 Registry 为主,P2P 为未来补充
  • network announcenetwork discovernetwork pull 命令已有基础阶段桩代码
  • Gene 发现当前通过 Cloud Registry,而非 P2P
  • 真正的 P2P 网络将通过 rust-libp2p(Kademlia DHT + GossipSub)在 v0.9 实现
  • 基于智能合约的约束执行
  • 链上信誉和适应度记录
  • 代币激励的 Gene 市场

完整的 Gene 生命周期:

创作者编写 Gene
→ rotifer scan(发现候选函数)
→ rotifer wrap(生成 Phenotype)
→ rotifer test(沙箱验证)
→ rotifer compile(WASM + IR 自定义段)
→ rotifer arena submit(本地排名)
→ rotifer publish(云端 Registry)
→ rotifer arena submit --cloud(全局排名)
→ 其他创作者:rotifer search + rotifer install
→ 信誉积累:R(g) 随使用增长
→ P2P 网络广播 Gene 元数据(v0.9 计划;当前仅 Cloud)