ActiveGraph:日志即 Agent——事件溯源的反应式图架构

一句话版本:Yohei Nakajima(BabyAGI 作者)提出了一种颠覆性的 agent 架构——不是用 LLM 对话循环驱动一切,而是让 append-only 事件日志成为源头真理,agent 行为只是对图状态变化的反应。这就实现了确定性重放、廉价分叉和完整因果溯源——三个现有 agent 框架做不到的事情。

来源

日期: 2026-05-21 提交,Yohei Nakajima(Untapped Capital)

核心内容

现有架构的问题

所有主流 agent 框架(LangChain、CrewAI、AutoGPT 等)都是这么长的:

1. 先有 LLM 对话循环

2. 加上 工具调用

3. 加上 规则和护栏

4. 最后在外部"拧上"日志层做可观测性

5. 状态用某种 lossy 方式存成"memory"(摘要、嵌入、向量索引)

后果就是:日志是副产品,不是主体。你想回答"这个结论是怎么来的"?一场噩梦。

ActiveGraph 的颠倒设计

日志不是副产物——日志就是 agent 本身。

事件的例子


{"id": "evt_002", "type": "goal.created", "actor": "user",
 "caused_by": null, "payload": {"goal": "Diligence: Northwind Robotics"}}

{"id": "evt_003", "type": "behavior.started", "actor": "runtime",
 "caused_by": "evt_002", "payload": {"behavior": "diligence.company_planner", ...}}

{"id": "evt_004", "type": "object.created", "actor": "diligence.company_planner",
 "caused_by": "evt_002", "payload": {"object": {...}, "provenance": {...}}}

每个事件都有 caused_by 指针,构成完整的因果链路。

四种行为体

类型说明
函数纯逻辑反应
需要配置的行为
LLM 驱动触发 LLM 调用,请求和响应均被记录为事件
关系行为附着在类型化边上——两个对象建立关系这一动作本身就能触发计算

三个关键能力

1. 确定性重放

理论上 LLM 调用是非确定性的,但 ActiveGraph 的做法:首次执行时把 LLM 响应作为事件记录下来;重放时通过内容寻址缓存(content-addressed cache,按请求哈希索引)直接返回缓存的响应,不做新的模型调用。

这就意味着你可以从一个日志文件完整重现 agent 的整个运行过程,包括中间每个 LLM 调用返回了什么。

2. 廉价分叉

在日志的任意事件处分叉,共享前缀不重新执行。这意味着你可以做反事实实验:

3. 端到端谱系

从高层目标("调研这家公司")到最底层的 single model call,完整的因果链都在日志里。每个对象都记录 created_bycaused_by_event。这不是事后追溯,而是架构第一性原理。

确定性契约

行为体必须是输入确定的函数:

不是静态施加强制。违反契约的行为第一次跑没问题,只有重放或分叉时才会在第一个不一致的事件上报错。作者明确说:这已经足够了。

工作示例:投资尽职调查

论文附带了一个完整可复现的例子:一个 diligence pack,包含 93 个对象、76 个关系、3 家公司。零编排代码:planner 行为在 goal 创建时触发,创建 company;question_generator 响应 company 自动生成研究问题;researcher 响应每个问题自动研究——完全通过事件-订阅链驱动。

与 BabyAGI 的血缘关系

BabyAGI(也是 Nakajima 的作品)本质上是一个 while 循环 + 全局任务列表:执行当前任务 → 总结目标 → 生成后续任务。ActiveGraph 将同一个循环重新表达为共享图上的反应式行为。这个演进路径非常清晰。

为什么是图而不是纯日志?

事件溯源只能提供扁平的状态投影。图提供了三层价值:

1. 订阅可以是图结构模式(如"一个 claim 回应了一个未回答的问题"),纯事件流做不到

2. 关系行为让逻辑附着在边上(对象之间的关系本身可以触发计算)

3. 结构 diff 可以比较两个运行的图拓扑差异

"日志让状态可重现,图让反应式和比较可表达。两者缺一不可。"

分析与关联

与 OpenClaw 的关联

这是最有意思的关联性。OpenClaw 目前也在做 agent 编排和记忆管理,但用的是更传统的方式(lossless-claw 已经很接近事件溯源的思路了)。ActiveGraph 的论文直接给了我们一个理论框架来思考 OpenClaw 的架构方向:

维度ActiveGraphOpenClaw 当前启示
状态持久化事件溯源lossless-claw 摘要日志即 state,不需要单独的 memory
可重放确定性重放回顾但不一定可重现⭐ 可以借鉴
分叉/反事实核心能力不支持⭐ 未来的可能性
谱系追踪端点到端有限⭐ 日志可以增强
编排隐式(事件驱动)显式(workflow)两种范式各有优劣

Lossless-claw 已经部分走在事件溯源的路上——保存事件日志、做紧凑摘要、支持回顾。ActiveGraph 的洞见是:如果把日志本身当做源头真理而不是副产物,就能获得 lossless-claw 提供不了的重放、分叉和谱系保证。

核心洞见值得注意

> "没有组件指令另一个组件;协调完全通过共享图发生。"

这实际上是一种 actor 模型 + 事件溯源 的混合体。和传统的 agent 框架(LangChain 等)有本质区别——传统的思维是"编排"(orchestration),ActiveGraph 的思维是"涌现"(emergence)。

作者克制的地方

Nakajima 非常诚实地说出了论文不做的事情:

这种克制让论文更有价值——它是在提供一个新范式,而不是又一个刷分报告。

评分

维度评分说明
**创新性**★★★★★颠倒 agent architecture 的 Log-First 设计,有本质贡献
**技术深度**★★★★☆系统论文,但具体实现细节(如 Cypher subset、cache 策略)可再深
**与项目关联**★★★★★直接相关:事件溯源、agent 日志架构、确定性重放
**可落地性**★★★☆☆Python 库可直接使用,但生产化需要更多工作
**作者可信度**★★★★★Yohei Nakajima,BabyAGI 作者,AI agent 领域的早期探索者
**社区反响**刚发布 3 天,暂无数据

报告生成: 2026-05-24 | 来源: arXiv:2605.21997, GitHub: yoheinakajima/activegraph