AI News HubLIVE
站内改写5 分鐘閱讀

使用 Agent-EvalKit 系統化評估 AI 代理

Agent-EvalKit 是一個開源工具包 (Apache 2.0),透過整合 AI 編碼助手(包括 Claude Code、Kiro CLI 和 Kilo Code)來提供評估基礎設施。本文介紹了 Agent-EvalKit 的六個評估階段,並以使用 Strands Agents SDK 和 Amazon Bedrock 構建的旅行研究代理為例進行說明。

來源AWS Machine Learning Blog作者: Ishan Singh

構建 AI 代理的團隊通常像評估其他軟體一樣評估它們:檢查輸出是否符合預期。但是,自主選擇工具並跨多個來源排序操作的代理會產生輸出級測試無法完全表徵的行為。一個代理可能會提供結構良好、可操作的響應,同時產生幻覺,因為其工具返回了空結果而捏造事實。它也可能在跳過可靠過程所需的驗證步驟的情況下得出正確結論。由於這些失敗隱藏在最終響應的表面之下,捕獲它們需要追溯代理完整執行路徑的評估:代理呼叫了哪些工具,這些工具返回了什麼資料,以及響應是否忠實地反映了這些資料。

彌補這一差距需要大多數代理團隊沒有人員從頭構建的基礎設施。你需要具有真實結果的測試用例、用於捕獲工具呼叫和中間狀態的可觀測性儀器,以及評估忠實度和工具使用情況以及表面準確性的指標。

Agent-EvalKit 是一個開源工具包 (Apache 2.0),透過整合 AI 編碼助手(包括 Claude Code、Kiro CLI 和 Kilo Code)使這種評估基礎設施可用。它將整個工作流帶入你的開發環境,而不是將評估視為部署後的單獨工作。你用自然語言描述評估目標,工具包處理每個階段,從讀取代理原始碼和生成有針對性的測試用例,到執行評估並生成包含改進建議的報告,這些建議引用程式碼庫中的特定位置。以下各節介紹了 Agent-EvalKit 如何在其六個評估階段中工作,並使用使用 Strands Agents SDK 和 Amazon Bedrock 構建的旅行研究代理作為執行示例。

代理評估需要什麼

除了基礎設施本身,選擇衡量什麼同樣要求很高。代理質量跨越多個維度,沒有單一指標可以捕獲:響應是否基於工具實際返回的內容、代理是否以正確的引數呼叫了正確的工具、以及最終輸出是否連貫且對提問者有用。一個響應可能讀起來很好,同時悄悄地對空工具結果產生幻覺;代理可能透過一系列錯誤的工具呼叫得出一個看似合理的答案,因此每個維度都必須單獨檢查,而不是從相鄰維度推斷。

沒有單一的評估器風格能很好地處理所有這三個方面。基於程式碼的評估器提供快速、可重複的結果,但會懲罰有效的變體。大語言模型 (LLM) 作為評判的評估器提供細緻的評估,但代價是額外的推理和提示設計。最有效的評估策略結合了兩種方法。將評估分數轉化為具體的程式碼更改是許多努力最終停滯的地方,這就是為什麼評估工作流需要以具體的、程式碼級別的建議結束,而不是一個數字儀表板。

Agent-EvalKit 的工作原理

Agent-EvalKit 透過你現有的 AI 編碼助手工作,而不是作為單獨的評估平臺執行。你的助手,無論 Claude Code、Kiro CLI 還是 Kilo Code,都成為評估引擎,透過應用其閱讀程式碼和在每個評估階段推理代理行為的能力。你透過像 /evalkit.plan 和 /evalkit.data 這樣的斜槓命令驅動這個工作流,並附加自然語言指導,告訴助手你的代理哪些質量維度最重要。這種設計將評估保留在開發環境中,因此幫助你構建代理的同一個助手也幫助你評估它。

該過程從你的代理原始碼開始,助手讀取工具定義、系統提示和框架配置,以構建代理做什麼、可以呼叫哪些工具以及其行為可能在哪裡崩潰的詳細模型。工具包在後續階段產生的每個工件,從評估計劃到最終報告,都建立在這個程式碼級別的理解之上。

基於此基礎,助手設計一個個性化的評估計劃,其中指標針對代理的能力和風險領域,然後透過後續階段生成測試用例、用 OpenTelemetry 相容的追蹤儀器化代理、在收集結構化追蹤的同時執行每個測試用例、並根據你的標準評估結果。該過程以一份報告結束,其中優先建議引用程式碼中的特定位置,將評估結果直接連線到可操作的修復。如果你指示系統關注由空工具結果觸發的幻覺,例如,該指導將影響測試用例生成、指標選擇以及報告最終強調的模式。

下圖說明了從測試用例到指標評估的流程。

工具包將此工作組織為六個階段,每個階段在 eval/ 目錄中產生工件,供下一階段使用。你透過 AI 助手以斜槓命令的形式呼叫每個階段,命令後的文本作為該階段的自然語言指導。一旦初始工件就位,你可以使用不同的指導重新呼叫任何階段以轉移焦點或深化分析,而無需從頭重建。

這六個階段涵蓋了完整的評估生命週期,從理解代理的能力到推薦具體的程式碼改進。

計劃 (/evalkit.plan) 讀取代理程式碼以瞭解其工具和框架,然後生成一個評估計劃,將每個指標與具體的評估方法配對。你的指導決定了計劃優先考慮哪些質量維度,這些優先順序會延續到後期階段的工作評估程式碼中。

資料 (/evalkit.data) 生成基於評估計劃的測試用例,每個測試用例都有輸入和預期結果,針對代理需要處理的特定行為和故障模式。如果你已經有來自生產日誌或手動測試的測試資料,你可以改為將這一階段指向你現有的資料集。

追蹤 (/evalkit.trace) 透過向代理新增 OpenTelemetry 相容的追蹤使完整執行路徑可見。對於支援的框架,包括 Strands、LangGraph 和 CrewAI,它會檢測框架並應用適當的儀器化。請參閱 Agent-EvalKit 儲存庫瞭解當前的支援矩陣。

執行代理 (/evalkit.run_agent) 針對每個測試用例執行你的代理,為每次執行生成一個結構化的追蹤檔案,捕獲工具呼叫、模型響應和中間狀態的完整歷史。

評估 (/evalkit.eval) 將計劃中的指標實現為可執行的評估程式碼,針對收集的追蹤執行它,並儲存結構化結果。它支援 DeepEval 和 Strands Evals SDK 等評估庫,選擇最適合你的代理和指標的方法。

報告 (/evalkit.report) 分析跨測試用例的模式並生成優先建議,這些建議引用代理程式碼中的特定位置,每個建議包括其預期影響,以便你可以將改進工作引導到最有差異的地方。

在這些階段中,模糊的質量關注變成了結構化的證據體系:測試用例、執行追蹤、指標分數和優先建議,所有這些都連結回程式碼中的特定位置。

演示研究:評估旅行研究代理

在使用 Strands Agents SDK 和 Amazon Bedrock 構建旅行研究代理的開發過程中,我們注意到代理有時在其響應中提供可疑的精確數字。該代理使用網路搜尋、航班資訊、氣候資料、貨幣兌換和預算計算工具幫助使用者規劃旅行,但我們無法確定精度問題有多普遍,或者哪些查詢觸發了它。

Agent-EvalKit 分析了代理的程式碼,在計劃階段,設計了一個圍繞三個指標的集中評估:忠實度衡量響應是否基於工具實際返回的資料;工具引數準確性檢查代理是否以正確的輸入呼叫工具;響應質量評估輸出有多連貫和有用。資料階段隨後生成了 100 個多輪測試會話,涵蓋目的地研究、季節時機、行程構建、比較問題和預算計算,後續階段執行每個會話並捕獲詳細的執行追蹤。

結果揭示了質量與可靠性之間的明顯分界線。響應質量得分為 83.9%,確認代理產生了清晰、可操作的旅行建議;工具引數準確性達到 64.5%,顯示代理通常選擇了正確的工具,但有時傳遞了不精確的引數。忠實度僅得分 32.3%,表明每當其網路搜尋工具返回空或不完整結果時,代理會虛構匯率、溫度和景點細節,並將這些發明呈現為來自其工具。

下圖顯示了單個執行中的這種幻覺模式,代理收到空工具響應並呈現虛構資料,就好像它來自其工具一樣。

報告將幻覺護欄確定為最高優先順序的修復,建議系統提示指令在工具返回空結果時進行披露,並改進所有程式碼路徑中的工具錯誤處理。在執行 Agent-EvalKit 之前,我們知道代理有時似乎不可靠。之後,我們知道了根本原因是空工具輸出觸發了幻覺,並且有具體的程式碼更改來解決它。

演練

以下各節將引導你完成 Agent-EvalKit 的先決條件、安裝工具包並針對你的代理執行端到端評估。

先決條件

執行 Agent-EvalKit 評估需要雲訪問基礎模型推理和本地工具進行評估工作流。

一個有效的 AWS 賬戶,在 Amazon Bedrock 控制台中啟用了基礎模型。Agent-EvalKit 使用 LLM 作為評判指標,需要基礎模型進行評分,因此在繼續之前,請確認您的模型在“模型訪問”頁面上可用。

Python 3.11 或更高版本和 Git。

uv 包管理器。在 macOS 和 Linux 上,使用 curl -LsSf https://astral.sh/uv/install.sh | sh 安裝。

一個受支援的 AI 編碼助手(Claude Code、Kiro CLI 或 Kilo Code)已安裝並配置在您的機器上。本文中的示例使用 Claude Code,但工作流適用於所有三個。請參閱每個助手的文件以獲取安裝說明。

開始使用

使用 uv 安裝工具包,它直接從 Agent-EvalKit GitHub 儲存庫拉取。

uv tool install evalkit --from git+https://github.com/awslabs/Agent-EvalKit.git

初始化一個評估專案並將代理程式碼複製到專案目錄中。您的代理目錄應包含原始碼、工具定義和執行代理所需的任何配置。有關受支援的代理框架和專案結構的詳細資訊,請參閱 Agent-EvalKit 儲存庫。

evalkit init my-agent-evaluation cd my-agent-evaluation cp -r /path/to/your/agent .

從評估專案內部啟動您的 AI 助手。對於 Claude Code,執行 claude 命令。

claude

對於引導式首次評估,quick 命令將逐步引導您完成所有六個階段,解釋每個階段的作用以及下一步要執行哪個命令。

/evalkit.quick /evalkit.quick Evaluate my agent at ./my_agent for response quality and tool accuracy

為了獲得更多控制,您可以單獨執行每個階段。