我建立的第一個代理非常簡單: 它從向量存儲中檢索信息,將其格式化為 HTML,並通過電子郵件發送給用戶。 這樣簡單的事情不會再簡單了,但這個代理仍然有約 1% 的失敗率。 沒有錯誤。沒有警告。它只是返回垃圾。 這是殘酷的真相: 代理經常失敗。而且它們是默默失敗的。一直都是。你就是不能指望 LLM 每次都能做對的事情。 到現在為止,我已經建立並部署了幾十個代理,以下是一些實際有效的做法: 1. 從第一天開始可觀察性。如果你看不到你的代理在做什麼,你就無法調試、改進或信任它。每個代理都應該生成顯示完整請求流程、模型交互、令牌使用和時間元數據的追蹤。 2. 對輸入和輸出進行護欄檢查。進入和離開 LLM 的所有內容都應由確定性代碼檢查。即使是不太可能出錯的東西最終也會出錯。 3. LLM 作為評判的評估。你可以使用 LLM 建立一個簡單的評判來自動評估你的代理輸出。標記數據集,編寫評估提示,並不斷迭代,直到你的評判能夠捕捉到大多數失敗。 4. 錯誤分析。你可以收集失敗樣本,對其進行分類,並診斷最常見的錯誤。 5. 上下文工程。代理經常失敗是因為它們的上下文嘈雜、過載或不相關。學會保持上下文的相關性是非常重要的。 6. 人類反饋循環。有時,最好的護欄是一個人類在循環中,特別是在高風險決策中。