【AWS】AgentCore Optimization Preview を解説:AIエージェント改善が「勘」から「品質改善ループ」になる
はじめに
2026年5月4日、AWSから Amazon Bedrock AgentCore の新機能として AgentCore Optimization が Preview 公開されました。
元記事はこちらです。
- Introducing agent quality optimization in AgentCore, now in preview
ざっくり言うと、これは AIエージェントの品質改善を継続的に回すための仕組み です。
AIエージェントは、最初に動いたときは良くても、時間が経つと少しずつ品質が落ちることがあります。
例えば、
- モデルを変更した
- ユーザーの質問傾向が変わった
- プロンプトを別の用途に使い回した
- ツールが増えて、ツール選択を間違えるようになった
- 一部の会話パターンだけ失敗するようになった
といった感じです。
これまでは、こうした問題が起きると、
- ユーザーから不満が来る
- 開発者がトレースを読む
- なんとなく原因を推測する
- プロンプトを修正する
- 数件だけ試して本番反映する
という流れになりがちでした。
ただ、このやり方だと 修正したつもりが別のケースで壊れる ことがあります。
AgentCore Optimization は、この改善作業をもう少しちゃんと仕組み化するための機能です。
結論
AgentCore Optimization は、以下のようなループを回すための機能です。
一言でまとめると、
本番トレースをもとに改善案を作り、オフライン評価とA/Bテストで確認してから反映する
という仕組みです。
個人的には、これは単なる「プロンプト改善機能」というより、AIエージェント版の継続的品質改善基盤 と見るのがよさそうです。
AgentCore Optimization でできること
主に以下の機能が追加されています。
| 機能 | 役割 |
|---|---|
| Recommendations | 本番トレースを分析して、プロンプトやツール説明の改善案を出す |
| Batch Evaluation | 既知のテストデータで改善案を評価する |
| A/B Testing | 本番トラフィックを分割して、新旧バージョンを比較する |
| Configuration Bundles | プロンプト、モデルID、ツール説明などの構成をバージョン管理する |
順番に見ていきます。
Recommendations:本番トレースから改善案を作る
Recommendations は、AgentCore のトレースや評価結果をもとに、エージェント設定の改善案を生成する機能です。
対象になるのは主に以下です。
- System Prompt
- Tool Description
例えば、エージェントがツール選択をよく間違えている場合、Recommendations はツールの説明文を改善する提案を出してくれます。
ここで重要なのは、ツールの実装自体を変更するわけではない という点です。
ツール説明の改善では、あくまでツールの description をより分かりやすくすることで、エージェントが正しいツールを選びやすくするイメージです。
例
例えば、以下のようなツールがあったとします。
search_news:
ニュースを検索する
これだと、株価ニュース、業界ニュース、企業ニュース、一般ニュースのどれに使えばよいか曖昧です。
改善後は、例えば以下のようになるかもしれません。
search_news:
指定された企業、業界、または市場テーマに関する最新ニュースを検索する。
株価、決算、セクター動向など、投資判断に関係するニュース調査に使用する。
かなり地味ですが、こういう説明の差でエージェントのツール選択精度は変わります。
特にツールが増えてくると、description の品質はかなり重要になりそうです。
Batch Evaluation:既知のケースで回帰テストする
Recommendations で改善案が出たとしても、そのまま本番反映するのは怖いです。
そこで使うのが Batch Evaluation です。
Batch Evaluation では、事前に用意したテストデータや会話シナリオに対してエージェントを実行し、改善前後のスコアを比較します。
例えば、
- ゴール達成率
- ツール選択精度
- 回答の有用性
- 安全性
- 独自の LLM-as-a-Judge 評価
などを使って確認できます。
イメージとしては、AIエージェントに対する 回帰テスト です。
ここで既知の重要ケースをちゃんとテストしておくと、
「あるユーザーには良くなったけど、別のユースケースでは壊れた」
という事故を減らせます。
A/B Testing:本番トラフィックで統計的に検証する
Batch Evaluation は大事ですが、テストデータだけでは実際のユーザー行動を完全には再現できません。
そこで最後に使うのが A/B Testing です。
AgentCore Gateway を使って、本番トラフィックを以下のように分割します。
A/Bテストでは、現在のバージョンを Control、改善版を Treatment として比較します。
評価結果には、平均スコアだけでなく、信頼区間や p-value なども含まれるため、
「なんとなく良さそう」ではなく、統計的に改善しているか を確認できます。
これはかなり実運用向きですね。
Configuration Bundles:構成をコードから分離する
AgentCore Optimization では、Configuration Bundles も重要です。
Configuration Bundle は、以下のようなエージェント設定をまとめた、バージョン付きのスナップショットです。
- System Prompt
- Model ID
- Tool Descriptions
- その他、実行時に読み込む設定値
ポイントは、エージェントの振る舞いをコードデプロイなしで変更できる ことです。
例えば、プロンプトだけを変えたい場合、アプリケーションコードを再デプロイするのではなく、Configuration Bundle のバージョンを切り替えることで対応できます。
プロンプトやツール説明の変更は Configuration Bundle で管理し、
コード変更を伴う場合は別の Runtime Endpoint を使う、という整理になりそうです。
具体的な改善ループのイメージ
例えば、社内FAQエージェントを運用しているとします。
最近、以下のような問題が出てきました。
- ユーザーの質問には回答しているが、微妙にズレている
- 検索ツールを使うべき場面で使っていない
- 逆に、不要な場面で検索ツールを呼び出している
- 重要な問い合わせでゴール達成率が下がっている
この場合、AgentCore Optimization では以下のように進められます。
1. トレースと評価結果を確認する
AgentCore Observability で、本番エージェントのトレースを収集します。
ここでは、モデル呼び出し、ツール呼び出し、推論ステップなどが確認できます。
2. Recommendations を実行する
評価指標を指定して、改善案を生成します。
例えば、ゴール達成率を改善したい場合は、その evaluator を reward signal として指定します。
agentcore run recommendation \
--type system-prompt \
--run improve-faq-agent \
--runtime FaqAgent \
--evaluator Builtin.GoalSuccessRate \
--inline "$(cat system_prompt.txt)" \
--lookback 7
上記はイメージです。
過去7日分のトレースを見て、Goal Success Rate を改善する方向で system prompt の改善案を出す、という流れです。
3. Configuration Bundle として保存する
改善案をそのまま使うのではなく、まずは新しい Bundle Version として保存します。
faq-agent-config
├── v1: 現行設定
└── v2: Recommendations による改善案
これにより、後から比較・ロールバックしやすくなります。
4. Batch Evaluation でテストする
社内FAQでよくある質問セットを使って、v1 と v2 を比較します。
ここで、既知の重要ケースが悪化していないかを確認します。
5. A/B Testing で本番検証する
Batch Evaluation を通過したら、本番トラフィックの一部だけを v2 に流します。
例えば、
- v1: 90%
- v2: 10%
のように始めて、結果が良ければ段階的に増やす、という運用ができます。
6. 勝ったバージョンを採用する
統計的に改善が確認できたら、v2 を新しいデフォルトにします。
その後、v2 の本番トレースがまた次の改善ループの材料になります。
これまでとの違い
従来の改善フローと比べると、かなり違いがあります。
| 観点 | 従来 | AgentCore Optimization |
|---|---|---|
| 原因調査 | 開発者が手動でトレースを見る | トレースと評価結果をもとに改善案を生成 |
| 改善方法 | 勘でプロンプト修正 | evaluator を指定して最適化 |
| テスト | 数件だけ手動確認 | Batch Evaluation でまとめて評価 |
| 本番反映 | いきなりデプロイしがち | A/B Testing で段階的に検証 |
| 判断基準 | 感覚・少数ケース | スコア、信頼区間、p-value |
| ロールバック | 実装や設定次第 | Bundle Version を戻せる |
特に大きいのは、改善判断が 人間の勘だけではなく、評価スコア中心になる ことです。
どんなチームに向いていそうか
個人的には、以下のようなチームに向いていると思います。
- すでに本番で AI エージェントを運用している
- ユーザー数が多く、全ログを人力で見切れない
- プロンプト改善のたびに品質劣化が怖い
- ツール呼び出しを含む複雑なエージェントを作っている
- LLM-as-a-Judge や評価基盤をちゃんと整備したい
- CI/CD の中でエージェント品質をチェックしたい
逆に、PoC段階でまだ本番トレースがほとんどない場合は、いきなり大きな効果を感じにくいかもしれません。
この機能は、ある程度トレースや評価データが蓄積されてから強くなるタイプだと思います。
注意点
Preview なので、いくつか注意点があります。
1. APIや仕様は変わる可能性がある
AgentCore Optimization は Public Preview です。
正式リリース前に、APIや仕様が変わる可能性があります。
本番導入する場合は、ドキュメントの更新を追った方がよさそうです。
2. Recommendations はそのまま採用しない
Recommendations は LLM によって生成されます。
そのため、出てきた改善案をそのまま本番反映するのではなく、必ずレビューと評価を挟む必要があります。
この機能は「自動で完璧に直す」ものではなく、
改善候補を作って、検証を高速化する機能 と考えるのがよさそうです。
3. CloudTrail 未対応の制約がある
Preview 時点では、AgentCore Optimization の API コールは CloudTrail に出ないとされています。
監査証跡が必須のワークロードでは、この点に注意が必要です。
4. 前提となる構成がある
AgentCore Runtime、Observability、Evaluations などを使っていることが前提になります。
また、トレースが CloudWatch Logs に入っている必要があります。
つまり、単体の便利ツールというより、AgentCore の運用基盤に乗っているエージェント向けの機能です。
まとめ
AgentCore Optimization は、AIエージェントの品質改善を継続的に回すための Preview 機能です。
ポイントは以下です。
- 本番トレースから Recommendations で改善案を作る
- Batch Evaluation で既知ケースの回帰を確認する
- A/B Testing で本番トラフィック上の改善を検証する
- Configuration Bundles でプロンプトやモデル設定をバージョン管理する
- 改善判断を「勘」から「評価スコアと統計」に寄せられる
AIエージェントは、作って終わりではなく、運用しながら品質を上げ続ける必要があります。
その意味で AgentCore Optimization は、エージェント開発における LLMOps / AgentOps 的な機能 としてかなり重要になりそうです。
特に、ツール呼び出しを多用する業務エージェントでは、今後かなり使われる機能になるかもしれません。
Preview 段階なのでまだ注意点はありますが、AgentCore で本番エージェントを運用している場合は、一度試してみる価値がありそうです。
参考
- AWS Blog: Introducing agent quality optimization in AgentCore, now in preview
- Amazon Bedrock AgentCore Developer Guide: AgentCore Optimization
- Amazon Bedrock AgentCore Developer Guide: Recommendations
- Amazon Bedrock AgentCore Developer Guide: Batch evaluation
- Amazon Bedrock AgentCore Developer Guide: A/B testing
- Amazon Bedrock AgentCore Developer Guide: Configuration bundles