ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

【Bedrock AgentCore】EvaluationでAI Agentの評価を行う

この記事を共有する

目次

はじめに

皆さんこんにちは!パーソル&サーバーワークスの小泉です。
今回は Amazon Bedrock AgentCore(以下AgentCore) の Evaluation 機能を使って、AIエージェントの応答品質を定量的に測定してみました。

なぜこれをやったのか

AIエージェントを作ったあと、「ちゃんと動いてるっぽい」で終わっていたり、また人間が数回試して「良さそう」と判断するのは主観的で、再現性がないと感じたからです。

具体的には以下の課題を感じることがありました。

  • プロンプトを変えたとき、品質が上がったのか下がったのか分からない
  • 本番で品質が劣化しても気づけない
  • 「良い応答」の基準が人によって違う

しかしAgentCoreのEvaluation機能を使えば、エージェントの品質をスコアとして定量化できます。

AgentCore Evaluation とは

エージェントのトレースデータ(実際の入出力)を元に、LLM-as-a-Judge方式で品質を自動評価する機能です。
本記事では、On-demand評価とOnline評価について記載します。

モード説明
On-demand evaluation指定したセッション/トレースをその場で評価
Batch evaluation蓄積された全セッションに対して一括評価
Online evaluation本番トラフィックを自動サンプリング評価
Dataset evaluation(プレビュー機能 2026/07/31時点)事前定義したデータセットで評価
Simulation仮想ユーザーでエージェントを自動テスト

参考

代表的な評価軸について紹介します。

評価器レベル何を評価するか
Builtin.HelpfulnessTRACE応答がユーザーにとって有用か
Builtin.CorrectnessTRACE情報が正確か
Builtin.GoalSuccessRateSESSIONユーザーのゴールを達成できたか

注意点としてはレベルによって評価対象が異なります:

  • TRACE レベル: 1回のモデル呼び出し(1つの応答)を評価する。Helpfulness や Correctness はこのレベル。同一セッション内に複数のトレースがあれば、それぞれ個別に評価される
  • SESSION レベル: セッション全体(1つの会話のやり取り全体)を評価する。GoalSuccessRate はこのレベル。会話全体を通じてユーザーのゴールが達成されたかを判定する

この違いは重要で、どの評価が何を判定しているかを事前に理解した上で評価軸を決める必要があります。

今回使うAgentCoreの機能

機能役割
Runtimeエージェントのホスティング基盤
Observabilityトレースデータの収集(Evaluationの前提)
Evaluations品質の自動評価

前提条件

Evaluationを実行するには以下が必要です:

  1. エージェントがデプロイ済み
  2. Observability(OTel)が有効
  3. 少なくとも1回以上invokeしてトレースデータが蓄積されていること
  4. トレースがCloudWatchに反映されるまで待ち時間が必要

手順

1. On-demand Evaluation の実行

エージェントを何度か呼び出した後、以下のコマンドで評価を実行します。

agentcore run eval \
  --runtime runtime01 \
  --evaluator Builtin.Helpfulness \
  --evaluator Builtin.Correctness \
  --evaluator Builtin.GoalSuccessRate

結果:

Agent: runtime01 | Jul 11, 2026, 01:37 AM | Sessions: 4 | Lookback: 7d
  Builtin.Helpfulness: 0.96
  Builtin.Correctness: 0.88
  Builtin.GoalSuccessRate: 0.75

4セッション分のトレースが評価され、各指標のスコアが出ました。

2. 評価の詳細を確認する

結果はJSONファイルとして保存されます。   各セッションごとのスコアと、なぜそのスコアになったかの説明が含まれています。

例えば Helpfulness で 0.83 だったセッションの説明:

The assistant presented the quiz question clearly but withheld the answer to make it an actual quiz experience rather than just showing Q&A.

「クイズの答えを隠してユーザーに考えさせた」ことが減点理由でした。   エージェントとしては良い判断に見えますが、「ゴール達成」の観点からは情報を全て提示したほうが評価が高くなります。

このように、なぜスコアが低いのかが自然言語で説明されるので、改善のヒントが得られます。

3. 特定のセッションだけ評価する

問題のあるセッションを狙い撃ちで評価することもできます。

agentcore run eval \
  --runtime runtime01 \
  --evaluator Builtin.Helpfulness \
  --session-id "3e5b9374-7392-43d9-8910-44f12ad4dfdf"

4. Online Evaluation の設定(継続的モニタリング)

本番トラフィックを自動的にサンプリングして評価し続ける設定です。

agentcore add online-eval \
  --name "qualityMonitor" \
  --runtime runtime01 \
  --evaluator Builtin.Helpfulness Builtin.GoalSuccessRate \
  --sampling-rate 100 \
  --enable-on-create

デプロイ後、エージェントを呼び出すと自動的に評価が実行されます。

結果はAgentCoreのEvaluationsタブで確認できます。

09_eval_results.png

所感

実際にAgentの評価を可視化することで、このAgentは何ができていて何ができていないのかを知るにはとても良い機能だと思いました、次の記事では可視化ができたので、この評価を基にどのように改善していくのかを書こうと思います。

この記事は私が書きました

小泉 和貴

記事一覧

全国を旅行することを目標に、仕事を頑張っています。

小泉 和貴

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。