AI Agent 上線實戰:可觀測性與評估
原文:Microsoft AI Agents for Beginners · MIT 授權
學習目標
學完本課你將能:
- 理解 Agent 可觀測性與評估的核心概念
- 掌握改善 Agent 效能、成本與效果的實戰技巧
- 知道該評估什麼、怎麼系統性地評估 AI Agent
- 學會在部署至正式環境時控管成本
- 為 Microsoft Agent Framework 打造的 Agent 加入觀測儀表
⚠️ 先修提醒
部署 AI Agent 前,務必確保它是安全可信的。請先閱讀 第 6 課:打造可信賴的 AI Agent。
Traces 與 Spans
可觀測性工具(如 Langfuse 或 Microsoft Foundry)通常將 Agent 的執行過程表示為 trace 和 span:
| 術語 | 說明 | 舉例 |
|---|---|---|
| Trace | 一個完整的 Agent 任務,從頭到尾 | 處理一則使用者查詢的整個過程 |
| Span | Trace 中的單一步驟 | 呼叫 LLM、檢索資料、執行工具 |
沒有可觀測性,AI Agent 就是一個黑盒子——內部狀態和推理過程完全不透明,難以診斷問題或優化效能。有了可觀測性,Agent 變成玻璃盒,透明且可審計,這對建立信任、確保運作如預期至關重要。
為什麼正式環境需要可觀測性?
| 需求 | 說明 |
|---|---|
| 除錯與根因分析 | Agent 出錯時,trace 能讓你精確定位錯誤源頭——尤其涉及多次 LLM 呼叫、工具互動和條件邏輯的複雜 Agent。 |
| 延遲與成本管理 | LLM 和外部 API 按 token/呼叫計費,可觀測性能精確追蹤每次呼叫,找出過慢或過貴的操作,進而優化 prompt、換更高效的模型或重新設計流程。 |
| 信任、安全與合規 | 可觀測性提供 Agent 行為與決策的稽核軌跡,可用於偵測 prompt injection、有害內容生成、PII 處理不當等問題。 |
| 持續改善迴圈 | 監測真實世界的 Agent 表現 → 找出改善點 → 收集資料微調模型 → 驗證變更效果 → 形成線上評估驅動離線實驗的良性循環。 |
關鍵指標
| 指標 | 應該追蹤什麼 |
|---|---|
| 延遲 (Latency) | Agent 回應速度。長時間等待會損害使用者體驗。例如 20 秒的模型呼叫可改用更快模型或平行呼叫來加速。 |
| 成本 (Costs) | 每次 Agent 執行的花費。頻繁的工具使用或多重 prompt 會快速增加成本。即時監控能幫助發現異常暴增。 |
| 請求錯誤率 | Agent 失敗多少次?包括 API 錯誤、工具呼叫失敗。可據此設定 fallback 或重試機制(如 LLM A 掛了自動切換到 B)。 |
| 使用者明確回饋 | 👍/👎、⭐1-5 星評分或文字評論。持續的負面回饋就是警訊。 |
| 使用者隱性回饋 | 不需明確評分的間接訊號:立即重新提問、重複查詢、點擊重試按鈕。使用者一再問同樣問題代表 Agent 沒答好。 |
| 準確率 (Accuracy) | Agent 產出正確或理想結果的頻率。先定義什麼叫「成功」,再透過自動檢查或評估分數來追蹤。 |
| 自動評估指標 | 用 LLM 對輸出評分(是否有幫助、是否準確)。也可用開源工具如 RAGAS(RAG 專用)或 LLM Guard(偵測有害語言/prompt injection)。 |
💡 實戰建議
結合以上多種指標才能全面掌握 AI Agent 的健康狀態。本課的範例筆記本會展示這些指標在真實案例中的樣貌。
為 Agent 加入觀測儀表 (Instrumentation)
要收集追蹤資料,必須為程式碼加上儀表。目標是讓 Agent 程式碼發出 trace 和 metric 資料,讓可觀測性平台擷取、處理並視覺化。
OpenTelemetry (OTel)
OpenTelemetry 已成為 LLM 可觀測性的業界標準,提供一組 API、SDK 和工具來產生、收集、匯出遙測資料。Microsoft Agent Framework 原生支援 OpenTelemetry:
from agent_framework.observability import get_tracer, get_meter
tracer = get_tracer()
meter = get_meter()
with tracer.start_as_current_span("agent_run"):
# Agent 執行過程自動被追蹤
pass
手動建立 Span
當你需要更細緻的自訂資訊時,可手動建立 span 並附加自訂屬性,如 user_id、session_id、model_version 等。
from langfuse import get_client
langfuse = get_client()
span = langfuse.start_span(name="my-span")
span.end()
Agent 評估
可觀測性給我們指標,評估 (Evaluation) 則是分析這些資料(並執行測試)來判斷 AI Agent 表現好壞、如何改善。AI Agent 本質上非確定性且會演化——沒有評估,你不會知道你的「聰明 Agent」是真的在好好工作還是退步了。
離線評估 (Offline Evaluation)
在受控環境中,使用測試資料集(非真實使用者查詢)評估 Agent。你知道正確答案是什麼,然後看 Agent 答得如何。
- 好處:可重複、有明確的正確答案 benchmark
- 挑戰:測試集可能與真實世界的查詢差異很大
- 做法:定期更新測試集,加入新的邊界案例和真實場景。混合小規模「冒煙測試」和大規模評估集。
線上評估 (Online Evaluation)
在真實正式環境中評估 Agent,監測實際使用者互動的表現和結果。
- 好處:捕捉實驗室無法預料的情況——模型漂移、意外查詢
- 挑戰:難以取得可靠標籤或分數,通常依賴使用者回饋或下游指標
- 做法:收集顯性/隱性回饋、執行影子測試或 A/B 測試
兩者結合:持續改善迴圈
離線評估 → 部署 → 線上監測 → 收集失敗案例 → 加入離線資料集 → 改進 Agent → 重複
常見問題與解法
| 問題 | 潛在解法 |
|---|---|
| AI Agent 任務執行不一致 | 優化 prompt,明確目標;考慮拆分子任務交給多個 Agent 處理 |
| AI Agent 陷入無限迴圈 | 設定明確的終止條件,讓 Agent 知道何時停止;複雜推理任務使用專用推理模型 |
| AI Agent 工具呼叫表現不佳 | 在 Agent 系統外獨立測試和驗證工具輸出;調整參數定義、prompt 和工具命名 |
| 多 Agent 系統表現不一致 | 優化每個 Agent 的 prompt,確保清晰且互不重疊;建立路由/控制器 Agent 的階層系統 |
以上多數問題可以透過可觀測性更有效地辨識。Trace 和 metric 能幫你精確找到 Agent 工作流程中出問題的環節。
成本控管策略
| 策略 | 做法 |
|---|---|
| 使用小型模型 (SLM) | 小型語言模型在某些 Agent 場景表現良好且成本大幅降低。簡單任務(意圖分類、參數提取)用 SLM,複雜推理才用大模型。建立評估系統來比較 SLM 與大模型的表現差異。 |
| 路由器模型 | 用 LLM/SLM 或無伺服器函式根據請求複雜度將請求路由到最適合的模型。簡單查詢 → 小模型,複雜推理 → 大模型。 |
| 快取回應 | 識別常見請求和任務,在請求進入 Agent 系統前就直接回傳快取結果。可用基本 AI 模型判斷請求與快取內容的相似度。這對 FAQ 和常見工作流程尤其有效。 |
本課重點回顧
- Trace = 完整任務、Span = 單一步驟——這是可觀測性的基本語言
- 可觀測性 ≠ 可選——正式環境中它是除錯、成本控管、安全合規和持續改善的基石
- 追蹤七大關鍵指標:延遲、成本、錯誤率、顯性回饋、隱性回饋、準確率、自動評估分數
- OpenTelemetry 是業界標準——Microsoft Agent Framework 原生支援
- 離線 + 線上評估互補——離線可重複驗證、線上捕捉真實世界意外狀況
- 成本控管三招:SLM 處理簡單任務、路由器分流、快取常見請求
實戰演練
本課提供費用報銷範例筆記本,展示如何使用可觀測性工具監測和評估你的 Agent。
原始資源
- 原始 README(英文)
- 課程影片
- 完整課程 (69.7k ⭐)
- Microsoft Foundry Discord — 與其他學習者交流、參加 office hours