はじめに
AWS BedrockのAgentCore Evaluationsを使ってエージェントの評価を試していたところ、ログが出ない・評価結果が表示されないというハマりポイントに遭遇しました。
原因はシンプルなのですが、意外と気づきにくかったので同じ問題で詰まっている方の参考になればと思い記事にしました。
何が起こったのか
やっていたこと
AgentCore Evaluationsを使ってエージェントの評価を試していました。
ですが、設定後エージェントの動作を確認してもログは生えず、評価結果も出てこない...
なぜだ...
エージェントと評価機能は結びついているはずなのに...
これは困るので、ドキュメント等みながら色々試してみました。
解決策
AgentCore Evaluations設定時のサンプリングレートを調整すると反映されるようになりました。
ここはデフォルトでは10%になっており、試しに100%にすると結果が出力されることが確認できます。
結果の反映まで20数分かかる場合があるので、ここは根気よく待ちましょう。
反映されるとロググループ、オブザーバビリティのUIにも評価結果が出てきます。
評価ログは以下のようになります。項目ごとに出ていますが、一個だけとりあえずのせておきます。
"onlineEvaluationConfigId": "evaluation_quick_start_1773245824469-Ay6Sz6Emi6",
"service.name": "chat_agent_main.DEFAULT",
"label": "Yes",
"_aws": {
"Timestamp": 1773245991365,
"CloudWatchMetrics": [
{
"Namespace": "Bedrock-AgentCore/Evaluations",
"Dimensions": [
[
"service.name"
],
[
"label",
"service.name"
],
[
"service.name",
"onlineEvaluationConfigId"
],
[
"label",
"service.name",
"onlineEvaluationConfigId"
]
],
"Metrics": [
{
"Name": "Builtin.GoalSuccessRate",
"Unit": "None"
}
]
}
]
},
"Builtin.GoalSuccessRate": 1
サンプリングレートとは
では今回いじったサンプリングレートとはなんだったのか少し整理しておきます。
サンプリングレートとは、エージェントへのリクエストのうち何%を評価対象にするかを決める設定です。
たとえばサンプリングレートが 10% の場合、エージェントが10回呼ばれたとしても、実際に評価・ログ記録されるのは平均1回分のみになります。
| サンプリングレート | 挙動 |
|---|---|
| 10%(デフォルト) | リクエストの10%のみ評価される |
| 100% | すべてのリクエストが評価される |
なぜデフォルトが10%なのか
本番環境では大量のリクエストが来ることを想定しており、すべてのリクエストを評価するとCloudWatchへのログ書き込みコストや評価処理の負荷が増大します。そのため、コストと観測カバレッジのバランスをとるためにデフォルトが10%に設定されています。
開発・検証時は100%推奨
今回のように動作確認や検証を行うフェーズでは、サンプリングレートを 100% に設定することで確実に評価結果を確認できます。本番リリース後はコストを考慮して適切な値(例: 10〜30%)に下げると良いでしょう。
さいごに
AgentCore Evaluationsでログが出なかった原因は、サンプリングレートのデフォルト値(10%) によるものでした。
少ないリクエスト数で試している場合、10%では評価がまったく記録されないことも十分ありえます。最初は100%に設定して動作を確認し、そこから徐々に調整していくのがスムーズです。
同じ症状で悩んでいる方の参考になれば幸いです!




