
- AWSがAgentCore上のエージェントをCIで自動評価し、品質劣化時にPRを止める構成を公開
- AgentCore Evaluationsはオンデマンド・オンライン・バッチの3モードで採点する
- OAuth保護MCPへのCI認証は、保存トレース・サービスアカウント・M2Mの3方式
何が公開されたのか
AWSは、Amazon Bedrock AgentCore上にデプロイしたAIエージェントの品質を、CI/CDパイプラインで自動評価する構成をブログで公開しました。GitHub ActionsのワークフローがエージェントとMCPサーバーを開発環境にデプロイし、評価用のプロンプトで呼び出し、AgentCore Evaluate APIで採点します。スコアが基準を下回った場合、プルリクエスト(PR)のマージをブロックする「品質ゲート」として機能します。
背景にあるのは、システムプロンプトの変更、モデルの差し替え、ツール設定の更新などによって、エージェントの応答品質が良くなったのか悪くなったのかを継続的に把握したいというニーズです。手動テストでは規模的に対応できないため、CIの中で自動的に評価する仕組みが求められていました。記事では参照実装のリポジトリも案内されています。
評価機能の位置づけ
AgentCore Evaluationsは、エージェントの実行基盤であるAgentCore runtime、トレースを収集するAgentCore Observabilityと並ぶ品質測定レイヤーで、build→deploy→observe→evaluateというライフサイクルを完成させるものと説明されています。既定ではLLMを審判に使う「LLM-as-a-judge」方式で採点し、AWS Lambdaによるコードベース評価も選べます。評価はAmazon CloudWatchから読み取ったOpenTelemetryトレースに対して行われます。
評価モードは3つあります。オンデマンド評価は任意のセッションをその場で採点し、CI/CDの品質ゲートを支えます。オンライン評価は本番トラフィックを設定したサンプリング率で継続監視し、バッチ評価は複数セッションを1つの非同期ジョブでまとめて採点して、ベースライン測定や変更前後の比較に使います。
評価器は4種類です。組み込み評価器はHelpfulness、Correctness、GoalSuccessRate、ToolSelectionAccuracy、ToolParameterAccuracyなどの観点をカバーし、ツール呼び出しの順序を比較する3つのtrajectory評価器も含まれます。ほかに独自プロンプトを使うカスタム評価器、Lambdaで決定的なチェックを行うコードベース評価器、DeepEvalやAutoEvalといったサードパーティ製評価器があります。
CI認証の3つの方式
MCPサーバーがOAuthで保護され、ユーザーのロールに応じてツールアクセスを制限している場合、ユーザーコンテキストを持たないCIパイプラインは対話的なOAuth同意フローを完了できません。記事はこの課題に対する3つのアプローチを比較しています。
方式Aは、ステージングでエージェントを代表的なプロンプトで実行して得たトレースをJSONフィクスチャとして保存し、PR時にそのトレースを評価する方法です。Evaluate APIはライブのエージェントを必要としないため、CIは決定的になり、OAuthの問題を回避できます。ただし評価対象はPRのコード変更ではなく、ステージングのデプロイの挙動になります。
方式Bは、テスト用ユーザーでOAuth同意を一度だけ対話的に済ませ、リフレッシュトークンをAWS Secrets Managerに保管してCIから使う方法です。方式CはM2M認証を使う方法で、本記事が採用しています。MCPサーバーがM2Mとユーザー向けの両方のグラントタイプに対応し、CIはM2Mトークン、通常のユーザーは標準の同意フローを使います。
3層の認証と前提条件
方式Cでは、MCPサーバー側で3層の認証を組み合わせます。第1層はAgentCoreのCustom JWT AuthorizerによるJWT検証で、署名・発行者・オーディエンス・有効期限をプラットフォームが確認するため実装は不要です。第2層は request_header_allowlist=["Authorization"] により、呼び出し元のAuthorizationヘッダーをエージェントとMCPのコンテナまでそのまま転送する仕組みです。
第3層はFastMCPのネイティブミドルウェアであるAuthMiddlewareで、HTTPヘッダーからJWTを取り出し、PyJWTでクレームをデコードして custom:roles をツールのメタ情報に対して強制します。M2Mトークンはスコープを持つがロールを持たないためロールチェックがバイパスされ全ツールにアクセスでき、ユーザートークンにはツール単位のアクセス制御が働く設計です。
前提として、AgentCoreにアクセスできるAWSアカウントとCDKのbootstrap、Docker、Python 3.12以上、Node.js 20以上が必要です。Pythonパッケージは pip install boto3 requests bedrock-agentcore-starter-toolkit で導入し、このスターターツールキットのEvaluationクラスがCloudWatchからのトレース収集と採点を自動処理するとされています。
現時点で不明な点
記事で具体的に説明されているのはGitHub Actionsを前提とした構成です。長期クレデンシャルを保存せずOIDCフェデレーションでIAMロールを引き受ける点が要点ですが、GitHub Actions以外のCIツールでの手順は示されていません。
また、料金やリージョン展開に関する記載はありません。参照実装リポジトリの全体像についても、確認できる範囲ではCDKスタックの説明が途中までとなっており、細部はリポジトリ側で確認する必要があります。
評価スコアのしきい値については、1.0のうち0.8といった例が挙げられているものの、一律の推奨値は示されていません。記事は、まず方式Aで品質ゲートを動かし、その後方式Cに進んでPRのコード変更を実際に検証する流れを勧めています。
| 方式 | 仕組み | トレードオフ |
|---|---|---|
| A: 保存済みトレースの評価 | ステージングで取得したトレースをJSONフィクスチャとして保存し、PR時に評価。ライブ呼び出しは不要 | 評価対象がPRのコード変更ではなく、ステージングデプロイの挙動になる |
| B: 事前同意済みサービスアカウント | テストユーザーでOAuth同意を一度実施し、リフレッシュトークンをAWS Secrets Managerに保管してCIが使用 | リフレッシュトークンが失効するため、ローテーションか定期的な再同意が必要 |
| C: M2M認証(本記事の方式) | MCPサーバーがM2Mとユーザー向けの両グラントタイプに対応。CIはM2Mトークンで認証する | M2Mトークンは設計上ロールチェックをバイパスする。ロール強制をCIで検証したい場合はBを使う |
The MCP server middleware distinguishes between token types: M2M tokens contain scopes but no roles, so role checks are bypassed, and all tools are accessible.
MCPサーバーのミドルウェアはトークンの種類を区別します。M2Mトークンはスコープを含みますがロールを含まないため、ロールチェックがバイパスされ、すべてのツールにアクセスできます。
今後の見通し
この記事は新機能の発表ではなく、AgentCore runtime・AgentCore Evaluations・MCP・GitHub Actionsを組み合わせた実装ガイドと位置づけられます。今後、CDKスタックの詳細や各方式の判断基準が参照実装リポジトリでどの程度補完されるかが分かると、実際に導入できるかの判断がしやすくなるとみられます。評価スコアのしきい値は、バッチ評価でベースラインを測ってから決めるのが現実的です。日本の開発者にとっては、AgentCore Evaluationsの料金と利用可能リージョン、GitHub Actions以外のCIへの応用可否が明らかになれば、導入判断の材料がそろうでしょう。
日本の開発者・IT企業にとっての意味
エージェント開発では、システムプロンプトやモデルのわずかな変更が応答品質を大きく変え得るため、レビュー時の目視確認だけでは品質を保ちにくいという課題があります。この構成は、エージェントの評価をテストと同じようにCIの一部として扱う考え方を示しており、PRの時点で品質劣化を検知してマージを止められます。日本のIT企業が社内基盤や受託開発でエージェントを運用する場合も、評価データセットとしきい値を用意してパイプラインに組み込む進め方が参考になります。特に、OAuthとロールベースアクセス制御でツールを保護している現場では、CIがユーザーコンテキストを持たないという認証の壁が現実的な障害になるため、3方式の比較とM2Mトークンを使う設計は実装の出発点になるでしょう。
気になる点
- 日本からでも利用できますか。費用はどのくらいですか。
- AgentCoreはAWSのマネージドサービスなので、利用可否はリージョンの提供状況に依存しますが、この記事には対応リージョンの記載はありません。前提としてAgentCoreにアクセスできるAWSアカウント、CDKのbootstrap、Docker、Python 3.12以上、Node.js 20以上が必要です。料金についても原文に記載がないため、現時点では不明です。
- GitHub Actions以外のCIでも同じ構成は組めますか。
- 原文が手順を示しているのはGitHub Actionsのワークフローです。要点は、OIDCフェデレーションでAWS IAMロールを引き受け、長期クレデンシャルを保存しないことにあるため、OIDC連携ができるCIであれば考え方は応用できるとみられます。ただし他CI向けの具体的な手順や検証結果は原文に示されていません。
- M2Mトークンがロールチェックを回避するのはセキュリティ上問題ないのですか。
- 記事は、M2Mトークンの取得にはクライアントシークレットが必要でエンドユーザーには公開されず、CIパイプラインとエージェントランタイムだけが取得できるため安全だと説明しています。一方、M2Mトークンは設計上ロールチェックをバイパスするため、CIでロール強制そのものを検証したい場合は方式Bを使うよう案内しています。
用語解説
- AgentCore runtime
- AIエージェント向けのマネージド実行基盤。コードをデプロイするとスケーリングやセッション分離を任せられる。記事では「エージェント版Lambda」と例えられる。
- LLM-as-a-judge
- 評価用のLLMにエージェントの応答を採点させる手法。AgentCore Evaluationsでは既定でこの方式が使われ、有用性や正確性などの観点でスコアが付く。
- MCP
- Model Context Protocol。エージェントが外部ツールを標準的なインターフェースで呼び出すためのオープンなプロトコル。
- OIDCフェデレーション
- GitHub Actionsが長期クレデンシャルを保存せずにAWS IAMロールを引き受ける仕組み。短命トークンを発行・検証して一時的な認証情報を得る。
- 品質ゲート
- CI/CDで、特定ステップがしきい値を満たさない限りビルドを進めない仕組み。記事では評価スコアが基準(例: 1.0中0.8)を下回るとPRがブロックされる。
出典
Automated agent evaluation with Amazon Bedrock AgentCore and GitHub Actions
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する