AI代理工作空間狀態與效應管理協議
reel 是一種協議,用於管理 AI 代理在工作空間中的狀態和副作用。它通過內容尋址類型和原子操作實現了事務性邊界,確保丟棄的操作不會產生實質影響。
reel 是一個針對 AI 代理工作空間狀態和效應管理的協議,旨在解決代理在推理過程中對外部系統造成不可逆影響的問題。當代理決定放棄某條推理路徑時,已經產生的外部副作用無法撤回。reel 通過定義事務性邊界,使得這些副作用可以在代理決定丟棄時根本不會被執行。
協議定義了六種內容尋址類型:Hash、Block、Ref、Delta、Capability 和 View。三個動詞——fork、commit 和 abort——以及三個不變量:可達性、丟棄的不可逆效應的沉默以及能力收縮。其關鍵設計在於,View 的待定副作用本身就是一個內容尋址的 Block。commit 將該塊移入已提交日誌並排出;abort 則丟棄引用,使塊不可達並被回收。從提交不可逆效應到 commit 之間不存在執行路徑,因為觸發效應所需的能力僅在 commit 的排出過程中構造。abort 不構造任何能力,因此丟棄路徑上的效應無法運行。
reel 將狀態、副作用和能力表示為同一種內容尋址塊,從而為整個工作空間提供回滾、審計和共享的統一事務內核。這意味着系統無需為每個功能單獨實現事務性,而是可以通過一個內核管理跨多個外部資源的工作路由。這種方法借鑑了已有的研究成果,包括 Gray (1981) 的事務模型、Wang & Zheng (2026) 的快照隔離、Berenson et al. (1995) 的可串行化、Miller, Yee & Shapiro (2003) 的能力模型以及 Garcia-Molina & Salem (1987) 的 Sagas。reel 的貢獻在於將這些概念組合在單一的內容尋址表示下。
目前,reel 包含規範文檔(spec/),定義了六種類型、三個動詞、三個不變量、效應類別、符合性準則和適配器接口。Rust 內核(crates/)包括多個 crate:reel-spec 提供協議類型,其命名空間是一個持久的寫時複製映射,因此 fork 可以在常數時間內共享;reel-store 是一個內容尋址的塊和引用存儲,支持內存後端和基於 redb 的持久後端,並帶有可達性遍歷器用於回收;reel-effects 提供了密封的效應類特質和線性觸發能力;reel-core 實現了內核,其中 fork(常數時間寫時複製繼承並帶有能力收縮)和 abort 已完成,commit 正在開發中。此外,適配器(adapters/)和命令行工具(reel-cli)正在建設中。該工作空間基於穩定版 Rust 構建,並通過了屬性基測試。
未來計劃包括:commit 的前置條件驗證和緩衝效應的有序排出;命令行工具,用於幹運行循環,顯示待定效應並允許提交或丟棄;效應攔截層,通過可替換後端捕獲進程的出站效應,使得新集成的唯一工作是分類新服務。項目目前為預發佈狀態,規範已確定,內核正在按上述路徑構建,接口可能發生變化。許可證為 Apache-2.0。