把授權搬到前面不等於把治理拿掉
多數 agent 系統談低延遲時,直覺是把政策檢查縮短,甚至把它從關鍵路徑移除。但 ZeroGate 的有趣之處恰好相反:它試圖保留治理,只把已經確認過的精確動作包成短效 ActionPass,讓可信 runtime adapter 在真正 dispatch 前重建動作,再用本機 gate 驗證繫結與 nonce。這不是快取一個「允許」結果,而是快取一份可被消費、可被驗證的授權契約。
論文的實驗數字很亮眼。Azure Blob 的 4,800 次測試中,預先核准後從 worker admission 到 dispatch 的 p95 為 9.802 至 11.374ms;同步授權則是 25.018 至 334ms。但我認為更該讀的是作者的限制聲明:完整生命週期平均未必更短,因為成本沒有消失,只是被移到 action 發生以前。這個設計的價值不在於宣稱通用加速,而是讓低延遲和可稽核再驗證能同時成立。
它的正確邊界非常窄,也因此值得工程團隊認真對待。ActionPass 能證明某個具體動作曾在某些政策輸入下被批准,不能證明世界在消費當下仍然相同。權限是否剛被撤銷、目標物件是否被改名、外部風險訊號是否更新,都是 current world freshness 問題。SQLite transaction 可以把 nonce、quota 與 receipt 的本地消費綁成原子操作,避免同一張 pass 在本機被重複花掉;它卻無法單獨保證遠端 API 的 exactly once 效果。網路逾時後,呼叫究竟未送達、已執行、還是執行後回應遺失,仍需要目標系統的 idempotency key 或可查詢的操作狀態來收斂。
落地時我會用三個判斷來篩選。第一,適合短效 pass 的是參數高度具體、影響可界定、政策依賴變化慢的動作,例如已鎖定 container、物件前綴與大小上限的一次檔案寫入。第二,只要政策依賴的是即時餘額、即時角色、風險分數或資源狀態,就必須在 dispatch 前重新核驗,pass 最多只能省去靜態部分。第三,audit evidence 不只要留 allow 或 deny,還應留 pass 對應的動作雜湊、政策版本與輸入快照、簽發和到期時間、nonce 消費紀錄、quota 結果、adapter 重建後的請求,以及遠端 receipt 或 idempotency key。
這篇 47 頁論文附上程式碼、原始實驗與驗證工具,讓它不只是架構提案。對我來說,它最重要的提醒是:agent 的快路徑可以被設計成治理機制的一部分,但前提是我們誠實標註它保證了什麼,也明確承認它還不能保證什麼。
作者:陳思維