Automated agent evaluation with Amazon Bedrock AgentCore and GitHub Actions
核心重點
Amazon Bedrock AgentCore 搭配 GitHub Actions,打造一條完整的 CI/CD 品質閘道。當 AI 代理(agent)在 AgentCore 執行階段 上部署後,系統會自動以評估提示(evaluation prompts)呼叫 AgentCore Evaluate API,若回應分數下降,則在 Pull Request(PR)階段即阻斷合併,防止性能退化流入正式環境。
背景與挑戰
在沒有自動化測試的情況下,代理的品質往往依賴開發者主觀判斷。只要系統提示(system prompt)微調、模型更換或工具設定變更,代理的回覆品質可能瞬間下降,而使用者只有在投訴時才發現問題。另一方面,MCP 伺服器(提供工具呼叫)採用 OAuth 並實施角色式存取控制(role‑based access control),而 CI 流程本身缺乏使用者上下文,難以在無人值守的情況下取得有效的授權憑證。
解決方案概述
文章示範的 GitHub Actions 工作流程,將以下要素串聯成一條自動化管線:
-
CDK(Cloud Development Kit)基礎建設即程式碼:以 IaC(Infrastructure as Code)方式部署 AgentCore、Cognito 使用者池(同時支援機器對機器 M2M 與使用者授權流),以及 MCP 伺服器的角色權限設定。
-
部署代理至 AgentCore 執行階段:在開發環境自動上線最新的代理程式碼。
-
統一評估腳本:利用 AgentCore Evaluate API,以一組具代表性的提示字串測試代理,並以 LLM‑as‑a‑judge(大型語言模型作為評分者)自動打分。
-
品質閘道:若評分低於事先設定的門檻,GitHub Actions 會將 PR 標記為失敗,阻止合併。
實作細節
- Cognito 池:同時提供 M2M Token(機器間)與使用者授權 Token,確保 CI 任務能以機器身分安全取得 OAuth 存取權杖,並在代理呼叫 MCP 時正確傳遞角色資訊。
- AgentCore Evaluate API:內建 LLM‑as‑a‑judge,開發者亦可自行編寫程式碼(code‑based)作為評分標準,彈性高。
- GitHub Actions:工作流分為
build,deploy,evaluate三個階段,使用aws-actions/configure-aws-credentials設定 IAM 權限,並在evaluate步驟中解析 API 回傳的分數,與設定的基線比較。
未來展望與啟示
自動化評估不僅能即時捕捉代理品質退化,還可作為持續改進的指標,促進CI → CD → 觀測 → 評估的完整迴路。未來可進一步結合 Bedrock Observability(觀測)功能,將呼叫追蹤與評分結果串流至 CloudWatch,實現全方位的性能監控與警報。對於想在生產環境快速迭代 AI 代理的團隊而言,建立此類品質閘道已成為最佳實踐。