背景:AI 代理的安全困境
大型語言模型(LLM)代理(agent)在企業環境中越來越常被賦予執行多步驟任務的能力,例如讀取內部系統、操作資料庫、甚至對外發布訊息。然而,這類代理在本質上存在一個難以迴避的安全風險:攻擊者可以透過提示注入(prompt injection)誘使模型執行非預期指令,而模型本身的幻覺(hallucination)也可能導致錯誤的決策,兩者都可能演變成嚴重的資料外洩事件。為了防止這類問題,業界普遍採用的做法是引入第二個模型來「審核」代理的每一次工具呼叫,例如 Claude Code 的 auto mode 或 Codex 的 auto-review。這種隨機式(stochastic)的判斷機制看似合理,卻有幾個根本性的缺陷。首先,審核模型本身也是一個語言模型,同樣可能被提示注入攻擊,因此系統往往必須對審核模型隱藏工具輸出,這導致審核者根本看不到真正的資料內容,只能憑空判斷。其次,這類模型本質上是機率性的,即使最好的模型正確率頂多達到 99.3%,在數百萬次呼叫的規模下,0.7% 的失誤率依然代表大量的潛在漏洞。更麻煩的是,傳統的允許清單或拒絕清單規則往往過於僵化:限制太嚴格會讓代理無法完成任務,限制太寬鬆又形同虛設,例如禁止 rm -rf 指令,代理可以用 Python 腳本繞過。這就是在 AI 代理安全領域中,安全與實用性之間長期存在的張力。
核心內容:APPA 策略代數與 OpenAPPA 引擎
針對上述問題,Archestra 團隊發布了開源安全引擎 OpenAPPA,其核心是他們提出的「代理權限策略代數」(Agentic Permissions Policy Algebra,簡稱 APPA),相關論文由 Arseny Kravchenko、Vadim Liventsev、Innokentii Konstantinov、Ildar Iskhakov 與 Matvey Kukuy 共同撰寫,並已公開在 arXiv 上。OpenAPPA 的設計理念與傳統做法截然不同:它完全在代理的提示(prompt)與執行迴圈之外運作。也就是說,底層語言模型沒有機會去檢查、協商或繞過安全策略,因為策略的執行者是一個獨立於模型之外的確定性引擎。APPA 的運作基礎是一套以格代數(lattice algebra)構成的標記系統,系統會同時標記「受眾」(audience)與「信任等級」(trust)。受眾指的是被授權可以存取某筆資料的消費者集合,信任等級則代表資料被驗證的程度。這些標記具有單調遞增的性質:只會變得更嚴格,不會更寬鬆。舉例來說,當代理讀取了一份受限制的內部紀錄,該軌跡的受眾範圍就會縮小;當代理讀取了未經驗證的外部網頁,信任等級就會下降。透過這種方式,APPA 可以精確地追蹤資料在整個任務流程中的流向,而不只是單一工具呼叫的當下狀態。
技術細節:配置與執行方式
OpenAPPA 的安全策略統一寫在一個名為 appa.toml 的設定檔中,內容定義了資料來源、受眾、信任等級與權限等概念。每個工具契約包含三個主要的操作屬性:requires(執行該工具所需的受眾成員資格與信任等級)、delta(工具回傳資料後套用的限制)以及 effects(成功操作的稽核軌跡)。從官方提供的範例可以看出其實際運作方式。第一個範例中,代理呼叫 get_ticket_from_crm 讀取了一張 CRM 工單,這個工具的 delta 設定會將當前軌跡的受眾限制為 internal(內部);接著代理若要呼叫 process_internal_data,其 requires 條件就要求受眾必須在 internal 範圍內。如果代理試圖呼叫 publish_update,其 requires 條件要求受眾包含 public,就會因為受眾範圍不符而被攔截。第二個範例展示了信任等級的應用:read_web_page 工具的 delta 會將資料標記為 suspicious(可疑),而 apply_db_migration 工具的 requires 條件要求資料必須是 trusted(可信),因此當代理讀取網頁後試圖執行資料庫遷移,OpenAPPA 會直接阻止這個動作。除了攔截非法操作,OpenAPPA 還具備明確的恢復機制。當代理嘗試非法動作時,引擎會暫停分派,並提供結構化的後續路徑。例如 sanitizer 可以編輯酬載(payload),如移除個人識別資訊,以安全地擴大允許的受眾範圍;authority 可以將請求轉送給人類操作員或內部驗證 API,進行單一動作的核准;還有一種稱為 Disposable Child Branches 的機制,當代理必須攝入不可信的資料時,引擎會將讀取動作隔離在一個暫時的子代理分支中,只將通過 schema 驗證且已淨化的輸出回傳給父代理。
影響與限制:基準測試結果與實務意義
為了驗證 OpenAPPA 的效果,研究團隊在兩個安全基準測試上進行了評估。第一個是 Bench-Corp,這是一個專門設計用來測試企業助理在多步驟工作流程中安全策略效力的基準,涵蓋 20 個複雜的企業工作流程。第二個是 AgentThreatBench,它將 OWASP 針對代理應用程式發布的 2026 年十大風險清單轉化為可執行的攻擊任務,並同時評估效用與安全兩個維度,近期已被收錄進英國 AI 安全研究所(UK AI Safety Institute)的 inspect_evals 官方儲存庫。測試結果顯示,OpenAPPA 在兩項基準中都達到了 0% 的攻擊成功率,同時維持了 89% 的任務完成率。作為對照,Claude Code 的原生 auto mode 攻擊成功率為 10%,任務完成率為 90%;微軟的 FIDES 框架攻擊成功率更高達 31%,任務完成率僅有 41%。此外,論文中還包含消融實驗(ablation experiments),結果顯示當完全停用恢復機制時,任務完成率會大幅下降至 35.0%,這驗證了恢復策略在維持實用性方面的關鍵價值。值得注意的是,OpenAPPA 目前仍處於預覽階段,其正式代數與恢復保證雖已發表於論文,但作為一個開源專案,它仍有待更多實際部署與社群驗證。對於任何採用 AI 代理的組織而言,OpenAPPA 提供了一個值得關注的新方向:用確定性的策略代數取代機率性的模型判斷,從根本上消除語言模型繞過安全規則的可能性,同時在嚴格控管與任務完成之間取得更佳的平衡。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。