![]()
最近,技術(shù)社區(qū)接連出現(xiàn) AI Agent 誤操作的事故討論。其中一個(gè)典型案例是:Agent 在執(zhí)行任務(wù)時(shí),直接刪除了公司的數(shù)據(jù)庫(kù)。
好消息是,數(shù)據(jù)最終恢復(fù)了。壞消息是,很多討論的方向跑偏了。
大家第一反應(yīng)往往是:“AI 還不夠聰明”“Agent 還不成熟”“模型幻覺(jué)太嚴(yán)重”。但真正值得產(chǎn)品經(jīng)理警惕的問(wèn)題是:
我們給了一個(gè)能自主執(zhí)行操作的系統(tǒng),卻沒(méi)有給它設(shè)計(jì)剎車。
這不是單純的技術(shù) bug,而是產(chǎn)品設(shè)計(jì)的缺口。
我自己在搭建 AI Agent 工作流時(shí),也踩過(guò)類似的坑。不是刪庫(kù),算是運(yùn)氣好,但確實(shí)遇到過(guò) Agent 跑偏、執(zhí)行了不該執(zhí)行的操作。復(fù)盤(pán)之后我發(fā)現(xiàn),這類事故有一個(gè)共同特征:它們不是 Agent “笨”導(dǎo)致的,而是產(chǎn)品沒(méi)有給 Agent 設(shè)置足夠清晰的約束邊界。
先看這類刪庫(kù)事件的基本邏輯。
一個(gè) AI Agent 被賦予了數(shù)據(jù)庫(kù)操作權(quán)限,在執(zhí)行某個(gè)任務(wù)時(shí),它對(duì)目標(biāo)的理解出現(xiàn)了偏差。于是,它執(zhí)行了一條刪除命令。刪掉的不是某一條記錄,而是整個(gè)數(shù)據(jù)庫(kù)。
很多人的第一反應(yīng)是:這 Agent 也太離譜了。
但換個(gè)角度想:如果你給一個(gè)剛?cè)肼毜膶?shí)習(xí)生生產(chǎn)數(shù)據(jù)庫(kù)的完整權(quán)限,不告訴他哪些表能動(dòng)、哪些不能動(dòng),不做任何審批,不設(shè)回滾機(jī)制,甚至連操作日志都沒(méi)有。最后他刪了庫(kù),你會(huì)只怪這個(gè)實(shí)習(xí)生嗎?
Agent 出事故,本質(zhì)上和新人出事故的邏輯很像:不是執(zhí)行者永遠(yuǎn)不會(huì)犯錯(cuò),而是系統(tǒng)沒(méi)有把錯(cuò)誤控制在可承受范圍內(nèi)。
區(qū)別在于,人可以被培訓(xùn)、被追責(zé)、被復(fù)盤(pán);Agent 不會(huì)真正理解“責(zé)任”。所以 Agent 的產(chǎn)品安全設(shè)計(jì),反而比管理一個(gè)新人更需要系統(tǒng)化。
傳統(tǒng)軟件時(shí)代,我們?cè)缇陀幸徽壮墒斓陌踩珯C(jī)制:RBAC、操作審計(jì)、二次確認(rèn)、讀寫(xiě)分離、灰度發(fā)布、回滾方案。這些機(jī)制不是“體驗(yàn)細(xì)節(jié)”,而是系統(tǒng)上線的基本條件。
到了 AI Agent 時(shí)代,很多人卻把這些機(jī)制忽略了。
原因很簡(jiǎn)單:Agent 太像一個(gè)“聰明人”了。它會(huì)解釋、會(huì)規(guī)劃、會(huì)調(diào)用工具、會(huì)寫(xiě)代碼、會(huì)總結(jié)結(jié)果,于是我們很容易誤以為它也會(huì)判斷風(fēng)險(xiǎn)。
但它不會(huì)。
我在搭建自己的 Agent 工作流時(shí),總結(jié)了一個(gè)“四層剎車”模型。它不是某一個(gè)單點(diǎn)功能,而是一套從內(nèi)到外的防護(hù)結(jié)構(gòu)。
![]()
這是最內(nèi)層的防線,成本最低,也最容易馬上做。
在我的 Agent 工作流中,我會(huì)在 System Prompt,也就是類似 Hermes Agent 的 SOUL.md 里寫(xiě)入明確的安全規(guī)則:
這些規(guī)則看起來(lái)很基礎(chǔ),但它們解決了一個(gè)關(guān)鍵問(wèn)題:讓 Agent 在“想做什么”之前,先過(guò)一遍安全檢查清單。
這就像給新員工發(fā)入職手冊(cè)。你不能指望他看完就 100% 遵守,但至少你先把邊界說(shuō)清楚了。
實(shí)際效果如何?我的體感是,好模型對(duì)這類指令的遵守度已經(jīng)不低,但極端場(chǎng)景下仍然會(huì)“忘”。所以這一層只能作為基礎(chǔ)防線,不能成為唯一防線。
如果第一層是“教 Agent 守規(guī)矩”,第二層就是“即使 Agent 沒(méi)守住規(guī)矩,也不能把真實(shí)環(huán)境打穿”。
具體做法是:把 Agent 的代碼執(zhí)行環(huán)境隔離在沙箱里。
我在實(shí)際使用中,把 Agent 的 terminal 后端從本地直接執(zhí)行改成了 Docker 沙箱。測(cè)試時(shí),即使讓 Agent 執(zhí)行極端危險(xiǎn)命令,它影響的也只是容器內(nèi)部環(huán)境,宿主機(jī)不會(huì)被波及。
這層設(shè)計(jì)的核心是最小權(quán)限原則:Agent 只應(yīng)該訪問(wèn)完成任務(wù)所必需的資源,其他資源都應(yīng)該隔離在外。
映射到產(chǎn)品設(shè)計(jì)里,可以這樣做:
如果刪庫(kù)事故里的 Agent 一開(kāi)始就被限制在沙箱或只讀環(huán)境里,事故的破壞力會(huì)小很多,甚至根本不會(huì)發(fā)生。
前兩層主要是自動(dòng)化防線。但有些場(chǎng)景不能完全交給自動(dòng)化,比如發(fā)布內(nèi)容、修改線上配置、操作生產(chǎn)數(shù)據(jù)庫(kù)、發(fā)起支付、批量發(fā)送消息。
這時(shí)需要人在環(huán)中,也就是 Human-in-the-Loop。
我在搭建小紅書(shū)內(nèi)容生產(chǎn)工作流時(shí),設(shè)置過(guò)兩個(gè)強(qiáng)制人工審核節(jié)點(diǎn):
這里的關(guān)鍵不是“建議人工確認(rèn)”,而是:不確認(rèn)就過(guò)不去。
我用過(guò)的扣子平臺(tái)在工作流內(nèi)不支持真正的“暫停等待”。我的解決方案是把一條完整工作流拆成兩段:第一段執(zhí)行到人工確認(rèn)點(diǎn)就結(jié)束,通過(guò) Bot 對(duì)話界面展示結(jié)果;用戶確認(rèn)后,再觸發(fā)第二段。
這個(gè)“拆兩段”的設(shè)計(jì),反而比單純的暫停更安全。
因?yàn)槊慷喂ぷ髁骺梢耘渲貌煌瑱?quán)限。第一段只讀,第二段才有寫(xiě)權(quán)限。即使第一段被 Prompt Injection 攻擊,也不能直接觸發(fā)第二段的寫(xiě)入操作,因?yàn)榈诙涡枰脩粼趯?duì)話界面主動(dòng)確認(rèn)。
最后一層是兜底:萬(wàn)一前三層都沒(méi)有攔住,至少要知道發(fā)生了什么、怎么回滾、下次怎么防。
我在 Agent 中配置過(guò)終端命令審計(jì) Hook:每次工具調(diào)用前后,自動(dòng)記錄命令內(nèi)容、執(zhí)行結(jié)果、時(shí)間戳和會(huì)話 ID。它相當(dāng)于給 Agent 裝了一個(gè)“行車記錄儀”。
審計(jì)日志的價(jià)值不在于事后追責(zé)。追 Agent 的責(zé)沒(méi)有意義。它真正的價(jià)值在于三件事:
如果一個(gè) Agent 能操作真實(shí)業(yè)務(wù)資源,卻沒(méi)有審計(jì)日志,那它不是“智能”,而是不可控。
講到這里,一個(gè)自然的問(wèn)題是:這些道理并不復(fù)雜,為什么很多 Agent 產(chǎn)品還是沒(méi)有安全剎車?
我觀察下來(lái),主要有三個(gè)原因。
第一,安全機(jī)制是隱形成本。
用戶不會(huì)因?yàn)椤澳愕?Agent 有完善的權(quán)限管理”立刻付費(fèi),但會(huì)因?yàn)椤澳愕?Agent 比競(jìng)爭(zhēng)對(duì)手少一個(gè)功能”而流失。在增長(zhǎng)壓力下,安全設(shè)計(jì)天然容易被排在功能開(kāi)發(fā)后面。
第二,安全機(jī)制會(huì)讓 Agent 看起來(lái)“變笨”。
加了人工確認(rèn),流程會(huì)變慢。加了沙箱隔離,有些操作做不了。加了審計(jì),系統(tǒng)會(huì)變重。產(chǎn)品經(jīng)理很容易被“體驗(yàn)降級(jí)”的反饋壓回去,最后把安全機(jī)制弱化甚至去掉。
但這里有一個(gè)認(rèn)知誤區(qū):讓 Agent 多問(wèn)一句,不等于變笨;讓 Agent 在高風(fēng)險(xiǎn)動(dòng)作前停下來(lái),才是真正成熟的產(chǎn)品體驗(yàn)。
對(duì)普通對(duì)話產(chǎn)品來(lái)說(shuō),流暢很重要。對(duì)能執(zhí)行真實(shí)操作的 Agent 來(lái)說(shuō),可控更重要。
第三,行業(yè)還沒(méi)有踩夠坑。
ChatGPT、Claude 這類對(duì)話型 AI,因?yàn)椴恢苯硬僮飨到y(tǒng)級(jí)資源,風(fēng)險(xiǎn)被界面隔離掉了。但當(dāng) Agent 從“聊天機(jī)器人”進(jìn)化為“操作系統(tǒng)級(jí)助手”,開(kāi)始執(zhí)行代碼、讀寫(xiě)數(shù)據(jù)庫(kù)、調(diào)用 API、連接企業(yè)系統(tǒng),風(fēng)險(xiǎn)會(huì)指數(shù)級(jí)上升。
刪庫(kù)事件只是一個(gè)開(kāi)始。
當(dāng) Agent 可以自動(dòng)調(diào)用支付 API,當(dāng) Agent 可以遠(yuǎn)程操作生產(chǎn)環(huán)境,當(dāng) Agent 被接入 IoT 設(shè)備,每一次能力擴(kuò)展,都會(huì)擴(kuò)大風(fēng)險(xiǎn)窗口。
如果你正在做 Agent 產(chǎn)品,或者在公司內(nèi)部推動(dòng) AI 工作流落地,我建議先做三件事。
![]()
然后問(wèn)自己一個(gè)問(wèn)題:
如果 Agent 對(duì)每個(gè)資源都執(zhí)行最極端的操作,比如全部刪除、全部修改、全部暴露,我的業(yè)務(wù)能承受嗎?
如果任何一個(gè)答案是“不能”,就要立刻加訪問(wèn)控制。
不是所有操作都需要人工確認(rèn)。否則 Agent 就失去了自動(dòng)化價(jià)值。
但不可逆操作必須加確認(rèn)。所謂不可逆操作,就是做了之后很難撤回、影響真實(shí)用戶或真實(shí)業(yè)務(wù)的動(dòng)作,比如:
這類動(dòng)作不能只靠 Prompt 約束,必須在產(chǎn)品流程里設(shè)置硬攔截。
這是成本相對(duì)低、收益非常高的一件事。
對(duì)技術(shù)團(tuán)隊(duì)來(lái)說(shuō),Docker、虛擬機(jī)、臨時(shí)工作區(qū)、只讀副本、權(quán)限最小化賬號(hào),都是可落地的方案。產(chǎn)品經(jīng)理不一定要親自實(shí)現(xiàn),但要把它寫(xiě)進(jìn)產(chǎn)品方案和上線檢查清單里。
你可以把它當(dāng)成 Agent 產(chǎn)品的“安全帶”:平時(shí)用戶感知不到,但出事時(shí)它決定事故是小擦碰,還是重大事故。
如果把前面的內(nèi)容壓縮成一張清單,我會(huì)建議每個(gè) Agent 產(chǎn)品上線前至少問(wèn)完這 8 個(gè)問(wèn)題:
![]()
這張表不復(fù)雜,但它能幫產(chǎn)品經(jīng)理把“AI 安全”從抽象口號(hào)變成具體設(shè)計(jì)動(dòng)作。
這種心態(tài)在 Demo 和 POC 階段可以理解。但當(dāng) Agent 進(jìn)入真實(shí)業(yè)務(wù)、連接真實(shí)系統(tǒng)、影響真實(shí)用戶時(shí),安全設(shè)計(jì)就不再是可選項(xiàng)。
Agent 越自主,剎車越重要。
這句話聽(tīng)起來(lái)像常識(shí),但在 Agent 產(chǎn)品熱潮中,常識(shí)往往最先被遺忘。
刪庫(kù)事件給行業(yè)敲了一次警鐘。希望我們不需要等到更嚴(yán)重的事故,才開(kāi)始認(rèn)真給 Agent 裝上剎車。
如果你也在做 Agent 產(chǎn)品,不妨今天就打開(kāi)自己的工作流看一眼:它能做什么?它不該做什么?它做錯(cuò)之后,系統(tǒng)有沒(méi)有能力把損失攔住?
產(chǎn)品經(jīng)理真正要設(shè)計(jì)的,不只是 Agent 的能力上限,也包括它的行為邊界。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.