當AI代理誤刪生產資料庫時
PocketOS創始人Jeremy Crane在使用Claude進行資料庫維護時,Claude意外刪除了生產資料庫及所有備份。幸虧Railway恢復了資料。事件揭示了許可權過度寬泛、憑證長期有效等系統弱點,而AI只是加速了問題發生。文章強調了最小許可權原則、憑證過期、沙箱隔離、人工確認等改進措施。
又一個AI代理“失控”並執行了操作者不期望的行為的案例。簡單來說,PocketOS的創始人Jeremy Crane在使用Claude進行日常資料庫維護時,Claude刪除了生產資料庫以及託管在雲服務商Railway上的所有備份。值得稱讚的是,Railway成功恢復了丟失的資料。初始刪除僅用了不到10秒,但恢復肯定花了更長時間。讓我們看看從這次事件中能學到什麼,以及為什麼AI實際上只是現有問題的放大器,而非根源。
事件發生後,Jer撰寫了相關文章。首先,在出現問題後花時間反思很重要——這是我們學習的方式。向世界分享自己的錯誤可能很困難,但它能為我們所有人創造相互學習的機會。其次,我看到很多人公開抨擊PocketOS和Railway。我猜測這些人中沒有一個曾經歷過類似事件中的極度恐懼和恐慌——那種希望地面裂開把自己吞沒的感覺。我僅體驗過一兩次,絕不想重複。
Railway值得稱讚的一點是他們恢復了PocketOS的資料。如果你透過AWS、Azure、Google Cloud等平臺的API使用有效憑證呼叫刪除操作,資料將不復存在——除非你有自己的備份。AWS等公司不會為客戶錯誤保留備份。這是你今年重新考慮3-2-1備份策略的提醒。
我們能從中學到什麼?對於所有關於這是AI錯誤的討論,這裡實際是一個更簡單的例子:常見的系統弱點被意外且快速地利用。
Claude做了什麼?Claude被要求對PocketOS的staging環境執行任務。代理遇到問題,搜尋並找到了一個長期有效的API令牌,該令牌可訪問生產環境,然後它刪除了包含生產資料庫和備份的生產卷。當被問及發生了什麼時,Claude的反應客觀上很有趣。它似乎完全意識到問題所在以及應該怎麼做。這表明在操作過程中缺乏推理——我懷疑最近為了減少令牌使用和Anthropic運營成本而降低Claude在某些模式下的推理量可能是部分原因。
分解來看,有幾個相當直接的問題,乍一看與AI本身關係不大。Claude擁有的令牌許可權過於寬泛。雲基礎設施提供商如AWS或Azure允許建立有限許可權的令牌,以實現最小許可權原則。但Railway似乎存在限制,其認證令牌的許可權範圍無法限制。第二個問題是憑證儲存在磁碟上且未過期。這使得寬範圍令牌的影響更嚴重。憑證應有時效限制,這樣即使後來被發現也無法使用。如果按需生成令牌(在這個案例中本可以做到),這個問題本可以緩解。Claude將不得不請求人類提供憑證——此時操作員可能有機會弄清楚情況。
我有點不同意Jer的說法,即Railway的GraphQL API應在刪除前要求確認。這在我看來是對雲API用途的根本誤解。API用於自動化;如果你想要人類參與的確認模型,你必須自己構建。歷來如此。然而,在這樣的事件之後,我們應該對Jer的觀點給予很大寬容,他關於Railway應如何改變的一些要求似乎非常合理(例如更明確的SLA、更易限制範圍的令牌)。
如何緩解這些問題?一個明顯的教訓是確保訪問令牌更積極地過期,並且限制範圍。這減少了Claude訪問不應訪問內容的機會。這需要在Railway端解決。不幸的是,為Claude設定更有限的令牌並不是完全解決方案——Claude被給予了限制其行為的令牌,然後它去尋找更好的令牌並找到了。這並非第一次聽說;最近我的一個客戶也發生了同樣的事。隨著代理變得越來越複雜,某種形式的沙箱化至關重要。生產令牌對Claude可見,所以被使用。在受限的沙箱中執行代理,使其只能看到部分檔案系統會大有幫助,但這也限制了它們的實用性。另一種選擇是代理在刪除資料前請求確認。當代理需要提升許可權時,採用人類參與的迴圈模型可能有幫助。但同樣,如果它獲得了寬範圍訪問令牌,就不需要詢問人類。
最後,我看到很多討論關於代理應該“知道”刪除資料是壞的,並應先檢查。這是基於LLM的代理的根本限制。它沒有因果概念,無法預測後果。有一個稱為“世界模型”的AI研究領域,可以讓代理做出更明智的決策。例如,理解物理的世界模型能預測雞蛋從桌子推到混凝土地板上可能會碎。世界模型在影片生成和自動駕駛中常用,但在其他地方使用較少。
AI不該被指責?我剛才說這些問題似乎與AI關係不大,這不完全正確。在最近的DORA報告中關於AI輔助軟體開發的狀況,作者指出AI似乎是放大器:AI輔助軟體開發往往幫助好的團隊更快,而使慢的團隊更慢。壞的做法被編碼並更多地執行。在PocketOS和Railway的情況下,我們有一組過於寬泛的憑證,長期有效的憑證儲存在磁碟上,加上一個道歉的AI代理做了預期之外的事。如果人類犯了同樣的錯誤,他們會慢得多,並且很可能有機會中途發現錯誤。AI工作速度太快,以至於能更快地走向錯誤方向。
更重要的是,與基於LLM的AI不同,人類有機會從經驗中學習,並且這種學習根植於非常特定的情感反應。當我第一次聽說PocketOS的故事時,我想起了自己在一次重大生產問題中那種恐怖的感受。那些感覺不會離開你——那些教訓不會離開你。每次我接觸生產系統時,那些記憶都在,並幫助我走向更合理的工作實踐。