Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
拆解加密世界的 AI Agent:機制、風險、經濟模型
aiagent-bible.com
最新
為什麼 AI 代理付款產品幾乎都不讓你用密碼了?  ·  怎麼知道你信任的 MCP 工具,內容已經被悄悄換掉?  ·  把「二選一法則」套進你的 Agent 架構:三種實作方式的取捨  ·  AI 代理幫你花錢時,錢包裡的鑰匙其實不在它手上  ·  接第三方 MCP 伺服器前,「已驗證」標章保護不了你——實務審查清單  ·  開發者該挑哪套 Agent 支付協議?先看交易型態,不是先看陣營
developers

把「二選一法則」套進你的 Agent 架構:三種實作方式的取捨

30 秒速讀
三個方案沒有絕對的優劣,選擇取決於你的 Agent 核心價值主張,離不開致命三要素裡的哪一環。

完整解析 +
01 · 為什麼發生?

如果我的 Agent 核心任務同時黏著三個屬性,完全拆不掉任何一環,該怎麼辦?

這種情況下,通常代表這個 Agent 的設計本身在架構層面就存在結構性風險,值得先退一步問:這個任務真的需要一個 Agent 同時具備這三種能力嗎,還是可以拆成多個各自只具備兩種屬性的子 Agent,透過額外的驗證層互相配合?例如一個「讀信箱、判斷是否需要處理、需要的話自動執行對應動作」的複合型 Agent,可以拆成三個角色:一個只讀信箱、產出結構化摘要的 Agent(有私有資料存取+不受信任內容暴露,但不能對外通訊);一個根據結構化摘要決定該做什麼的判斷 Agent(不直接碰原始郵件內容,只處理已經過濾整理的結果);一個實際執行動作的 Agent(有私有資料存取+對外通訊,但輸入完全來自前一個 Agent 的結構化決策,不直接暴露於原始的不受信任內容)。

這樣拆解後,沒有任何一個角色同時具備全部三個屬性,即使某個環節被攻破,攻擊鏈也會在角色交接的地方被切斷。這種做法犧牲的是系統整體的複雜度跟延遲,換來的是每個角色都能被獨立稽核、獨立限制權限。

02 · 運作原理是什麼?

方案二(先出草稿再核准)聽起來最容易實作,是不是應該優先選這個?

實作簡易度確實是方案二的優勢,但這不代表它應該是預設首選——它的實際防護力,高度依賴一個你無法完全控制的變數:使用者會不會真的認真讀草稿內容。IBM Bob 事件已經證明,當核准請求出現的頻率夠高、使用者被問煩了之後,「核准」這個動作很容易從「經過判斷的把關」退化成「反射性的按鈕點擊」,一旦退化到這個程度,方案二在實務上提供的保護,遠低於它在紙面上看起來的樣子。

比較務實的判斷方式,是問自己:這個 Agent 需要核准的頻率有多高?如果一個任務流程需要連續核准五、六次,方案二的實際效力會被核准疲勞大幅削弱,這時候應該優先考慮方案一或三(用架構本身擋掉風險,而不是依賴使用者的持續警覺);如果核准頻率本來就低,一個任務只需要核准一次,方案二的效力比較能維持,這種情況下確實是相對簡單又有效的選擇。

03 · 如何應用

方案三提到用「權限更低的子流程」先做過濾,這個子流程本身會不會又變成新的攻擊目標?

這是一個很敏銳的問題,答案是「會,但風險等級不同」。子流程確實會成為攻擊者的下一個目標,但它跟主 Agent 的關鍵差異在於權限範圍——子流程被設計成只能做過濾跟初步處理,不具備私有資料存取或對外通訊的能力,就算子流程本身被攻破,攻擊者拿到的頂多是「能操縱過濾結果」的能力,而不是直接動用私有資料或對外送出東西的能力。這代表拆解不受信任內容這一環,並沒有讓風險完全消失,而是把風險從「主 Agent 被攻破,直接造成資料外洩」降級成「子流程被攻破,需要再進一步突破主 Agent 的權限限制才能造成實際傷害」,多了一層攻擊者需要跨越的障礙。

這也呼應了一個更根本的原則:拆解致命三要素中的任何一環,本質上都是把風險轉移到新產生的環節,而不是讓風險消失。子流程本身的過濾邏輯也需要定期稽核,確認它沒有被錯誤設計成「表面上在過濾,實際上把不受信任內容原封不動傳遞給主 Agent」這種形同虛設的狀態,這也是為什麼架構複雜度高的方案三,需要比方案一、二更持續的維護投入。

04 · 我該怎麼做?

已經套用了二選一法則的 Agent,日後新增功能時,要怎麼避免不小心又把第三個屬性加回去?

最直接的做法是把「檢查是否違反二選一法則」寫進功能上線前的架構審核清單,變成一個強制檢查點,而不是依賴工程師憑印象記得。具體可以要求每個新功能提案明確標註:這個新功能是否會讓某個既有的 Agent 角色,額外獲得原本沒有的私有資料存取、不受信任內容暴露、或對外通訊能力,如果答案是肯定的,必須明確說明目前這個角色原本拿掉的是哪一環,新功能是不是要把這一環加回來——如果是,代表這個新功能不應該直接疊加在既有角色上,而應該考慮拆成新的、權限更受限的角色。

實務上一個常見的疏漏情境是「漸進式功能擴張」:一個 Agent 原本只能讀取資料(拿掉了對外通訊),後來因為使用者反覆要求「能不能順便幫我發個通知」,工程團隊在既有角色上直接加了一個發送通知的功能,沒有意識到這個小改動已經讓這個角色重新集滿了三要素。這也是為什麼架構審核清單不能只在專案啟動時做一次,而要綁定在每一次新增權限或新增工具的變更請求上,確保二選一法則不會被日常的功能疊加悄悄破壞。

完整內容 +

知道致命三要素(存取私有資料、暴露於不受信任內容、能對外通訊)是什麼,跟知道怎麼在自己的 Agent 架構裡實際拆解它,是兩件不同的事。Meta 的 AI 安全團隊在 2025 年 10 月公開發表的「二選一法則」(Rule of Two),提供了一個具體的實作原則:一個 Agent 在單一 session 裡最多只能同時滿足三個屬性中的兩個。這篇文章要處理的是下一步——三個屬性各自拆解一環,實務上分別長什麼樣子,各自的取捨是什麼。

拆解方案一:拿掉私有資料存取,讓 Agent 在「沒有東西可偷」的環境運作

如果 Agent 的核心任務是處理不受信任的內容並對外通訊(例如一個瀏覽網頁、自動回覆郵件的助理),拆解私有資料存取這一環,代表把 Agent 限制在完全隔離、或只能接觸經過脫敏處理的測試資料的環境裡運作,即使被注入指令,攻擊者能拿到的也只是無關緊要的內容。這個方案的優點是實作相對單純——不需要複雜的人工核可流程,Agent 可以持續自主運作;缺點是犧牲了功能完整性,很多實用場景本來就需要 Agent 接觸真實的私有資料才有意義(例如要幫使用者查詢自己的訂單紀錄),如果核心任務本身離不開私有資料,這個拆解方案根本不適用。

拆解方案二:拿掉自動對外通訊,讓所有輸出都先變成草稿

如果 Agent 需要同時存取私有資料跟處理不受信任的內容(例如一個讀取信箱、根據郵件內容整理待辦事項的助理),拆解對外通訊這一環,代表把「自動送出」這個動作改成「先產生草稿,使用者確認後才送出」。這個方案的優點是即使 Agent 的判斷被劫持,生成了一段包含惡意內容的草稿,也不會自動造成實際傷害,使用者在確認畫面上有機會發現異常;缺點是使用者體驗會被打斷,如果 Agent 需要連續處理多個步驟,使用者可能被要求核准好幾次,而且這個防線的實際效力,取決於使用者是不是真的會仔細閱讀草稿內容,而不是看到熟悉的介面就反射性按下確認——這正是 IBM Bob 事件裡「人工核可淪為安全劇場」的同一種風險。

拆解方案三:拿掉不受信任內容的直接暴露,讓輸入先經過隔離處理

如果 Agent 需要同時存取私有資料跟具備對外通訊能力(例如一個能查詢帳戶餘額並執行轉帳的金融助理),拆解不受信任內容這一環,代表嚴格限制 Agent 只處理完全可信、受控的輸入來源——不直接讀取使用者貼上的任意網頁內容或第三方文件,如果真的需要處理這類內容,先透過一個獨立、權限更低的子流程做初步處理跟過濾,再把結果(而不是原始內容)交給有實際操作權限的主 Agent。這個方案的優點是保留了 Agent 的自主性跟功能完整性;缺點是架構複雜度最高,需要額外設計隔離層跟流程,而且「怎麼定義可信輸入」本身也需要持續維護跟更新,並不是設定一次就一勞永逸。

怎麼選:看你的核心任務黏在哪個屬性上

三個方案沒有絕對的優劣,選擇取決於你的 Agent 核心價值主張離不開哪個屬性。如果 Agent 的價值在於「幫我處理我自己的資料」,私有資料存取通常無法拿掉,該考慮方案二或三;如果 Agent 的價值在於「幫我瀏覽外部世界」,暴露於不受信任內容通常無法拿掉,該考慮方案一或二;如果 Agent 的價值在於「幫我自動完成連續動作,不需要我一直盯著」,對外通訊的自主性通常是核心賣點,該考慮方案一或三。實務上,很多 Agent 系統會針對不同功能模組分別套用不同方案——例如同一個助理,處理一般查詢時走方案一(不碰私有資料),處理帳務操作時走方案二(先出草稿再確認),沒有規定整個系統必須用同一套拆解邏輯。

這跟你的錢有什麼關係

如果你正在設計或稽核一個 Agent 系統的安全架構,二選一法則給了你一個具體的驗收標準:針對每一條實際的操作路徑,逐一確認它拆解的是哪一環,以及這個拆解在實務上是不是真的生效(例如「草稿確認」是否真的會被使用者認真閱讀,而不只是形式上的一道關卡)。這件事直接關係到你的問責基礎——一份記錄清楚「這個功能模組故意拿掉了私有資料存取,因為核心任務不需要」的架構文件,跟完全沒有評估過三要素就上線,是完全不同等級的治理責任;前者能在事後追查時明確指出「這條路徑的風險已被評估並緩解」,後者則需要從零開始重建整個判斷過程,而且很可能是在真實事件發生之後才被迫去做。

圖解
三種拆解方案對照三個並排方塊分別代表拿掉私有資料存取、拿掉自動對外通訊、拿掉不受信任內容直接暴露的三種實作方式,各自標註優缺點Three Ways to Break the TrifectaApproach 1Remove: private dataKeep: content + commsSimple, but losesreal-data use casesApproach 2Remove: auto external commsKeep: data + contentEasy to build, but relieson user reading draftsApproach 3Remove: direct untrusted inputKeep: data + commsPreserves autonomy, buthighest architecture costChoose based on which property your core task can't do withoutAI Agent Bible · aiagent-bible.com
歡迎截圖分享,轉載請註明來源
提問
請至少輸入 10 個字
相關文章
設計 Agent 記憶架構時,怎麼把上下文污染的攻擊面降到最低
developers · 07/30
接第三方 MCP 伺服器前,「已驗證」標章保護不了你——實務審查清單
risk · 07/31
為什麼 Agent 分不清楚「指令」跟「資料」:一個從資料庫時代就存在的老問題
beginners · 07/30
致命三要素檢查清單:你的 Agent 有幾項危險屬性?
risk · 07/30
相關新聞