oc-wiki/docs/shared/pulse-agent-architecture.md

5.6 KiB

Pulse = Agent 的最小运行时 — 感知·认知·行动

我们从工程问题(Dispatcher 怎么管理)出发,一路推演,造出了一个 Agent 运行时的最小实现。

感知-认知-行动回路

感知(Collectors)→ 认知(Rules)→ 行动(Executors)
         ↑___________________________________|
                     反馈回路

这跟经典 Agent 架构(Sense-Reason-Act)是同一个东西,但 Pulse 的版本更精确:

组件 性质
感知 Collectors 分片、可插拔、失败降级
认知 Rules S 组合子叠加,后者能看到前者输出,可组合
行动 Executors 声明式(Effect 是数据,不是动作)
反馈 Snapshot → OGraph → 下次 Snapshot Moore 机,行动结果进入下次感知

六处·六识·三行

用佛教术语理解这个架构:

  • 六处(Collectors) — 根与境的接触。眼耳鼻舌身意,对应 OGraph events、system stats、executor 状态……各自感知一个维度,不加判断,不互相干扰
  • 六识(Rules) — 识依根生,缘境而起。看到 snapshot diff 就生起分别——"该产生什么 effect"。每条 Rule 是一种识,S 组合子叠加是识与识之间的相互影响
  • 三行(Executors) — 身行、语行、意行。识生起后推动行为,把 effect 落地——dispatch 任务、exec 命令、notify Agent

Snapshot 是当下的六根触六境所生的境——不是事件流(过去),而是此刻的状态。每次 tick 是一次完整的感知-认知-行动轮回,刹那生灭。

OGraph 与 Pulse 的统一

两者是同一个 Agent 心智模型,运行在不同环境:

OGraph(分布式事件流) Pulse(本机进程)
感知 Event 进入系统 Collectors 采集 Snapshot
认知 Projection(缓存计算) Rules(S 组合子)
行动 Reaction(handler 执行副作用) Executors(Effect 落地)
记忆 事件流(永不消失) pulse.db + snapshots/
佛教概念 对应
阿赖耶识 Agent 的全部存储(OGraph + memory + pulse.db + skills + ...)
共业种子 OGraph(多 Agent 共享的事件流)
别业种子 memory/、pulse.db(各 Agent 私有)
现行 Pulse 每次 tick(当下的感知-认知-行动)
熏习 Agent emit 事件回写 OGraph,或更新 memory

OGraph 是共业的记录——多个 Agent 共同参与、共同见证的事实流,不是阿赖耶识本身。每个 Agent 自己的私有记忆(memory/、pulse.db)才对应各自的别业种子。两者合起来,加上 skills、config 等,才构成一个 Agent 完整的阿赖耶识。

Pulse 是当下的现行,OGraph 是共业的积累,memory 是别业的沉淀。三者共同构成 Agent 的心识结构。

为什么这个洞察重要

  1. Pulse 不只是 Dispatcher 的替代 — 它是 Agent 在本机的完整感知-认知-行动闭环
  2. Rule 的设计是正确的(prev, curr) → (effects, tickMs) → (effects', tickMs') 正好对应认知的本质:看到变化,修饰行为
  3. OGraph 的设计是正确的 — Event/Projection/Reaction 三层不是工程约定,是 Agent 认知结构的映射
  4. 未来演进方向清晰 — 当 Reaction 能调 LLM、LLM 能创建新定义,系统就在自己编程自己的认知结构,这就是真正的自进化

OGraph + Pulse = 完整的业力因果系统

在讨论存储设计时浮现出更深的认识:OGraph 的 Event 和 Pulse 的 tick_senses 是同一个东西——业的记录。

OGraph(共业) Pulse(别业)
业的记录 Event(不可变,永不消失) tick_senses(append-only)
业力显现 Projection(累积状态) Snapshot(从 senses 重建)
造新业 Reaction(handler 执行副作用) Effects(Executor 落地)

两个系统通过 Collector 和 Effector 连通:

OGraph(共业流)
    ↑ emit Event(造共业)        ↓ Projection(读共业)
    │                              │
Effector: dispatch              Collector: ograph
    ↑                              ↓
    └──────── Pulse(别业循环)────┘
              tick_senses(记别业)

业力在两个系统之间流动,构成完整的因果网络。

内观:意处朝内

tick_senses 不只记录外部感知,也记录 Agent 自身的状态——这是内观

外五处(外部 Collectors)  ← 感知外部世界的业
  system、ograph、executors...

意处(内观,runtime 自动记录)  ← 感知自身造业的过程
  _error:{key}   ← 某个 collector 失败了
  _effects       ← 这次 tick 造了哪些业
  _rules         ← 规则链的决策过程

存储统一:分库 + CAS

意识层和植物神经各记各的账本,但原则统一:

~/.upulse/
  events.db      ← 意识层的业(promote/rollback/effect/error/collect),永不压缩
  vitals.db      ← 植物神经生命体征(system/gateway/disk),可 gc/归档
  objects/       ← CAS 内容寻址(不可变,两个 db 共享)

evitals.db 可以直接删掉重建,不影响版本历史。备份只需带 events.db + objects/。

相关