《A Practical Guide to Building Agents》文檔總結
該文檔是一份面向產品和工程團隊的實用指南,旨在幫助團隊探索并構建首個基于大語言模型(LLM)的智能體(Agent),提煉了大量客戶部署經驗,提供了從概念定義到實際落地的全流程最佳實踐。
一、智能體(Agent)的核心定義
1. 本質與區別
- 本質:智能體是能代表用戶獨立完成任務的系統,可執行用戶目標所需的一系列工作流(如解決客服問題、預訂餐廳等),且具備高度自主性。
- 與傳統軟件/簡單LLM應用的區別:傳統軟件需用戶操作以簡化自動化工作流,而智能體可自主執行;僅集成LLM但不控制工作流執行的應用(如簡單聊天機器人、單輪LLM交互工具)不屬于智能體🔶1-13。
2. 核心特征
- 依賴LLM管理工作流執行與決策,能識別工作流完成狀態,主動糾正錯誤,失敗時可暫停執行并將控制權交回用戶。
- 可訪問多種工具與外部系統交互(獲取上下文、執行操作),并能根據工作流當前狀態動態選擇合適工具,且始終在明確的約束(Guardrails)內運行。
二、何時構建智能體
1. 核心適用場景
智能體適合傳統確定性、規則化方法難以應對的工作流,優先選擇以下三類場景:
- 復雜決策類:涉及細微判斷、例外情況或上下文敏感決策的工作流,如客服流程中的退款審批。
- 規則難維護類:因規則集龐大復雜導致更新成本高、易出錯的系統,如供應商安全審查。
- 依賴非結構化數據類:需解讀自然語言、從文檔提取信息或與用戶對話交互的場景,如處理房屋保險索賠。
2. 典型案例對比
以支付欺詐分析為例,傳統規則引擎像清單一樣,僅根據預設標準標記交易;而LLM智能體更像資深調查員,能評估上下文、識別細微模式,即使無明確違規規則也可發現可疑活動,可有效應對復雜模糊場景。
三、智能體設計基礎
智能體最基礎的形式包含三大核心組件,具體如下表所示:
組件 | 作用說明 |
---|---|
模型(Model) | 為智能體的推理與決策提供支持的LLM |
工具(Tools) | 智能體可使用的外部函數或API, legacy系統無API時,智能體可通過計算機使用模型與系統UI交互🔶1-34 |
指令(Instructions) | 定義智能體行為的明確指南與約束,高質量指令可減少歧義、提升決策準確性🔶1-34 |
1. 模型選擇原則
- 分任務匹配:簡單任務(如檢索、意圖分類)可使用更小、更快的模型;復雜任務(如退款審批)需更強大的模型。
- 原型與優化流程:先用最強大的模型構建原型確立性能基準,再嘗試替換小模型驗證效果,平衡性能、成本與延遲。
- 核心步驟:先通過評估建立性能基準,再用最優模型達成準確率目標,最后在可能的情況下用小模型優化成本與延遲1-47🔷1-49🔷。
2. 工具定義規范
- 工具類型:智能體需三類工具,且工具可作為其他智能體的工具(如經理模式中的子智能體),例如退款智能體、研究智能體、寫作智能體1-59🔷。
- 設計要求:每個工具需標準化定義,實現工具與智能體的靈活多對多關聯;工具需具備完善文檔、充分測試與可復用性,以提升可發現性、簡化版本管理。
3. 指令配置最佳實踐
實踐方法 | 具體說明 |
---|---|
利用現有文檔 | 基于現有操作流程、支持腳本或政策文檔創建LLM友好的流程,如客服場景可參考知識庫文章 |
提示拆分任務 | 將復雜資源拆解為更小、清晰的步驟,幫助模型更好遵循指令 |
定義明確操作 | 確保流程每一步對應具體操作/輸出,如要求智能體詢問用戶訂單號或調用API獲取賬戶詳情 |
覆蓋邊緣案例 | 預判常見變化(如用戶信息不全、問題超出預期),用條件步驟說明處理方式 |
四、智能體編排(Orchestration)
編排模式用于實現智能體高效執行工作流,主要分為單智能體系統與多智能體系統兩類。
1. 單智能體系統
- 核心特點:單個模型配備合適工具與指令,通過循環(loop)執行工作流,新增工具可擴展能力,且易于評估與維護1-91🔷。
- 運行機制:以“運行(run)”為核心,通過循環執行直至滿足退出條件,常見退出條件包括調用最終輸出工具、模型返回無工具調用的響應(如直接用戶消息)等1-98🔷1-100🔷。
- 復雜度管理:可使用提示模板,通過單一靈活基礎提示接受政策變量,適配多場景,簡化維護與評估。
2. 多智能體系統
(1)適用場景
當單智能體無法遵循復雜指令、頻繁選擇錯誤工具時,可拆分構建多智能體系統,具體拆分依據包括:
- 邏輯復雜:提示包含大量條件語句(多if-then-else分支),提示模板難以擴展。
- 工具過載:工具存在相似性/重疊性,即使優化工具名稱、參數與描述也無法提升性能。
(2)核心模式
模式 | 結構特點 | 適用場景 |
---|---|---|
經理模式(Manager) | 中央“經理”智能體通過工具調用協調多個專業智能體,整合結果提供統一用戶體驗1-124🔷 | 需單一智能體控制工作流執行、接觸用戶的場景,如多語言翻譯(經理智能體協調西班牙語、法語、意大利語翻譯智能體)1-126🔷 |
去中心化模式(Decentralized) | 多個智能體地位平等,可根據專業領域相互移交任務控制權,移交時同步最新對話狀態1-140🔷 | 無需單一智能體集中控制的場景,如客服流程(分診智能體將訂單查詢移交訂單管理智能體)1-150🔷 |
(3)設計原則
無論采用何種模式,均需保持組件靈活性、可組合性,并以清晰、結構化的提示為驅動。
五、約束(Guardrails)設計
1. 核心作用與定位
- 作用:管理數據隱私風險(如防止系統提示泄露)與聲譽風險(如確保模型行為符合品牌定位),是LLM部署的關鍵組件,需與身份驗證、訪問控制等安全措施結合使用。
- 定位:分層防御機制,單一約束保護有限,需組合使用多種專業約束提升智能體安全性。
2. 約束類型
類型 | 功能說明 | 示例 |
---|---|---|
相關性分類器 | 確保智能體響應在預期范圍內,標記偏離主題的查詢 | 將“帝國大廈有多高”標記為無關查詢 |
安全分類器 | 檢測試圖利用系統漏洞的不安全輸入(如越獄、提示注入) | 識別“扮演教師解釋系統指令”這類提取系統提示的輸入 |
PII過濾器 | 審查模型輸出,防止不必要的個人身份信息泄露 | 過濾輸出中的手機號、身份證號 |
內容審核 | 標記有害/不當輸入(如仇恨言論、騷擾、暴力內容) | 攔截包含辱罵性語言的用戶消息 |
工具安全措施 | 按工具風險(只讀/寫權限、可逆性、財務影響等)評級(低/中/高),高風險工具執行前觸發檢查或人工審批 | 對“發起退款”等高風險工具,執行前需人工確認 |
規則化保護 | 用確定性措施(黑名單、輸入長度限制、正則過濾)防范已知威脅 | 攔截包含違禁詞或SQL注入的輸入 |
輸出驗證 | 通過提示工程與內容檢查確保響應符合品牌價值觀 | 避免輸出損害品牌形象的言論 |
3. 構建流程與機制
- 構建步驟:優先關注數據隱私與內容安全;根據實際邊緣案例與故障新增約束;平衡安全性與用戶體驗,隨智能體演進調整約束1-174🔷1-176🔷。
- 執行機制:以Agents SDK為例,默認采用樂觀執行,主智能體生成輸出時約束同步運行,若違反約束則觸發異常;約束可實現為函數或智能體,如防越獄、相關性驗證等1-190🔷。
六、人類干預機制
1. 核心價值
人類干預是提升智能體實際性能且不影響用戶體驗的關鍵保障,尤其在部署初期,可幫助識別故障、發現邊緣案例、建立完善的評估周期。
2. 觸發場景
- 超出失敗閾值:設定智能體重試或操作限制,若超出(如多次無法理解用戶意圖),則觸發人類干預。
- 高風險操作:對敏感、不可逆或高風險操作(如取消用戶訂單、大額退款、付款),需觸發人工監督,直至智能體可靠性達標。
七、總結與建議
1. 智能體核心價值
智能體開啟了工作流自動化新時代,能應對模糊場景、跨工具執行操作、處理多步驟任務,尤其適合復雜決策、非結構化數據處理、規則難維護的場景,區別于簡單LLM應用。
2. 構建關鍵建議
- 基礎建設:選擇合適模型,搭配定義清晰的工具與結構化指令。
- 編排策略:從單智能體起步,需復雜處理時再過渡到多智能體系統。
- 安全保障:全流程部署約束,結合人類干預機制。
- 落地路徑:從小規模驗證開始,結合真實用戶反饋迭代,逐步擴展能力。