跳到主要內容
AI News HubLIVE
站內改寫5 分鐘閱讀

使用Amazon Bedrock AgentCore的資料集管理構建與您的智慧體一同成長的測試套件

文章摘要

將快速變化的線上訊號與穩定的離線基線相結合,智慧體評估最為有效。Amazon Bedrock AgentCore的資料集管理提供了版本化的測試固定元件,實現一致測量和真實情況驗證。

來源AWS Machine Learning Blog作者: Visakh Madathil
使用Amazon Bedrock AgentCore的資料集管理構建與您的智慧體一同成長的測試套件
回報錯誤

更正管道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

智慧體評估在結合快速變化的線上訊號與穩定的離線基線時最為強大。要了解智慧體是否真正隨時間改進,除了不斷變化的真實世界流量,還需要一個固定的基準。

在Amazon Bedrock AgentCore中將測試用例作為資料集管理評估基線,為智慧體評估帶來了版本化測試固定元件的紀律。您可以編寫包含輸入、預期輸出、斷言和工具序列的場景,然後將其釋出為不可變的編號版本,這些版本不會在執行中發生變化。您可以自由地迭代可變草案,直到準備好鎖定檢查點。當生產環境出現故障時,該故障將成為永久測試用例,未來每次更改都將對其進行評估。

在本文中,我們透過一個金融市場情報智慧體演示完整的工作流程。我們從生產跟蹤中捕獲故障,構建版本化資料集,執行評估,修復智慧體,並針對相同的鎖定輸入確認改進。

為什麼資料集很重要

智慧體本質上是非確定性的。相同的輸入在不同執行中可能產生不同輸出,這使得單個評估結果幾乎毫無意義。您無法判斷得分變化是因為智慧體改變了還是因為模型取樣不同。只有在穩定輸入上進行一致測量,才能知道更改是否真正有效。

但僅靠穩定輸入是不夠的。大型語言模型(LLM)評判器可以判斷回覆是否聽起來有幫助,但它無法判斷股票價格是否準確、經紀人工作流是否按正確順序執行、或者會話之間是否洩露了個人身份資訊(PII)。對於這些檢查,您需要真實情況:預期響應、所需工具序列以及無論回覆如何措辭都必須成立的斷言。真實情況將主觀分數轉變為可驗證的測量。沒有它,您測量的是正確性的表象,而非正確性本身。

版本化資料集同時提供這兩者。它們固定輸入以便分數跨執行可比,並攜帶使分數有意義的真實情況。這在智慧體評估實際發生的兩個地方最為重要。

內迴圈是開發者桌面。您呼叫智慧體、讀取分數、調整工具描述、再次呼叫。週期只有幾分鐘。在這個階段,問題不在於執行評估,而在於測試用例往往是附近已有的內容:某人上週寫的問題或偶然儲存的會話。當分數提高時,您希望相信修復有效。但如果沒有下面的穩定輸入,您無法知道智慧體是變好了還是問題變容易了。

外迴圈是CI/CD管道。在更改上線前,需要有人確認它沒有破壞任何東西。大多數團隊都有這個門控。但他們往往缺少的是帶有明確斷言的穩定、版本化輸入集。這意味著門控測試的是某人最後指向的內容,沒有真實情況可對照。一個因為問題改變而透過構建的管道不是在捕捉迴歸,而是在遺漏迴歸。

版本化資料集彌補了這一差距。開發者在內迴圈中將故障整理到草案中。在外迴圈中,該草案的已釋出版本成為門控。它是不可變的,真實情況完好無損,並且測試與上個迭代及更早迭代相同的場景。告知開發者修復有效的相同分數,也是管道用於決定是否上線的分數。

兩種型別的測試場景

Amazon Bedrock AgentCore中的資料集支援兩種模式型別,分別為這兩個迴圈服務。

預定義場景是向後看的。您已定義了使用者將傳送給智慧體的確切查詢,並且知道正確結果的樣子:預期響應、工具序列和必須成立的斷言。將其寫下來,評估器檢查智慧體是否滿足。一旦故障被形式化為預定義場景,它就會保留在未來的每次評估執行中。它們屬於外迴圈門控,因為透過和失敗標準是明確、可重複且不依賴於對話過程的。

使用者模擬場景是向前看的。您不是編寫對話輪次,而是描述一個角色:參與者是誰、他們想要實現什麼以及如何溝通。LLM驅動的角色與您的智慧體進行真實的多輪對話,直到目標達成或達到輪次限制。您不編寫角色的發言內容。覆蓋範圍從互動中自然產生。更多資訊,請參閱AgentCore使用者指南中的使用者模擬。

這與標準評估工具包中的任何內容都不同。預定義場景測試您的智慧體是否正確處理特定輸入。模擬場景測試您的智慧體是否能夠滿足某類使用者的需求,無論該使用者採取何種路徑。

在本文中,我們以市場趨勢智慧體為例。該智慧體為金融機構的投資經紀人服務。經紀人向智慧體傳送類似“我是來自摩根士丹利的Sarah Chen,專注於科技和清潔能源——今天NVDA有什麼情況?”的訊息。智慧體識別經紀人,在AgentCore Memory中儲存其偏好,檢索當前NVIDIA股票價格,並搜尋Bloomberg和Reuters的相關新聞。然後提供個性化簡報,將資料與Sarah的投資重點聯絡起來。當Sarah第二天回來時,智慧體會記住她的檔案並相應調整響應。

對於預定義場景,您可能有使用者與智慧體互動的生產跟蹤,您可以將其整理到評估資料集中。市場趨勢智慧體的示例如下:

PreDefinedScenario{ "scenario_id": "broker_profile_onboarding", "turns": [ { "input": ( "嗨,我是來自摩根士丹利的Sarah Chen。" "我專注於科技和清潔能源。" "風險承受能力:中高。" "客戶群:機構和高淨值。" ) } ], "expected_trajectory": {"toolNames": ["identify_broker", "update_broker_financial_interests"]}, "assertions": [ "智慧體按姓名和公司識別經紀人。", "智慧體儲存經紀人的行業偏好和風險承受能力。", "智慧體確認收到檔案並提供幫助。" ], "metadata": {"category": "onboarding", "priority": "high"}, }

模擬的高階科技分析師可能會以關於NVIDIA Corporation普通股的廣泛問題開始。當回覆顯得單薄時她會追問,要求與AMD比較,並且只有在獲得可供客戶電話引用的內容時才完成。沒有人編寫這些輪次。角色從檔案中生成了它們。您可以定義如下場景:

SimulatedScenario( scenario_id="sim-tech-analyst-nvda-amd-deep-dive", scenario_description=( "一位高階科技研究分析師在客戶電話前深入比較NVDA和AMD。" ), actor_profile=ActorProfile( traits={ "expertise": "高階", "focus": "半導體", "style": "懷疑且資料驅動" }, context=( "為高價值客戶電話準備要點的賣方高階科技分析師。期待多層次分析,而非表面摘要,並在答案顯得通用或單薄時追問。" ), goal=( "透過詢問NVIDIA、要求更豐富細節、請求與AMD的結構化比較,只有在獲得可供客戶對話引用的要點時才結束,從而壓力測試智慧體的半導體領域深度。" ) ), input=( "我正在準備客戶電話,需要關於NVIDIA的快速但紮實的簡報。從NVDA的近期表現和半導體定位開始。" ), max_turns=8, assertions=[ "智慧體提供初始NVDA摘要,包括近期表現和定位", "智慧體針對NVDA回應更深入的基本面、產品/路線圖或護城河細節", "智慧體產生結構化的NVDA vs AMD比較(例如估值、增長、細分市場)", "智慧體包含適合客戶電話的特定、可引用資料點或指標" ] )

使用者模擬在內迴圈中特別有用,當您不確定尚未發現的故障模式時。出現的故障成為下一個資料集版本中預定義場景的候選,直接反饋到外迴圈門控。

關於模擬底層工作原理,有幾點值得了解。角色執行在您在SimulationConfig中指定的Bedrock模型上。在每個輪次,角色接收智慧體的響應併產生三件事:關於目標是否達成的內部推理、要傳送的下一條訊息以及停止訊號。對話在角色指示完成、達到max_turns或角色未產生下一條訊息時結束。由於對話路徑是動態的,模擬場景不支援expected_trajectory或逐輪expected_response。改用斷言作為真實情況,並描述無論對話如何到達那裡您期望的結果。

對於市場趨勢智慧體,預定義場景覆蓋已經給經紀人帶來損失的股價漂移錯誤。模擬場景覆蓋尚未出現故障但代表智慧體需要妥善處理的真實使用者型別的ESG專家。

AgentCore中資料集的工作方式

資料集作為具有ARN、IAM授權和標籤的一級資源內建於AgentCore中。無需配置Amazon S3儲存桶或外部服務。

草案和釋出。每個資料集都有一個可變草案,您可以在其中自由新增和刪除場景。當您想要穩定檢查點時,釋出它。草案變為不可變的編號版本。將評估執行固定到版本3,它將使用版本3中的確切場景,無論您此後在草案中新增了什麼。

寫入時模式驗證。建立資料集時宣告模式型別,每個場景在接收前都根據該模式進行驗證。格式錯誤的示例在攝取時被拒絕,而不是在30分鐘評估執行中途作為錯誤出現。

一個資料集,多個執行器。使用DatasetManagementServiceProvider載入資料集,並將其傳遞給按需執行器以獲得每個場景的快速反饋,或傳遞給批處理執行器以獲得跨多個會話的聚合評分。無論您是在桌面迭代還是門控部署,相同的場景、斷言和資料集ID均適用。

智慧體:市場趨勢助手

我們使用市場趨勢智慧體,一個部署在AgentCore Runtime上的LangGraph應用程式,作為執行示例。完整原始碼在AgentCore示例儲存庫的02-use-cases/market-trends-agent目錄下。該智慧體具有以下工具,幫助其處理金融經紀人的查詢:

工具 功能

get_stock_data 獲取股票程式碼的當前價格、日變化、成交量。 search_news 多源金融新聞搜尋(Bloomberg、Reuters、CNBC、WSJ、FT)。 identify_broker 從訊息中提取經紀人身份以進行記憶體查詢。 get_broker_financial_profile 讀取儲存的偏好、風險承受能力、行業焦點。 update_broker_financial_interests 將新偏好寫入長期記憶。

三種故障模式經常出現,值得永久測試用例:

陳舊價格——智慧體引用一個與即時值漂移超過2%的數字,通常是因為重新使用了快取的工具響應而不是進行新呼叫。

跳躍身份檢查——智慧體在未先呼叫identify_broker的情況下直接跳至get_broker_financial_profile,這可能導致提取錯誤的經紀人偏好。

[為控制AI成本截斷]

展開要點與分析

文章情報

工程師進階

要點

  • AgentCore中的版本化資料集提供穩定且不可變的測試場景,確保跨執行的智慧體評估一致性。
  • 預定義場景捕獲精確的預期輸入、工具序列和斷言,用於可驗證的真實情況。
  • 使用者模擬場景使用LLM驅動的角色測試智慧體在動態對話中的行為。
  • 資料集支援內迴圈迭代和外迴圈CI/CD門控,使用相同的版本化場景。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。