Andi Partovi: 為什麼每個 AI Agent 都需要一個模擬沙盒
Andi Partovi: 為什麼每個 AI Agent 都需要一個模擬沙盒
從知識型聊天機器人向自主行動型 Agent 的轉變
AI Agent 的開發正從簡單的知識型聊天機器人,演進到受監督的副駕駛(co-pilots),最後走向自主、以行動為導向的 Agent。雖然副駕駛通常只是為人類審核而撰寫內容,但以行動為導向的 Agent 則擁有發送電子郵件、修改資料庫和執行付款的權限。這種自主性的提升顯著增加了營運風險,因為生產環境中的錯誤可能會導致嚴重的後果,包括數據丟失或法律責任。
為什麼傳統評估方式對 AI Agent 失效
傳統的軟體工程測試——例如單元測試、斷言(assertions)和「黃金數據集」(golden datasets,即靜態的輸入輸出對)——對於自主 Agent 來說是不夠的,主要原因有四點:
1. 非決定性(Non-Determinism)
Agent 可能針對相同的輸入產生不同的輸出。因此,測試必須在大規模範圍內進行並透過重複執行來確定特定輸出的統計可能性,而不是依賴單次成功的運行。
2. 互動性
許多 Agent 在與外部系統進行多輪對話中運作。例如,一個透過電子郵件與供應商協商的採購 Agent,需要一個能夠發送和接收電子郵件並與即時資料庫互動的系統。靜態數據集無法捕捉這些動態的工作流程。
3. 動態標籤化
在 Agentic 系統中,「正確」的答案往往取決於執行的上下文。如果一個 Agent 因為驗證工具回傳錯誤而拒絕交易,那麼這種拒絕就是正確的行動,即使最初的測試預期是交易完成。因此,評估必須在追蹤(trace)之後進行(即運行後),而不是透過預先設定的標籤。
4. 不可預測的使用者行為
面對使用者的 Agent 會遇到對抗性輸入、超出範圍的請求,以及試圖操縱 Agent 以違反政策的行為。這些邊緣案例(edge cases)很少能在傳統的評估數據集中被捕捉到。
解決方案:模擬驅動開發
為了彌補「演示版可行」與「大規模運作可行」之間的差距,開發者需要一個模擬環境——一個為 AI Agent 提供的高保真(high-fidelity)「矩陣(Matrix)」。模擬環境透過提供相同的工具、服務和使用者類型來模仿生產環境,但不會產生現實世界的失敗後果。
POMDP 框架
從理論角度來看,AI Agent 運作於部分可觀測馬可夫決策過程(Partially Observable Markov Decision Process, POMDP)中。與西洋棋(完全可觀測的 MDP)不同,AI Agent 並不知道環境的全貌或使用者的意圖。它透過「行動與獎勵」系統進行互動:Agent 採取行動,環境狀態發生變化,接著 Agent 收到獎勵(正面或負面),這可能是即時的或延遲的。
穩健模擬環境的組成部分
建立一個有效的模擬環境需要四個核心組成部分:
- 受測 Agent: 正在被評估的特定 AI Agent。
- 模擬工具與服務: 資料庫、行事曆或通訊平台(例如
Slack、SharePoint)的模擬版本,其行為與真實版本一致。 - 模擬參與者: 由 LLM 驅動的角色(personas),用來與 Agent 互動。為了達到效果,這些角色不能僅僅是「樂於助人且有禮貌」,還必須模擬挫折、難以理解或不一致的人類,以測試 Agent 的魯棒性(robustness)。
- 測試場景: 全面的腳本,用來規定模擬如何運行,特別設計用來發現開發者可能未曾預見的失敗模式和邊緣案例。
評估與改進 Agent
在模擬中進行評估時,應結合使用 LLM 裁判(judges)與客觀驗證。透過 Python 腳本進行客觀驗證通常是最有效的方法,因為模擬環境提供了驗證特定狀態變化(例如資料庫中的餘額減少)是否確實發生的必要事實(ground truth)。
除了測試之外,模擬環境還可以用於透過以下方式迭代改進 Agent:
- 提示工程(Prompt Engineering): 根據在模擬中發現的失敗模式來優化提示詞。
- 數據生成: 創建高品質數據,用於監督式微調(Supervised Fine-Tuning, SFT)或強化學習(Reinforcement Learning, RL),將新的、強健的行為直接嵌入模型中。