A/B テスト
A/B テストでは、ライブプロダクショントラフィックを 2 つのバリアントに分割し、統計的に有意なパフォーマンスを継続的に評価します。AgentCore Gateway はトラフィックルーティングを処理します。エージェントコードは変更されません。
A/B テストは、AgentCore 最適化改善ループの検証ステップです。レコメンデーションを生成し、オフラインバッチ評価で検証した後、A/B テストを実行して、変更が完全なロールアウトにコミットする前にライブトラフィックのパフォーマンスを向上させることを確認します。トラフィックを別々の AgentCore ランタイム (ターゲットベース) にルーティングしたり、異なる設定を同じ AgentCore ランタイム (設定バンドル) に配信したりできます。
A/B テストを使用するタイミング
以下の必要がある場合は、A/B テストを使用します。
-
すべての本番トラフィックを最適化された設定にルーティングする前に、レコメンデーションを検証します。
-
ライブトラフィックの 2 つのモデルバージョン (ある基盤モデルから別の基盤モデルへの移行など) を統計的に厳密に比較します。
-
厳選されたテストセットではなく、実際のユーザーセッション全体でプロンプト変更の影響を測定します。
-
完全なデプロイ前にライブトラフィックのサブセットで検証することで、新しい機能 (新しいツール、更新されたシステムプロンプト) を段階的にロールアウトします。
仕組み
A/B テストは次のフローに従います。
-
で A/B テストを開始し
agentcore run ab-test、すでにデプロイされている AgentCore Gateway、2 つのバリアント (制御と処理)、トラフィックの重み、スコアリング用のオンライン評価設定 (複数可) を指定します。(実行ロールはオプションです。 を渡--role-arnして独自のものを取り込むか、CLI に作成させます。) 各バリアントは、AgentCore Gateway ターゲットまたは設定バンドルバージョンを参照します。コマンドが戻るとすぐに、テストは RUNNING を開始します (停止して開始--disable-on-createするには を使用します)。 -
AgentCore Gateway はトラフィックを分割します。テストが実行されると、ゲートウェイはランタイムセッション ID に基づいて受信トラフィックを 2 つのバリアントに分割します。割り当てはスティッキーです。特定のセッション ID は常に同じバリアントにルーティングされます。
-
オンライン評価では、セッションごとにスコアが付けられます。指定したオンライン評価設定は、各セッションの完了時に評価者を実行します。A/B テスト集約パイプラインは、スコアをバリアントにマッピングします。
-
サービスは統計的有意性を計算します。サンプルサイズが大きくなると、サービスは各バリアントの評価者ごとのメトリクスを計算します。平均スコア、絶対変化率とパーセント変化率、p 値、信頼区間、有意性フラグです。0.05 未満の p 値は、差が統計的に有意であることを示します。統計的な有効性に影響を与えずに
agentcore view ab-test <id>、いつでも で結果をポーリングします。 -
処理バリアントを昇格させます。結果が大きい場合は、
agentcore promote ab-test -i <id>を実行してテストを停止しagentcore.json、処理バリアントを に書き込んでからagentcore deploy、ロールアウトします。(昇格しagentcore stop ab-test -i <id>なくてもかまいません)。
A/B テストパターン
A/B テストは 2 つのバリアント設定パターンをサポートします。
ターゲットベースのバリアント
変更にコード変更、フレームワークのアップグレードが含まれる場合、またはまったく異なるエージェントの実装を比較する場合に使用します。各バリアントは、異なるランタイムエンドポイントを指す異なる AgentCore Gateway ターゲットにルーティングされます。
設定バンドルバリアント
変更が純粋な設定 (システムプロンプト、モデル ID、またはツールの説明) である場合に使用します。両方のバリアントは、異なる設定バンドルバージョンを持つ同じ AgentCore ランタイムで実行されます。AgentCore Gateway は、W3C バゲージヘッダーを介して各リクエストにバンドルリファレンスを挿入します。これは、ランタイムが AgentCore SDK を使用して設定をプルするために使用できます。
パターンの選択
| 側面 | ターゲットベースのバリアント | 設定バンドルバリアント |
|---|---|---|
|
異なるもの |
ランタイムエンドポイント全体 (コード、フレームワーク、モデル) |
システムプロンプト、ツールの説明、モデルパラメータ |
|
ルーティング |
バリアントごとに異なるターゲット |
同じターゲット、異なる設定バンドル |
|
評価設定 |
AgentCore ランタイムごとに 1 つのオンライン評価設定 |
単一の共有オンライン評価設定 |
|
どのようなときに使うか |
コード変更、フレームワークのアップグレード、異なるエージェントの比較 |
単一の AgentCore ランタイムの設定のみの変更 |