ai-agents-for-beginners

AI代理在生產環境:可觀察性與評估

AI代理在生產環境

隨著AI代理從實驗性原型轉向現實世界的應用,理解其行為、監控其表現以及系統性評估其輸出的能力變得非常重要。

學習目標

完成本課程後,您將了解/掌握:

目標是裝備您以知識,將您的「黑盒」代理轉變為透明、可管理且可靠的系統。

注意: 部署安全且可信賴的AI代理非常重要。請參考建立可信賴的AI代理課程。

跟蹤與跨度(Traces and Spans)

可觀察性工具,如LangfuseMicrosoft Foundry通常將代理執行視為跟蹤(trace)和跨度(span)。

Langfuse中的跟蹤樹

沒有可觀察性時,AI代理就像一個「黑盒子」—其內部狀態與推理不透明,難以診斷問題或優化性能。有了可觀察性,代理變成「玻璃盒子」,提供透明度,這對建立信任並確保其按預期運作至關重要。

為什麼可觀察性在生產環境中很重要

將AI代理過渡到生產環境會帶來一系列新的挑戰和需求。可觀察性不再是「可有可無」,而是關鍵能力:

需追蹤的關鍵指標

為監控和理解代理行為,應追蹤多種指標和信號。雖然具體指標會依代理目的不同而異,但有些指標是普遍重要的。

以下是一些觀察工具常監控的主要指標:

延遲: 代理回應速度如何?等待時間過長會嚴重影響用戶體驗。您應透過追蹤代理執行來測量任務及單步的延遲。例如,一個代理所有模型調用需要20秒,可透過使用更快模型或並行呼叫模型來加速。

成本: 每次代理執行的費用是多少?AI代理依賴LLM調用(按令牌計費)或外部API。頻繁使用工具或多次提示會快速提升成本。例如,若代理為了略微提升質量調用LLM五次,必須評估成本是否合理,或是否可減少調用次數或使用較便宜模型。即時監控還能協助識別異常費用激增(如錯誤導致API過度迴圈)。

請求錯誤: 代理失敗的請求數量多少?這可能包括API錯誤或工具調用失敗。為使代理在生產環境更堅固,您可設定備援或重試機制。例如,若LLM供應商A故障,可切換備援的LLM供應商B。

用戶反饋: 實施直接用戶評價以提供寶貴洞見。這可包括明確評分(👍讚/👎踩、⭐1-5星)或文字評論。持續負面反饋應提醒您代理可能未如預期運作。

隱式用戶反饋: 用戶行為即使無明確評分,也提供間接反饋,如立即重新表達問題、多次查詢或點擊重試按鈕。例如,如果看到用戶反覆詢問同一問題,這是代理未正常運作的訊號。

準確度: 代理產生正確或理想輸出的頻率。準確度定義會不同(如解題正確率、資訊檢索準確性、用戶滿意度)。首步是定義什麼是成功。您可透過自動檢查、評分或任務完成標記追蹤準確度,例如將跟蹤標記為「成功」或「失敗」。

自動評估指標: 您亦可設定自動評測。例如,使用LLM評分代理輸出是否有幫助、準確或其他。亦有多款開源庫協助評分代理不同面向,如針對RAG代理的RAGAS或用於檢測有害語言與提示注入的LLM Guard

實務中,綜合這些指標能最佳涵蓋AI代理狀態。於本章範例筆記本,我們將展示這些指標在真實案例中的樣貌,但首先,讓我們學習典型的評估流程。

為你的代理裝置監控工具

為了收集追蹤資料,您需要為程式碼加入監控工具。目的是在代理代碼中加入能發出跟蹤與指標的程式碼,讓可觀察性平台能捕獲、處理及視覺化這些數據。

OpenTelemetry (OTel): OpenTelemetry已成為LLM可觀察性的行業標準。它提供了一套API、SDK和工具,用於生成、收集與匯出遙測數據。

有許多監控庫封裝現有代理框架,使導出OpenTelemetry跨度到觀察工具變得簡單。Microsoft Agent Framework本身就原生整合了OpenTelemetry。以下為為MAF代理加入監控的範例:

from agent_framework.observability import get_tracer, get_meter

tracer = get_tracer()
meter = get_meter()

with tracer.start_as_current_span("agent_run"):
    # 代理執行會自動被追蹤
    pass

本章範例筆記本會演示如何為您的MAF代理加入監控。

手動創建跨度: 雖然監控庫提供良好的基礎,但有時需要更細節或定制的資訊。您可以手動創建跨度以加入自訂應用邏輯。更重要的是,它們能用自訂屬性(又稱標籤或元資料)豐富自動或手動創建的跨度。這些屬性可包含特定業務資料、中間計算結果或任何對除錯與分析有用的上下文,如user_idsession_idmodel_version

使用Langfuse Python SDK手動創建跟蹤與跨度的範例:

from langfuse import get_client
 
langfuse = get_client()
 
span = langfuse.start_span(name="my-span")
 
span.end()

代理評估

可觀察性提供指標,但評估是分析這些資料(並進行測試)來判斷AI代理表現及其改進空間的過程。換句話說,一旦有了這些跟蹤和指標,如何利用它們來評判代理並作決策?

定期評估很重要,因為AI代理往往是非確定性的且會演變(透過更新或模型行為漂移)—無評估您無從知曉「智慧代理」是否真正做好工作或是否退步。

AI代理的評估有兩大類型:線上評估離線評估。兩者都很重要,並且互相補充。我們通常從離線評估開始,因為這是在部署代理前最基本必要的步驟。

離線評估

Langfuse中的資料集項目

這是在受控環境中評估代理,通常使用測試資料集,而非現場用戶查詢。您會使用具有預期輸出或正確行為的策劃資料集,然後讓代理執行測試。

例如,若您建立一個數學文字題代理,可能有一個含有100題已知答案的測試資料集。離線評估通常在開發過程中進行(也可作為CI/CD管線的一部分)以檢查改進或防止回退。優點是可重複,可以獲取明確的準確度指標因為有標準答案。您也可以模擬用戶查詢並將代理回應與理想答案比較,或使用上述自動指標。

離線評估的主要挑戰是確保測試資料集全面且保持相關性—代理可能在固定測試集上表現良好,但在生產中遇到完全不同的查詢。因此,應持續更新測試集,加入反映真實世界情境的新邊界案例和範例。建議混用小型「冒煙測試」案例與大型評估集:小型用於快速檢查,大型用於較全面的性能指標。

線上評估

可觀察性指標總覽

這指的是在現場、真實環境中評估代理,即在生產實際使用中評估。線上評估涉及監控代理對真實用戶互動的表現並持續分析結果。

例如,您可能追蹤成功率、用戶滿意度分數或其他指標在實時流量中。線上評估的優點是捕捉實驗室環境中可能未預料的情況—您可以觀察模型隨時間漂移(當輸入模式改變導致代理效果衰退)並捕捉未曾包含於測試資料的意外查詢或情況。它提供代理在現實環境中的真實表現透視。

線上評估通常包括收集隱含及明確用戶回饋(如先前所述),並可能執行影子測試或A/B測試(新版本代理與舊版本並行運行比較)。挑戰在於難以獲取可靠的標註或分數—您可能依靠用戶回饋或下游指標(例如用戶是否點擊結果)。

結合兩者

線上與離線評估並非互斥,而是高度互補。線上監控洞察(例如代理在新型用戶查詢中表現不佳)可用於增強和改進離線測試資料集。反之,離線測試表現良好的代理可更有信心地部署並在線上監控。

事實上,許多團隊採用如下迴路:

離線評估 -> 部署 -> 線上監控 -> 收集新失敗案例 -> 加入離線資料集 -> 優化代理 -> 重複

常見問題

當您將AI代理部署至生產環境,可能會遇到各種挑戰。以下是一些常見問題及其可能解決方案:

問題 潛在解決方案
AI代理任務執行不一致 - 優化給AI代理的提示;明確目標。
- 找出可將任務拆分為子任務並由多代理處理的部分。
AI代理陷入無限迴圈 - 設定明確的終止條件,讓代理知道何時停止流程。
- 對於需要推理與規劃的複雜任務,使用專門處理推理任務的更大型模型。
AI代理工具調用表現不佳 - 在代理系統外部測試並驗證工具輸出。
- 調整工具參數、提示與命名。
多代理系統執行不一致 - 調整給每個代理的提示,確保資訊具體且彼此區別。
- 建立使用「路由」或控制代理的分級系統,以決定合適代理。

有了可觀察性,許多問題可更有效被辨識。先前討論的跟蹤與指標能精確指出代理工作流程中問題發生的位置,使除錯與優化更高效。

成本管理

以下是一些管理將 AI 代理部署到生產環境成本的策略:

使用較小的模型: 小型語言模型(SLM)在某些具有代理性的使用案例中表現良好,並能顯著降低成本。如前所述,建立評估系統以確定和比較性能與較大型模型,是了解 SLM 在您的使用案例中表現如何的最佳方式。考慮使用 SLM 處理較簡單的任務如意圖分類或參數提取,同時將較大型模型保留用於複雜推理。

使用路由模型: 類似的策略是使用多樣化的模型和尺寸。您可以使用 LLM/SLM 或無伺服器函數,根據複雜度路由請求到最合適的模型。這不僅有助於降低成本,也確保在適合的任務上達到良好的性能。例如,將簡單查詢路由至較小且較快的模型,只有在複雜推理任務時才使用昂貴的大型模型。

快取回應: 識別常見請求和任務,並在它們通過您的代理系統之前提供回應,是減少類似請求量的好方法。您甚至可以實現一個流程,使用較基礎的 AI 模型來判定請求與快取請求的相似程度。這一策略能顯著降低對常見問題或常用工作流程的成本。

讓我們看看這在實踐中的運作

在本章節的範例筆記本中,我們將看到如何使用可觀察性工具來監控和評估我們的代理。

對生產環境中的 AI 代理有更多疑問?

加入Microsoft Foundry Discord,與其他學習者交流,參加辦公時間並獲得 AI 代理相關問題的解答。

上一課

元認知設計模式

下一課

代理協議


免責聲明: 本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。