AI News HubLIVE
站内改写2 分鐘閱讀

從零構建基礎AI智能體:人類監督與安全保障

本文介紹瞭如何在AI智能體中引入人類監督機制,通過權限分級、審批流程和詢問工具來平衡自主性與安全性,避免有害操作。

來源Hacker News AI作者: ruxudev

在本系列的前幾部分中,我們構建了一個能夠規劃和執行長期任務的AI智能體,使其具備了更強大的能力。然而,自主性提升的同時也帶來了風險:不加區分地運行命令或修改文件可能導致不可逆的後果。為了在自主性與安全性之間取得平衡,本部分引入了人類監督(Human in the Loop)機制。

人類監督的核心思想是:某些敏感操作在執行前必須獲得人類的明確許可。但並非所有工具調用都需要同等程度的審查。如果每個動作都請求批准,智能體會變得冗長而低效;反之,如果從不請求批准,則可能危險。因此,我們將工具按風險分類:只讀工具(如讀取文件)和規劃工具(如更新待辦事項)被認為是安全的,自動允許執行;寫入工具(如寫文件)和操作工具(如運行Shell命令、獲取網頁)則默認需要人工批准。

為了靈活控制,我們定義了三種權限模式:默認模式(default)只自動允許讀取和規劃工具;接受編輯模式(acceptEdits)在默認模式基礎上允許在當前工作目錄內進行文件寫入;危險跳過權限模式(dangerouslySkipPermissions)則完全跳過所有權限檢查。最後一種模式名稱故意令人警惕,僅適用於可信任的沙箱或自動化環境。用户可以通過命令行參數--mode選擇模式,並指定工作目錄作為信任邊界。

在實現中,我們通過check_permission函數決定工具調用是否被允許。該函數首先檢查工具是否屬於自動允許的集合,然後根據模式進行判斷。如果模式為危險跳過,則全部允許;如果為接受編輯且工具是寫入工具,則檢查目標路徑是否在工作目錄內;否則,通過_ask_permission函數向用户交互式提問,顯示工具名稱和參數,等待用户輸入'y'或'n'。用户的選擇將反映到工具結果中,智能體據此調整行為。

除了被動等待用户批准,智能體還可以主動請求幫助。我們新增了ask_question工具,允許智能體在信息不足時向用户提出一個聚焦的問題,例如當存在多個配置文件需要確定目標時。該工具描述明確指出:僅當真正受阻且無法從上下文合理推斷時才使用,不應用於進度更新或確認已可執行的操作。這減少了智能體在不確定性中盲目行動的風險。

通過集成權限檢查到工具執行路徑中,我們確保每個工具調用在運行前都經過安全網關。當權限被拒絕時,智能體收到明確的消息,從而避免重試相同操作。整個系統既保持了智能體的自主規劃能力,又通過人類監督提供了必要的安全護欄。在後續測試中,智能體能夠在默認模式下正常工作,讀取文件無需批准,而寫入文件時則暫停等待用户決策。

這種設計使得智能體在真實環境中更加可靠,尤其適用於處理敏感數據或執行潛在危險操作的任務。開發者可以根據具體場景選擇適當的權限模式,平衡效率與安全。