所有節目›AI Engineer Europe 2026| World's Fair 2026完整場次線上軌AI in HealthcareSoftware Factories
Make your own event-sourced agent harness using stream processors在 YouTube 看這一場

AI Engineer Europe 2026 · 工作坊 · 2026-05-14 · 64 分

把 agent 當成一條事件串流

Make your own event-sourced agent harness using stream processors · Jonas Templestein,Iterate

Jonas 想用純事件溯源的方式做 agent harness:一切都是事件,行為由 reducer 與 stream processor 組成。現場 demo 屢屢卡關,但設計想法講得清楚。

其他:產品與研究介紹看原片 ↗

概要

  • 一切都記成事件Jonas 想要純事件溯源的 agent harness,理由是好除錯:現有的做法總有些副作用只能事後從 OTel traces 才看得到。
  • 每個 agent 都有路徑與網址事件串流像檔案系統一樣用路徑分層,agent 一存在就該有 URL,用 HTTP 與 curl 就能寫入、訂閱。Jonas 也坦言現場的服務沒有任何驗證,不安全。
  • processor 只做兩件事reduce 函式同步地把事件折成狀態,不碰副作用;副作用放在 after append。這樣程式睡著再醒來時,會先追完歷史再決定要做什麼,不會對過去的事件重打 LLM 請求。
  • 平台自己也是 processor暫停串流的 circuit breaker、介面上的 feed items,都是跑在事件上的 processor;也能把程式碼放進事件,讓串流自己變成 agent。
  • 不要 before hookJonas 反對在 agent 迴圈前加 before hook,說它很容易破壞 context caching,OpenClaw 就出過效能大退步與成本暴增。整個系統的設計是最終一致,外部服務最多等一小段時間,沒趕上就照常往下走。
  • demo 沒能完整跑起來開場臨時調整、環境與編輯器出狀況,OpenAI processor 最後沒跑成,Jonas 承諾之後補錄影片。

原話

  • “I would like to find out whether this is like dumb or cool”

    我想知道這到底是蠢還是酷

    ▶ 01:06
  • “the moment an agent exists, it should have a URL”

    agent 一存在,就該有一個網址

    ▶ 03:48
  • “And then you should not do side effects in this reduce function.”

    而且不應該在這個 reduce 函式裡做副作用

    ▶ 31:23
  • “You can write the 40 lines of code required for a basic AI agent.”

    基本的 AI agent 只要寫 40 行程式碼

    ▶ 52:35
  • “But broadly speaking, I'm very against before hooks.”

    但整體而言,我非常反對 before hook

    ▶ 59:04

延伸

  • Jonas 說會另外錄一支影片,完整示範這場沒能跑成的部分,包括把 Pi、Claude 或 OpenCode 接到事件串流。
  • Jonas 提到可以做一個「unbundled dynamic worker」事件類型,由另一個 processor 負責打包相依套件,解決目前腳本不能帶 npm 套件的問題。
  • 提問環節裡的 prompt injection 防護服務、按次收費的外部服務,只是 Jonas 舉的假想例子,並非已經做出來的東西。

章節

點時碼直接跳到原片的那一段。

  1. 即興開場Jonas 與同事 Misha 說明這場是臨時決定、SDK 才剛推上去,打算當成即興 hackathon 來做。
  2. 純事件溯源的想法Jonas 想自己做 coding harness:純事件溯源、可除錯、可被人與 agent 自己擴充,而且能組合。
  3. agent 放在邊緣、有網址agent 就是會講 HTTP 的聯網程式,一出生就該有 URL;分散式的好處是外掛語言不拘,代價是可能出現競爭條件與無限迴圈。
  4. 事件服務與 agent path介紹 events.iterate.com:每個 agent 有類似檔案路徑的位置,裡面是 YAML 格式的原始事件,這就是整套的基本單位。
  5. 事件格式與即時訂閱示範用 curl 寫入 hello world,說明事件信封的欄位與遞增的 offset,加上 live=true 就能用 SSE 持續收事件。
  6. 錯誤也是事件格式不合的內容會被記成一筆錯誤事件;另有 idempotency key,以及用事件暫停串流,防止無限迴圈。
  7. 排程與訂閱說明可以每五秒產生 heartbeat、排定未來的事件,並讓串流把事件推送給指定的網址。
  8. 聽眾提問回答 Iterate 是什麼,以及為什麼只要一種事件抽象就夠;也拿 Convex 打比方,說這像可程式化的串流。
  9. 準備 TypeScript 環境說明 API 與語言無關,但工作坊用已發佈的 TypeScript 客戶端;之後有一大段在處理編輯器與環境卡住的問題。
  10. SDK 的 ping 與 pong 範例用 SDK 建立 client、訂閱串流,收到 ping 事件就回寫 pong;這段之後仍受編輯器卡住與換電腦所拖慢。
  11. reducer 與 after append說明 processor 的設計:reduce 同步折狀態、不做副作用,副作用放 after append,這樣程式睡著再醒來會先追完歷史。
  12. 路徑當作 sub-agent可以寫入子路徑或上層路徑;要做 sub-agent,就寫到子路徑並訂閱它輸出的結果事件,結果出來時父層會被喚醒。
  13. OpenAI processor 的狀態設計逐步說明 agent 的狀態該有 model、system prompt 與 history,並用 Zod 定義事件;程式現場跑不起來。
  14. 認輸與重新說明Jonas 承認無法完成原本的 demo,改成口頭說明這個架構在分散環境下的用意。
  15. 平台內部的 processor說明 circuit breaker 與介面上的 feed items 都是 stream processor,並能直接重用 Pi 的 reducer。
  16. 把程式碼寫進事件示範 dynamic worker configured 事件:把含 reducer 的腳本放進串流,串流收到 ping 就會回 pong。Jonas 說 AI agent 版本也用同樣方式跑起來了,OpenAI API key 放在串流外,送出請求時才代入。
  17. 錯誤處理與部署方式出錯也只會變成一筆事件;Jonas 設想可以先跑 TypeScript 編譯、把錯誤記成事件,再交給 LLM 修好後發出新事件。部署可以先在本機訂閱 SSE,再放上 Cloudflare Workers 這類服務,或直接用 Cloudflare 的 dynamic worker。
  18. 外部外掛與 before hook以防 prompt injection 的服務為例,說明 agent 最多等約 200 毫秒的外部回應;並解釋為何反對 before hook。
  19. durable streams 與基礎設施有聽眾追問底層,Jonas 說這類似 durable stream 規格;差別在於還要能把事件推送出去。
  20. 濫用與授權有聽眾問如何防止公開的串流被灌爆,Jonas 說需要驗證,並提出把授權與來源資訊也做成事件的想法。

名詞

Iterate
Jonas 任職的公司;用自己的話說,現階段比較像自製的 hacker 俱樂部,還沒有上市產品
Misha
與 Jonas 一起主持這場的同事,負責現場修 SDK、寫範例
events.iterate.com
Iterate 這週做出的事件服務,有網頁介面,可用 curl 寫入與訂閱事件
event sourcing
把所有發生的事都記成事件,狀態由事件推導出來;Jonas 認為這樣最好除錯
stream processor
讀事件串流的程式,由 reducer 與 after append 兩部分組成
reducer
同步函式,輸入狀態與事件,回傳新狀態,不做副作用
after append
processor 裡專門放副作用的地方,例如發出 LLM 請求
circuit breaker
事件在一秒內進來太多時,自動暫停串流,避免無限迴圈
dynamic worker configured
一種事件類型,內容是含 reducer 與 after append 的腳本,寫入後該串流就跑這支程式
durable streams
附 offset 的 append-only 事件日誌規格,Jonas 說他們的實作不完全照規格走
Pi
以可擴充著稱的 agent harness,Jonas 稱讚它讓 agent 能自行擴充

相關影片 同在「其他:產品與研究介紹」