Prompt 不是安全邊界:AI Agent 的可靠性,來自底層執行環境的制度設計
Agent 的可靠性不能建立在 prompt 勸說上,而必須建立在底層執行環境的制度設計上。從 sandbox、權限邊界到狀態持久化,真正的安全控制面其實在 runtime。
當我們將系統控制權交給 AI Agent 時,許多開發者會優先思考如何透過 Prompt Engineering 來建立安全護欄,防止它執行破壞性指令。然而,這是一種根本上的誤解。Agent 的可靠性與安全性,最終不應取決於模型對自然語言指令的「服從」,而必須根植於其執行環境(Runtime)的架構設計。將安全責任寄託在 Prompt 上,是錯放了真正的控制面。真正能決定 Agent 是否可信、可控、可恢復的,是底層的沙盒隔離、權限管理、狀態持久化與稽核紀錄,這才是成熟系統該有的制度性保障。
為什麼我們不能只靠 Prompt 來約束 Agent?
大型語言模型(LLM)本質上是基於機率的序列預測機器,它們並沒有真正理解「規則」或「禁令」的語意。儘管我們可以透過指令(如「你是一個有幫助的助理,絕不可以刪除任何檔案」)來引導其行為,但這層防護非常脆弱。這道「語言邊界」很容易被刻意設計的輸入繞過,這種現象被稱為間接提示注入(Indirect Prompt Injection),攻擊者可以透過外部文件、網頁內容甚至電子郵件,植入惡意指令來劫持 Agent 的行為。
把 Prompt 當作安全邊界,就像是口頭告誡一位擁有最高權限的系統管理員「請不要執行危險操作」,而非直接從身份與存取管理(IAM)層面限制其權限。前者依賴對方的善意與理解,後者則是制度性的硬性約束。在系統設計中,依賴前者是天真且危險的。真正的控制面,必須建立在無法被語言模型自身行為所覆蓋的基礎設施層。
將控制責任從可預測的、形式化的基礎設施,轉移到充滿不確定性的機率模型上,本身就是一種架構上的退讓。
從 Shell 指令的兩難,看執行環境的雙重挑戰
讓 Agent 直接操作 Shell 環境,會立刻浮現兩個核心挑戰,這兩個挑戰都無法單純用 Prompt 解決:
- 安全性(Safety)的挑戰:最經典的恐懼就是 Agent 執行了
rm -rf /這類不可逆的毀滅性指令。即使我們在 Prompt 中三令五申,模型仍可能在複雜的任務推理鏈中,錯誤地組合出這樣的指令。一旦執行,造成的損害將是災難性的。 - 持久性(Persistence)的挑戰:想像一個 Agent 需要執行一個長達 20 分鐘的任務,例如安裝一系列複雜的軟體套件、編譯程式碼,並產生數個中間檔案。如果此時執行程序因故中斷(例如網路不穩、VM 重啟),所有進度與暫存資料將付之一炬。這種缺乏狀態持久性的 Agent,在現實世界中幾乎沒有實用價值,因為它無法保證任務的連續性與可恢復性。
這兩個問題共同指向一個結論:一個裸露、無狀態的執行環境,對於需要與真實世界互動的 Agent 來說是完全不夠的。我們需要的不是更聰明的 Prompt,而是一個更穩固的「容器」。
OpenAI 的 Sandbox Agents 如何從基礎設施層面回應?
近期,OpenAI 在其 Agents SDK 中推出的 Sandbox Agents 功能,正是對上述問題從基礎設施層面提出的解答。以 2024 年 6 月 24 日發布的 JavaScript/TypeScript SDK @openai/agents v0.12.0 為例,這個功能的核心理念,就是為 Agent 的每一次執行都提供一個受控、隔離且具備狀態持久性的沙盒環境。
這種基於沙盒的執行環境,直接回應了前述的雙重挑戰:
- 針對安全性:Agent 的所有操作(如檔案讀寫、程式碼執行、網路請求)都被限制在一個獨立的虛擬化環境中。它無法存取主機系統的敏感資源,即使執行了惡意指令,其影響範圍也被嚴格侷限在沙盒內部,不會對外部系統造成永久性傷害。這種類似 Firecracker 這類 microVM 的隔離思想,是雲端運算安全性的基石。
- 針對持久性:沙盒環境的檔案系統和狀態是可持久化的。這意味著,即使執行中斷,Agent 下次被喚醒時,依然可以從上次的進度繼續。所有安裝好的套件、產生的中間檔案都還存在。這讓長時程、多步驟的複雜任務成為可能,極大提升了 Agent 的實用性與可靠性。
這種設計將控制權從飄忽不定的語言模型,收回到穩定可靠的基礎設施層。開發者不再需要祈禱 Agent「聽話」,而是可以透過設定沙盒的權限、生命週期與資源限制,來進行確定性的治理。這也為更進階的功能,如任務的 Rollback(回滾)與完整的 Audit Trail(稽核紀錄)鋪平了道路,這些都是建立可信任 AI 系統的關鍵要素。
總結來說,AI Agent 的發展正在從單純追求模型智慧,走向建構穩健的系統架構。OpenAI 的 Sandbox Agents 是一個重要的風向球,它提醒我們,Prompt 是用來溝通意圖的介面,而不是保障安全的圍籬。真正強固的圍籬,必須由底層的執行環境、權限隔離與狀態管理來打造。這不僅是技術上的演進,更是思維模式的成熟——我們終於開始將 Agent 視為一個需要被嚴謹治理的軟體工程實體,而不僅僅是一個神奇的語言魔法。
延伸閱讀
- OpenAI Agents SDK 官方文件
- Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection (研究論文)
- Sandboxing in Google Cloud (技術部落格)
我是江中喬,專注於 AI Agent Architecture、Memory Governance 與 Cognitive Diversity,持續研究如何打造能夠長期協作、可信任且可治理的 AI 系統。