新しいモデルに移行する

このドキュメントでは、既存の CX Agent Studio エージェント アプリケーションを別の基盤モデルに移行し、エージェントの品質を検証して、ライブの本番環境トラフィックを中断することなく、更新された構成を段階的にデプロイする方法について説明します。

移行ワークフローの概要

モデルの移行は、次の 4 つのステージで構成されます。

  1. 変更を分離する: 本番環境のエージェント アプリケーションの不変のバージョンを作成するか、アプリケーションをエクスポートして別のテスト環境にインポートします。
  2. モデル設定を更新する: コンソール、エクスポートされた構成ファイル、または REST API を使用して、グローバル モデルの変更、サブエージェントとツールモデルのオーバーライドの確認、再試行と代替の設定の確認を行います。
  3. パフォーマンスを評価して改良する: シミュレータで会話をテストし、AI で問題を見つけるを使用して評価を実行します。AI Co-Builder: Arc を使用して、品質指標が目標のしきい値を満たすまで指示をチューニングします。
  4. 段階的にデプロイする: 検証済みの構成をバージョンとして保存し、デプロイ チャンネルでトラフィック分割を使用して、結果をモニタリングしながらライブ トラフィックを段階的に移行します。

ステップ 1: 変更を分離する

モデルの設定を変更する前に、更新やテストがお客様との実際の会話に影響しないように、作業を分離します。変更を分離するには、同じエージェント アプリケーション内でバージョンを使用するか、アプリケーションを別のサンドボックス環境にエクスポートします。

同じエージェント アプリケーションでバージョンを使用する

デプロイ チャネルが特定の不変のバージョンを指している場合、ドラフト エージェント アプリケーションに加えた編集は、バージョンを作成してデプロイ チャネルに割り当てるまで、ライブ トラフィックに影響しません。

現在の構成のベースライン スナップショットを保存するには:

  1. CX Agent Studio コンソールを開き、エージェント アプリケーションを選択します。
  2. エージェント ビルダーで [バージョン] ペインを開きます。
  3. [+ バージョンを作成] をクリックします。
  4. わかりやすい名前(pre-model-migration-baseline など)と説明(省略可)を入力し、[作成] をクリックします。
  5. [Deploy] タブを開き、アクティブなデプロイ チャネルが、変更可能なドラフトではなく、不変のバージョン([Versions] ペインの [Live] バッジで示されます)を指していることを確認します。

サンドボックス環境へのエクスポートとインポート

別のプロジェクトまたはステージング アプリケーションでモデルの変更をテストする場合は、エージェント アプリケーションをエクスポートしてテスト環境にインポートします。

  1. CX Agent Studio コンソールを開き、プロジェクトを選択します。
  2. エージェント アプリケーション リストで、アプリケーションのメニューを開き、[エクスポート] を選択します。
  3. サンドボックス環境で、データストアやサービス エンドポイントなどの異なる外部依存関係を使用する場合は、ダウンロードしたアーカイブを抽出し、environment.json ファイルを更新して、ディレクトリを zip アーカイブに圧縮します。詳細については、環境ファイルをご覧ください。
  4. サンドボックス プロジェクトまたはテスト アプリケーションで、アプリケーション メニューを開き、[Import] を選択して、アーカイブをアップロードします。
  5. 省略可: ソース アプリケーションから評価テストケースをエクスポートし、サンドボックス アプリケーションにインポートして、回帰テストを実行できるようにします。

ステップ 2: モデル設定を更新する

サポートされているモデルのリストを確認して、エージェントのモダリティ(テキストまたは音声)に一致するターゲット Gemini モデルを選択します。モデル設定は、コンソール、エクスポートされた構成ファイル、または REST API を使用して更新できます。

コンソールを使用してモデルを更新する

コンソールでエージェント アプリケーションを移行する場合は、グローバル アプリケーション モデル、個々のエージェントのオーバーライド、データストア ツールモデル、フォールバック設定を確認します。

  1. グローバル モデルを変更する:
    1. エージェント ビルダーで [設定] を開き、エージェント アプリケーションの設定を表示します。
    2. [基本] > [インタラクション] で、[グローバル モデル] フィールドでターゲット モデルを選択します。このモデルは、オーバーライドを指定していないアプリケーション内のすべてのエージェントのデフォルトとして機能します。
  2. ルートモデルとサブエージェント モデルのオーバーライドを確認する:
    1. エージェント ビルダーで、ルート エージェントのタイトルバーにあるメニューを開き、[構成を編集] を選択してエージェント設定を表示します。
    2. [モデル] フィールドを確認します。エージェントがグローバル モデルをオーバーライドする場合は、ターゲット モデルを選択するか、オーバーライドをクリアしてエージェントがグローバル モデルを継承するようにします。
    3. エージェント階層内のすべてのサブエージェントに対して、このチェックを繰り返します。
  3. データストア ツールモデルを確認する:
    1. アプリケーションでデータストア ツールを使用している場合は、[ツール] パネルを開き、各データストア ツールを選択します。
    2. [詳細] > [モダリティ] を展開し、[テキスト] と [音声] の両方の構成で [リライター モデル] と [要約モデル] の選択を確認します。
  4. 再試行とフォールバックの設定を確認する:
    1. エージェント アプリケーションの [設定] を開き、[基本] > [動作] > [フォールバック動作] に移動します。
    2. モデル生成中のエラー処理に、[再試行]、[エージェントのレスポンス]、[フォールバック] が適切に構成されていることを確認します。

エクスポートされた構成ファイルを使用してモデルを更新する

バージョン管理または CI / CD パイプラインでエージェント アプリケーションを管理している場合は、エクスポートされたアーカイブでモデル設定を更新し、パッケージを再インポートできます。

  1. エクスポートしたエージェント アプリケーションの ZIP アーカイブを解凍します。
  2. agents/<var>AGENT_NAME</var>/ の各エージェント ディレクトリで、agents/<var>AGENT_NAME</var>/<var>AGENT_NAME</var>.yaml ファイルを開き、modelSettings.model フィールドをターゲット モデル ID に更新します。

    displayName: "AGENT_NAME"
    modelSettings:
      model: "MODEL_ID"
    instruction: "agents/AGENT_NAME/instruction.txt"
    

    次のように置き換えます。

    • <var>AGENT_NAME</var>: エージェントの表示名。
    • <var>MODEL_ID</var>: ターゲット モデルの識別子(gemini-3.5-flash や gemini-composite-v2 など)。
  3. ルート ディレクトリを ZIP アーカイブに圧縮し、更新されたアーカイブを CX Agent Studio にインポートします。

REST API を使用してモデルを更新する

CX Agent Studio REST API を使用して、エージェント アプリケーションと個々のエージェントの ModelSettings をプログラムで更新できます。

API を呼び出す前に、次の値を収集します。

  • <var>PROJECT_ID</var>: 実際の Google Cloud プロジェクト ID。
  • <var>LOCATION_ID</var>: エージェント アプリケーションのリージョン(us、eu など)。
  • <var>APP_ID</var>: エージェント アプリケーションのリソース ID。
  • <var>AGENT_ID</var>: 特定のルート エージェントまたはサブエージェントのリソース ID。
  • <var>MODEL_ID</var>: ターゲット モデル ID(gemini-3.5-flash など)。

エージェント アプリケーションのデフォルトのグローバル モデルを更新するには、updateMask=modelSettings を指定して projects.locations.apps.patch メソッドに PATCH リクエストを送信します。

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://ces.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID?updateMask=modelSettings" \
  -d '{
    "modelSettings": {
      "model": "MODEL_ID"
    }
  }'

個々のルート エージェントまたはサブエージェントのモデル オーバーライドを更新するには、updateMask=modelSettings を指定して projects.locations.apps.agents.patch メソッドに PATCH リクエストを送信します。

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://ces.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/agents/AGENT_ID?updateMask=modelSettings" \
  -d '{
    "modelSettings": {
      "model": "MODEL_ID"
    }
  }'

ステップ 3: エージェントのパフォーマンスを評価して改善する

基盤モデルは、推論スタイル、指示の遵守、詳細度、ツール呼び出しの動作が異なる場合があります。モデルを切り替えたら、エージェントをテストし、指示を調整してから、更新された構成にライブ カスタマー トラフィックをルーティングします。

シミュレータでインタラクティブにテストする

プレビュー エージェントシミュレータで初期の健全性チェックを実行します。

  1. エージェント ビルダーでシミュレータを開き、[新しい会話を開始] をクリックします。
  2. 代表的なテキストまたは音声のインタラクションをテストし、エージェントが指示に従い、有効な引数でツールを呼び出し、想定どおりにサブエージェント間で移行することを確認します。
  3. 各ターンのトレースの詳細を開いて、ステップのレイテンシ、ツールの入力と出力、未加工の JSON レスポンスを検査します。
  4. 省略可: 会話を回帰スイートに追加するには、シミュレータ メニューを開き、[Save as golden] を選択します。

AI を使用して評価を実行し、問題を診断する

評価を使用して、ゴールデン、シナリオ、シミュレーションのテストケース全体でパフォーマンスを測定し、結果をベースライン バージョンと比較します。

  1. エージェント ビルダーの上部にある [評価] をクリックします。
  2. クリティカル ユーザー ジャーニーとエージェント バリアントをカバーするテストケースを選択し、[選択したテストを実行] をクリックします。
  3. 実行ダイアログで [Find issues with AI] を選択し、最適な AI 分析のために実行回数を 3 回以上に設定して、実行を開始します。詳細については、AI を使用してテストケースを改善するをご覧ください。
  4. 実行が完了したら、ツールの正確性、セマンティックの一致、ユーザーの目標達成度、達成した目標、ハルシネーション、タスクの完了などの評価指標を確認し、失敗したターンや未完了の目標を調べます。
  5. 結果ページで [Gemini に相談] をクリックして、生成された loss_report を確認し、失敗した実行の根本原因を要約して、推奨される手順または構成の修正を確認します。

AI Co-Builder を使用したヒルクライムの手順: Arc

評価結果で、ターゲット モデルで回帰または動作の変化が示されている場合は、AI Co-Builder: Arc と評価ヘルパーを使用して、プロンプトを繰り返し改良します。

  1. エージェント ビルダーの上部にある [Arc] をクリックして、AI Co-Builder を開きます。
  2. [コンテキストを選択] をクリックして、調整が必要な特定のエージェントまたは指示を選択するか、失敗した文字起こしと損失レポートを添付します。
  3. 他のテストケースでの動作を維持しながら、観察された失敗に対処するように指示またはツール記述を更新するよう Arc に指示します。指示の再構成機能を使用して、指示を構造化された形式に整理することもできます。
  4. 修正を適用した後に評価スイートを再実行し、すべてのテストケースが合格基準を満たすまで繰り返します。その他のガイダンスについては、評価とヒルクライムのベスト プラクティスをご覧ください。

ステップ 4: トラフィック分割を使用して段階的にデプロイする

更新されたエージェントが評価に合格したら、バージョンとデプロイ トラフィック分割を使用して段階的にロールアウトします。

移行したエージェントのバージョンを作成する

検証済みの構成の不変のスナップショットを保存します。

  1. 別のサンドボックス アプリケーションで変更をテストした場合は、検証済みのアプリケーション パッケージをエクスポートして、本番環境アプリケーションにインポートします。
  2. 本番環境アプリケーションで、[バージョン] ペインを開き、[+ バージョンを作成] をクリックします。
  3. ターゲット モデルを識別する名前と説明(v2-gemini-3-5-flash など)を入力し、[作成] をクリックします。

ライブ トラフィックを徐々に移行する

トラフィック分割を使用して、移行されたバージョンにトラフィックの 100% を昇格させる前に、ライブ会話のごく一部を移行されたバージョンにルーティングします。

  1. エージェント ビルダーの上部にある [デプロイ] タブをクリックし、デプロイ チャネルを選択します。
  2. [エージェントのバージョン] で [バージョンを追加] をクリックし、ベースラインの製品版と移行された候補バージョンの両方を追加します。
  3. 候補バージョンに小さな初期トラフィックの割合を割り当て(たとえば、ベースライン バージョンに 90%、候補バージョンに 10%、合計 100%)、チャネル構成を保存します。REST API を使用して、experimentConfig.versionRelease.trafficAllocations をプログラムで構成することもできます。
  4. バージョン間でライブ パフォーマンスをモニタリングする:
  5. 安定性と品質を確認しながら、移行したバージョンのトラフィックの割合を段階的に増やし、最終的にライブ トラフィックの 100% を処理するようにします。ロールアウト中に予期しない問題が検出された場合は、トラフィックの 100% をベースライン バージョンにルーティングするか、[バージョン] ペインで以前のバージョンを復元します。