他把 AI Agent 拆成“事件流”,现场敲出一个可暂停、可回放的智能体

AI PM 编辑部 · 2026年05月14日 · 18 阅读 · AI/人工智能

正在加载视频...

视频章节

如果你还在用一堆 spaghetti code 堆 AI Agent,这个视频可能会让你不太舒服。Jonas Templestein 在现场做了一件反直觉的事:他不是从模型、Prompt 或框架讲起,而是把 Agent 还原成一条条“事件流”。结果,一个可暂停、可调度、可回放、甚至 UI 都是 Agent 的系统,就这么被敲出来了。

他把 AI Agent 拆成“事件流”,现场敲出一个可暂停、可回放的智能体

如果你还在用一堆 spaghetti code 堆 AI Agent,这个视频可能会让你不太舒服。Jonas Templestein 在现场做了一件反直觉的事:他不是从模型、Prompt 或框架讲起,而是把 Agent 还原成一条条“事件流”。结果,一个可暂停、可调度、可回放、甚至 UI 都是 Agent 的系统,就这么被敲出来了。

“这到底是蠢,还是很酷?”他一上来就把自己推到悬崖边

Workshop 一开场,Jonas 就抛出一句近乎自嘲的话:“I would like to find out whether this is like dumb or cool.” 这不是玩笑,而是他对当下 AI Agent 现状的真实怀疑。我们已经习惯了复杂框架、层层抽象和难以调试的 Agent 系统,但真的非得这样吗?

他承认,这套想法并不是某个宏大设计,而是一些“noddling around”的念头慢慢拼起来的:如果 Agent 的核心不是模型调用,而是事件?如果状态不是藏在内存和对象里,而是天然可追溯?这些问题听起来简单,却直接挑战了主流 Agent 架构的默认假设。

真正的“原语”:不是模型,而是事件流

视频中最重要的一句话出现在他介绍“we have invented this thing”的时候——他要构建的,是一个全新的 Agent 原语(primitive)。这个原语不是 Tool、不是 Prompt、也不是 Memory,而是一条 append-only 的事件流。

在这个世界观里:
- Agent = 一个事件流 + 若干 stream processor
- 行为不是“执行函数”,而是“向流里追加事件”
- 状态不是 mutable 的,而是从历史事件中计算出来的

这带来一个立刻能感知到的好处:系统极其宽容(tolerant)。他说得很直白——你不会把同一个事件 append 两次;你可以随时 pause 一个 stream;你甚至可以调度事件,比如每 5 秒一个 heartbeat。这些在传统 Agent 里需要小心翼翼处理的边界条件,在事件模型里变成了默认能力。

“Hello World”就是一个 Agent,这不是玩笑

当 Jonas 敲下“hello world”,他说了一句很容易被忽略的话:“this would already be an agent.” 在他的定义里,只要你有一个可路由、可订阅、可追加事件的流,它就是 Agent。

更有意思的是“边缘可路由(edge publicly routable)”这个点。Agent 不再是躲在后端的黑盒,而是天然适合暴露在边缘:你可以预先设计好路径前缀,让外部世界以事件的方式和 Agent 交互。

这也解释了为什么他不断强调 extensible——如果你觉得这东西“actually cool and not dumb”,那你应该能很容易地在它之上扩展出新的能力,而不是推倒重来。

调度、取消、订阅:Agent 终于像“系统”而不是“脚本”

视频中段开始进入真正让工程师点头的部分:
- 你可以 schedule 事件(比如心跳)
- 你可以 cancel schedule
- 你可以 pull subscription

这些听起来像基础设施能力,但恰恰是大多数 Agent Demo 最脆弱的地方。Jonas 甚至直接展示了一段“正常的 spaghetti code TypeScript 程序”,然后让你“假装 Boris 是一个 sub-agent”。

当例子跑不起来时,他选择了一个极其诚实的做法:“let's just admit defeat… we store that in an event.” 失败本身也是事件。一旦你这么做,那条 stream 本身,就成了 AI Agent。这种思路对习惯了 try/catch 和临时状态的开发者来说,几乎是一种思维重构。

最容易被低估的一点:UI 也是一个流处理器

在接近尾声时,Jonas 轻描淡写地说了一句杀伤力极强的话:“this UI is also a stream processor… eventually consistent.”

这意味着什么?意味着前端不再是 Agent 的附属展示层,而是同一个事件宇宙里的参与者。UI 消费事件、派生状态、再产生新事件,一切都是 eventually consistent。

如果你做过复杂 Agent 的可视化或调试界面,你会立刻意识到这件事的价值:当 UI 和 Agent 共用事件模型,调试、回放、审计,都会从噩梦变成日常操作。

总结

这场 workshop 的价值,并不在于你是否立刻去实现一套 event-sourced agent 框架,而在于它逼你重新思考一个问题:AI Agent 的复杂性,究竟应该来自模型,还是来自系统设计?

Jonas 给出的答案很明确——先把系统打磨成一个可暂停、可回放、可组合的事件机器,模型只是其中一个 processor。对从业者来说,你可以从一个小动作开始:下一个 Agent 项目,试着把“状态变化”全部显式地记录为事件。哪怕模型不变,你也会立刻感觉到,系统开始变得更可控了。


关键词: AI Agent, Event Sourcing, Stream Processor, 系统架构, 智能体设计

事实核查备注: 需要核查:1)视频的实际时长;2)Jonas Templestein 的身份与公司 Iterate 的准确关系;3)是否明确提出“event-sourced agent harness”作为术语;4)是否有公开视频中的代码仓库或示例链接。