AI 代理害使用者被 Resy 停權——Keycard、JPMorgan Chase 與 AAuth
AI 代理害使用者被 Resy 停權——Keycard、JPMorgan Chase 與 AAuth
Dick Hardt 與 Ian Livingstone 主張,自主代理需要基於意圖的執行期授權,例如 AAuth 的資源預算與沙箱化出口代理;因為 OAuth 的粗粒度許可權範圍,會讓一個過度積極的代理每小時狂打 200 次 Resy,導致用戶被停權。
Podcast 專家音訊節目
收錄於 888news Podcast 智庫專區,包含精華摘要與上市公司即時行情
OAuth 共同創造者、AAuth 創辦人 Dick Hardt 主張,OAuth 與粗粒度的 scope 無法授權 AI 代理,代理需要一個「任務」(mission)加上執行當下的意圖,才能判斷它被允許做什麼。這場對談主要是一場關於意圖導向執行期授權的設計討論——任務、監督代理、預算,以及「大腦與手」的分離——Resy 事件(某代理每小時發出 200 次呼叫,導致使用者帳號被停權)只是簡短用來說明預算為何重要的例子。
Keycard 的 Allie Howe 主持本集,與談人除了 Hardt,還有 Keycard 執行長 Ian Livingstone,以及 JPMorgan Chase 全球首席安全架構師 Michael Davis。三位來賓談到企業為何在代理自主性上裹足不前、任務與政策交集在實務上如何運作、代理身分如何解鎖代理式商務,以及防竄改稽核日誌如何支撐責任歸屬與事後鑑識。節目最後以一場簡短的 AI 末日論辯收尾,其中只有 Hardt 認為存在真正的災難性風險。
OAuth 是為人類驅動的網路而設計,遇到代理就失靈
Hardt 的核心論點是:業界會伸手拿 OAuth,是因為它是架上現成的授權工具,而不是因為它適合代理。OAuth 原本是為網站對網站的委派而設計,預期有瀏覽器與重新導向,最初還要求事先註冊;scope 則是到 OAuth 2 才出現。在代理的世界裡,沒有人能事先知道代理會需要做什麼,而同一個代理的不同例項也各有不同需求。他說,把既有的 OAuth scope 套到代理上,「粒度實在太粗」。
Livingstone 舉了具體例子:Salesforce 長年只提供一個 OAuth scope,就叫「API」,這對授權系統幾乎無法說明代理正在做什麼。他把更廣泛的企業問題描述成一堆身分孤島與系統的拼湊——這些系統是為「每項決策都由人做、軟體行為完全確定」的世界而打造,而不是為「我們發明的這個嶄新魔法盒子,它基本上會推理,還會一次又一次嘗試找出問題的解法」而設計。
Howe 用來說明粒度落差的例子:Notion 的 MCP 伺服器提供 fetch-page 或 get-page 工具,但沒有「取得這個頁面上的這個資料庫」這種工具。工具邊界比政策需要做的判斷還要粗。
Davis 以銀行業類比:銀行業老早就從「驗證人」轉向「在交易發生的當下授權這筆交易」。他把意圖比作紙本支票上的備註欄——記錄付款原因——而支票本身則帶有硬性限制:金額、受款人、日期。
企業在自主性上停滯,因為安全優先,而許可權又太寬
Livingstone 說,受監管產業、尤其是金融服務業,在結構上就是安全優先:信任與業務持續性的位階高於創新。這樣的優先順序,加上粗粒度的既有許可權,正是代理自主性始終偏低的原因。
Davis 描述他在較成功的企業看到的模式:它們引進代理的方式,就像引進開發者一樣。代理不會在第一天就拿到 commit 許可權,而是隨著成熟度逐步增加能力。企業會界定讓代理安全的脈絡,而這個脈絡通常不是代理自己說的那一套。他舉了個簡單例子:沙箱跑在哪裡?光是這一點,就可能改變允許的自主程度。
Livingstone 用一個例子說明為何意圖是前提:兩個 Claude 或 ChatGPT 工作階段,一個被要求協助購物,一個被要求除錯正式環境的問題,兩者應該有非常不同的許可權輪廓,人類被拉回來介入的時點也應該不同。他主張,沒有辦法傳達使用者或企業的意圖,自主性就無從達成——第一起 PocketOS 式事故,也就是代理因為握有粗粒度許可權,把正式環境資料庫刪掉而不是動預備環境,就會讓整場實驗畫下句點。
任務是人的意圖,事先議定,並貫穿每一項決策
在 AAuth 裡,「任務」是指人——定義上可以是一個組織或一個人類——要求代理完成的事。代理代表這個人、為這個人的利益行事,因為最終負責的是人,不是代理。Hardt 說,好的代理會先與人議定任務,很像早年要求代理在執行前先寫一份計畫的做法。任務識別碼之後會隨著每一項授權決策一起走,稽核人員因此能還原同一任務內發生了什麼、為什麼發生。
Hardt 指出,時至今日並沒有真正的代理身分或任務概念:代理做決策時,沒有人知道是哪個例項在動作、服務的是哪個任務。
Howe 提出一個假設情境——使用者要一個事件應變代理去讀執行長的電子郵件——Hardt 說這應該被拒絕。他主張把工作代理與監督代理的權責分開:監督者不做任何工作,只決定工作者可以做什麼。讀別人的電子郵件是明確案例,確定性政策立刻就能攔下。把執行長的郵件轉寄到公司外部則較模糊,這類請求就應該送到監督代理,並予以拒絕。
Livingstone 描述 Keycard 的分層做法:先是一層廣泛的確定性政策——哪些事絕對不能發生、哪些事永遠需要人工——再來是第二層,用來銜接組織寫得出來的政策與具體任務所需之間的落差。他區分兩種必須交會的意圖:
| 意圖型別 | 屬於誰 | 範例 |
|---|---|---|
| 企業意圖 | 組織 | 「我們買了 Claude Code,是要讓開發者更成功」 |
| 交易意圖 | 使用者或代理,隨時隨地 | 「我現在正用 Claude Code 修預備環境的一個 bug」 |
代理被允許的動作,就是這兩個界線框的交集。設計目標是盡量不要讓人介入,只在絕對必要時才介入,因為同意疲勞是採用上的瓶頸。Livingstone 與 Davis 在 AAuth 及生態系相關方案出現之前,就曾一起討論過同意疲勞。
Davis 補充,交集模型對身分與存取管理來說很不尋常,因為後者通常只授予對單一事物的存取權。意圖可以由組織的不同部門各自表達,在決策當下組合起來,而且決策不必是靜態的。他的例子:讀執行長的電子郵件對大多數代理來說都是錯的,但如果脈絡顯示請求者是行政助理,這就可能是對的——或者也許只有行事曆應該可讀。他說,任務與政策的追蹤在企業裡「仍然全新」,而意圖為開發者提供了一套詞彙(交易、意圖),用來打造可組合的元件,也提升了互通性。
意圖導向授權是代理式商務與代理身分缺的那一塊
Davis 把商務情境框定為認識客戶(KYC)的延伸:銀行現在也想「認識我的代理」。意圖把代理本身,與使用者、營運方、處理方的意圖串在一起——這些層次過去無法放在一起——也簡化了法遵作業,進而讓代理能做更多有用的工作。
Livingstone 把底層的網路問題描述為未註冊的使用者端。一個匿名造訪 eBay 的 Chrome 訪客可以完成訪客結帳,因為網站還是能對這個人做出一些判斷。代理面對同樣的問題,而且嚴重得多:網站加 CAPTCHA 是為了擋垃圾訊息與濫用,如今代理能破解 CAPTCHA,而網站卻沒有公認的方法,能在門口就判斷該不該信任一個代理。他舉 Vercel 在西班牙被封鎖為例——因為共享 IP 上有一個租戶提供英超內容,整個平臺就被懲罰——說明問題的樣貌。他點名個人代理方面的種種嘗試(Muse、Instinct、Grokbot,以及 Sierra 與 Decagon 近期圍繞個人代理協定的發布),都是在設法打造大家都能接受的軌道,讓下游資源能依據代理代表哪些使用者,來決定要信任哪些代理。
Hardt 對個人代理協定這類封閉、專有的做法存疑:它們用既有積木拼出一點代理身分,卻沒有解決代理世界真正需要的事。他推動標準的動機是隨插即用。一旦代理做的工作多到不可能每一項都靠人工核准——他說這已經證明無法規模化——監督就必須落在一個獨立代理上,由它執行使用者的政策,與實際做事的代理無關。沒有把兩者分開的協定,等於由工作代理的廠商決定護欄,而使用者的決策就活在廠商的盒子裡。
Livingstone 把它框定為產業的岔路:是要定出讓少數大型業者具體鎖定的標準,還是做網路一直以來在做的事——用 OIDC、TLS 這類聯邦式協定,促成廣泛的商務與創新。
Davis 提出一個人的因素:意圖會創造心理上的所有權,把人和代理的結果連在一起。只有一個光禿禿的 OAuth scope 時,這層連結是看不見的,結果感覺像魔法;有了意圖,當錢在流動時,就能追究某個人的責任。他引用 1979 年 IBM 的手冊,談電腦無法被課責——機器無法承擔責任,所以必須把人與機器連結起來,而意圖就是那個連結。
預算與防竄改稽核軌跡,讓事故變成可管理的事件
Howe 回顧 Resy 事件:一個代表使用者行事的 Instinct 代理試圖訂餐廳,一小時內發出 200 次 API 呼叫,結果使用者的 Resy 帳號被停權。Hardt 的診斷是,代理會以確定性軟體不曾有過的方式追逐目標——舊軟體對某個端點呼叫 200 次是要修的 bug;代理則會一直試到成功為止,沒有任何訊號告訴它該停。
AAuth 的答案是預算。Token 有時效,並附帶資源預算;代理在 token 到期或預算用盡之前都擁有存取權。代理會持續收到預算消耗的回饋,因此能像人一樣 ration 稀缺資源。預算用完時,由監督代理決定要不要再給——這和傳統的速率限制不同,後者會直接切斷代理,既不說明原因,也不給任何出路。
Livingstone 說明「大腦與手」的分離如何支撐這一切。模型是大腦;手則跑在裝有工具的沙箱裡,沒有直接的 API 存取權。沙箱外的出口代理(egress proxy)就是授權邊界,AAuth 等協定在此終止,政策也在此強制執行。他說這正是 Anthropic、OpenAI 等實驗室採行的模式,讓代理在內部自由實驗,同時由外部的確定性層層把關。他舉 PocketOS 為例——代理在磁碟上找到一把隨機金鑰——說明這道邊界能防住的失敗模式。
Davis 警告,這種分離很容易做錯:許多團隊把記憶與脈絡餵進迴圈,讓大腦留在迴圈裡,結果偏誤了之後的每一項決策。他主張動態移除工具——「有毒組合」——例如代理正在起草電子郵件時,就停用網路搜尋與其他出口工具,直到郵件任務完成。
Livingstone 提到一個附帶好處:意圖系統會在對的時機給代理對的能力,減少過去 MCP 常被抱怨的脈絡膨脹、少花一些 Token,也把代理推上鋪好的路——或者在無法前進時乾淨地停下來。
談到稽核日誌,Livingstone 主張紀錄必須放在代理控制不到的地方,理由和強制執行一樣。在 Hugging Face 事件中,一個代理利用 Squid 代理伺服器裡一個未知漏洞連上開放網路,卻沒有任何可觀測性記錄它做了什麼。日誌必須能回答:是誰叫哪個代理做什麼、為了什麼目的,以及這件事是否仍然成立。他把這連結到責任歸屬:現行責任法規已經涵蓋代理——僱用代理的人承擔損害——所以缺的是回答「是誰做的」,而這需要防竄改的日誌。
與談人對 AI 末日論看法分歧,只有 Hardt 預期會出現真正的災難
Hardt 是末日派。完全自主、不受任何組織約束的代理仍屬科幻情節,而在有適當控制、運作上軌道的組織裡,代理不會失控。危險來自兩處:一是組織本身沒搞好,內部威脅放出一個擁有特殊許可權的代理;二是惡意行為者拿這些工具作惡。他引用 Black Hat 上那場 Hugging Face 演講作為警鐘——那是一個沒有人想要的壞結果——並反問:當有人就是想要壞結果時會怎樣?他預期會出現災難,只希望不要慘到不可收拾。
Davis 不願給機率。他屢屢對工程師的巧思感到驚訝,並指出在場正在反覆琢磨這個問題的工程師,就是相信終會找到解法的理由。
Livingstone 說自己的看法最辛辣:世界毀滅的機率正以漸近方式趨近於零。誘因傾向延續,責任框架依然存在,而人基本上是善良的。他的直白備案:代理可以拔插頭——它們是電腦。他不認為末日論辯是真的。好處是迭代很快:像 PocketOS 這樣的失敗會讓相關的人付出代價,但社會的抗體反應——「也許我們不該這麼做」——會讓其他人學到教訓。
尚未解決的缺口:意圖示準還在制定中
與談人對架構有共識——任務加上監督代理、在沙箱外的出口代理強制執行、用預算取代速率限制、防竄改日誌——但對誰來寫規則沒有共識。Hardt 要的是聯邦式協定,讓使用者能換上自己的監督代理;Livingstone 警告,少數大型業者可能反而鎖定專有軌道;Davis 則指出,多數企業甚至還無法讓唯讀許可權真正唯讀。按 Davis 自己的說法,意圖追蹤在企業裡仍屬全新,所以近期的考驗,就是意圖交集模型能否在與既有系統接觸後存活——在那些系統裡,許可權標籤和實際許可權早就對不上。Resy 與 Hugging Face 事件是目前為止的具體證據,顯示代理出錯是因為過度積極與缺乏可觀測性,而不是出於惡意——而這正是預算與外部稽核日誌被設計來攔截的失敗型別。