全部場數

004 · Agent 的身分其實是一份 Log

講者主張 agent 的身分不在 model 或 runtime,而是那份可回放的事件紀錄,也就是 log。

2026-06-2515:11Ishaan Sehgal(Omnara)Agent開發工具開源創業看原片

原標題:The Log Is The Agent - Ishaan Sehgal, Omnara

重點摘要

  • Agent 的身分是 log,不是 model講者用 Skyrim 存檔類比:角色的本體不是主機或手把,而是可攜帶、可還原的存檔資料;agent 也一樣,身分寫在 log 裡,model 與執行環境只是拿來讀寫這份紀錄的介面。
  • log 才是唯一真實紀錄log 是 append-only 的事件歷史,記下每一次 user input、model output、tool call、tool result、permission 與 failure;context window、UI、除錯追蹤、稽核、compaction 全部只是從這份 log 算出來的投影(projection),log 本身才是不變的那份。
  • compaction 有損,不等於丟掉 agentcontext window 有限,log 遲早要壓縮,但壓縮出來的摘要一定會漏掉細節,無法完整還原原始狀態;只要保留原始 log,隨時能重新產生投影,真正丟掉的是只留壓縮版、扔掉原始 log 的時候。
  • log 不等於整個世界agent 能做的事(改檔案、開 GitHub issue、寄信)會在 log 之外留下狀態變化,回溯 log 沒辦法讓外部世界跟著倒轉,例如信寄出去就是寄出去了;log 的職責只是忠實記下 agent 做了什麼、看到什麼、還需要什麼才能接著做。
  • 把 log 當第一等公民,可靠度與擴充都變簡單process 死掉不會弄丟正在等待的 permission prompt,因為新的 worker 能照 log 重建狀態接手;一個 process 能同時推進上千個 agent,分享 agent 也不必複製貼上對話紀錄,直接授權讀寫同一份 log 就好,換 model provider 也只是換一種讀 log 的轉接器。
  • 最深的鎖定是 log 鎖定講者認為 model 和 API 都能替換或包一層,真正難擺脫的是 log 被平台掌握;log 一旦被平台拿走,等於整個 agent 被拿走,而 agent 往往裝著使用者最私密的資料,這也是 Omnara 打造開源 managed agents 平台的理由。

時間軸

時碼點下去會跳到影片的那一段。

時碼段落重點
00:00開場Ishaan Sehgal(Omnara CEO)開場破題:多數人把 agent 等同 model 或執行環境,他認為這個預設本身就是錯的,身分其實藏在 log 裡。
00:17Skyrim 類比講者以玩了 100 小時的 Skyrim 角色為例:角色不是主機、不是手把,而是可以下載、復原的存檔資料,agent 的身分也是同一套道理。
01:39log 的定義log 是 append-only 的事件歷史,記下每一次 user input、model output、tool call、tool result、permission 與 failure,agent 每個狀態轉換都寫進這份紀錄。
02:21簡化成讀寫迴圈把 agent 定義成 log 之後,系統簡化成不斷讀寫同一份紀錄的迴圈:model 讀 log 決定下一步,tool runner 執行後把結果寫回去。
03:13loop 本身可拋棄重點不是這個迴圈多複雜,而是迴圈本身可以拋棄:一個 worker 讀 log、推進一步、寫回結果就能消失,換另一個 worker 接手也沒差,講者類比資料庫當年從表格轉向以 log 為核心的演進。
04:23質疑一:compactioncontext window 有限,log 遲早要壓縮,但壓縮出來的摘要一定是有損的,無法完整還原原始狀態;只要保留原始 log,還是能重新產生新的投影。
05:31質疑二:log 之外agent 能做的事(改檔案、開 issue、寄信)會在 log 之外留下痕跡,回溯 log 沒辦法讓外部世界跟著倒轉;log 的職責只是忠實記下 agent 看到與做過的部分。
06:58可靠度:prompt 不遺失講者舉例,現在用 Claude Code 時如果在 permission prompt 卡住、process 就掛掉,恢復後 prompt 會不見;若 log 才是 agent 本體,新的 worker 接手也能看到 prompt 還在原處。
07:46規模化到千個 agent多數 harness 是一個 process 對一個 agent,agent 因此被綁在特定機器上;把 log 當狀態之後,一個 process 可以同時推進上千個 agent,不需要 sticky session 或狀態搬遷。
08:20forking 與多人協作log 可以在任一時點分支,一條讓 Claude 跑,另一條讓 GPT 或其他開源 model 跑;分享 agent 也不必複製貼上對話紀錄,直接授權讀寫同一份 log 就好。
09:29跨 provider 遷移若 agent 身分被綁死在特定 provider 的 thread 與記憶格式裡,換 provider 會很痛苦;log 為核心時,換 provider 只是換一種讀寫轉接器,agent 可以從 Claude 開始、換到 GPT、再由 Qwen 完成而不失去自己。
10:03現有工具的問題講者點名 Claude Code、Codex 把 log 寫成本地 JSONL 檔且是 fire-and-forget,寫入失敗資料就沒了;OpenCode 用 SQLite 儲存,也有不少關於資料損毀、跨 session 難查詢的回報。
11:11最深的鎖定model 和 API 都能替換或包一層,真正難以擺脫的是 log 被平台掌握;log 一旦被平台拿走,平台等於拿走了整個 agent,而 agent 往往裝著使用者最私密的資料。
12:25Omnara 的架構Omnara 把 agent 執行拆成一組圍繞 log 協調的元件:worker 負責推進迴圈但本身不是 agent,呼叫 model、分派 tool、寫回 log,半路掛掉也能換別的 worker 接手。
13:43結語:即將開源講者總結 agent 不只是一次 model call、不是 prompt、loop 或 sandbox,而是持續累積的工作歷史,也就是 log;並預告 Omnara 即將開源以 session log 為核心、使用者可完全擁有與檢視的 managed agents 平台。

值得記的話

名詞與人物

Omnara講者任職的新創公司,他是 CEO,正在打造以 session log 為核心的開源 managed agents 平台。
log這場的核心概念:append-only 的事件歷史,記下每一次 user input、model output、tool call、tool result、permission 與 failure,講者主張這才是 agent 的身分本體。
projection(投影)講者用來稱呼從 log 算出來的各種輸出,例如 context window、UI、除錯追蹤、稽核紀錄、compaction 都只是 log 的投影,log 本身才是原始紀錄。
compaction把過長的 log 壓縮成 model 能處理的較小表示法;講者強調這個過程是有損的,不會完整還原原始狀態。
Skyrim講者開場用來類比 agent 身分的電玩,重點是玩家角色的身分在存檔資料裡,不在主機或手把。
Claude Code講者舉的例子:目前若在 permission prompt 卡住時 process 死掉,恢復後 prompt 會消失,用來說明現有 harness 沒有把 log 當第一等公民。
OpenCode講者提到的另一個 agent harness,用 SQLite 儲存狀態,他指出社群回報不少資料損毀與跨 session 查詢困難的問題。
log lock-in講者提出的概念:比 model 或 API 鎖定更難擺脫的鎖定形式,log 一旦被平台掌握,平台就等於掌握了整個 agent。

延伸

  • 提到 Anthropic 有類似的 hosted managed agent 服務,並預告每個 managed provider 都會想擁有更多這個技術堆疊,但只是點名帶過,沒有細講實際功能。
  • 提到部分平台用 durable objects 分片儲存 log,導致重建歷史、跨 session 查詢困難,但沒有點名是哪些平台。
  • 提到 Omnara 的架構會呼叫 model provider、把 tool 分派到對應的執行環境完成後再寫回 log,但沒有說明 sandbox 或執行環境的實作細節。