エージェントのバージョン管理
ブランチ、バージョン、トラフィックデプロイを使って、エージェント設定を安全に試験
エージェントのバージョン管理では、本番環境の設定を危険にさらすことなく、エージェントのさまざまな構成を試せます。分離されたブランチを作成し、変更をテストして、トラフィック比率によるデプロイで更新を段階的にロールアウトできます。
A/Bテストを実施したい場合は、実トラフィックに対するエージェント変更の推奨テスト手順について、実験を参照してください。
概要
バージョン管理システムでは、次のことができます。
- 任意の時点におけるエージェント設定の 不変スナップショット
- 本番公開前に変更をテストするための 分離ブランチ
- 一部のユーザーに対して変更を段階的にロールアウトするための トラフィック分割
- 任意のブランチから別の任意のブランチへ変更を反映する マージ
- 最新のmainブランチの変更をブランチに取り込む リベース
エージェントでバージョン管理を有効にすると、無効には戻せません。既存のエージェントで バージョン管理を有効にする前に、この点を考慮してください。
基本概念
バージョン
バージョンは、特定の時点におけるエージェント設定の不変スナップショットです。各バージョンには一意のID(形式:agtvrsn_xxxx)があり、次の内容を含みます。
conversation_config- システムプロンプト、LLM設定、音声設定、ツール、ナレッジベースplatform_settings- 評価、ウィジェット、データ収集、セーフティ設定などを含む、バージョン管理対象のサブセットworkflow- ノードとエッジを含む完全なワークフロー定義
バージョン管理が有効なエージェントで変更を保存すると、バージョンが自動的に作成されます。作成後のバージョンは変更できません。
ブランチ
ブランチは、gitブランチに似た名前付きの開発ラインです。mainブランチへマージする前に、変更を分離して作業できます。
- バージョン管理が有効なすべてのエージェントには、削除もアーカイブもできない Main ブランチがあります
- 追加のブランチは、mainだけでなく、既存ブランチ上の任意のバージョンから作成できます
- ブランチは任意の別ブランチにマージでき、main以外のブランチはmainにリベースして最新の変更を取り込めます
- 各ブランチには、ID(
agtbrch_xxxx)、名前、説明、バージョンの一覧があります - ブランチ名に使用できるのは、英字、数字、
() [] {} - / .です(最大140文字)
トラフィックデプロイ
トラフィックは割合で複数のブランチに分割できるため、段階的なロールアウトやA/Bテストを実施できます。
- 割合の合計は常に 100% でなければなりません
- トラフィックルーティングは会話IDに基づく 決定論的 なものです(同じユーザーは常に同じブランチにルーティングされます)
- アーカイブできるのは、トラフィックが0%の未アーカイブブランチのみです
下書き
未保存の変更は下書きとして保存されるため、すぐに新しいバージョンを作成せずに変更作業を進められます。
- 下書きは ユーザーごと・ブランチごと です(各チームメンバーが自身の下書きを持ちます)
- 新しいバージョンをコミットすると、下書きは自動的に破棄されます
- ブランチへのマージ時にも下書きは破棄されます
バージョン管理を有効にする
バージョン管理はオプトイン方式で、明示的に有効にする必要があります。新しいエージェントの作成時、または既存のエージェントで有効にできます。
一度有効にすると、バージョン管理を無効にはできません。これはエージェントに対する恒久的な変更です。
エージェント作成時に有効にする
ダッシュボードで有効化
APIで有効化
ダッシュボードでエージェントを開き、設定 に移動してバージョン管理を有効にします。有効にすると、ブランチ、下書き、バージョン、トラフィックデプロイを管理するための バージョン管理 タブが利用可能になります。
既存のエージェントで有効にする
ダッシュボードで有効化
APIで有効化
ダッシュボードでエージェントを開き、設定 に移動してバージョン管理をオンにします。
バージョン管理を有効にすると、現在のエージェント設定を含む最初のバージョンとともに、初期の「Main」ブランチが作成されます。
ブランチを操作する
ブランチを作成する
ブランチはmainだけでなく、任意のブランチ上の任意のバージョンから作成できます。必要に応じて、新しいブランチの初期バージョンに適用する設定変更を含めることもできます。
ブランチを一覧表示する
ブランチの詳細を取得する
変更をコミットする
バージョン管理が有効なエージェントを更新する際は、branch_idを指定して、そのブランチに新しいバージョンを作成します。
ダッシュボードで更新
CLIで更新
APIで更新
エージェントの バージョン管理 タブを開き、対象ブランチに切り替えて設定を編集し、保存して新しいバージョンを作成します。
指定したブランチに新しいバージョンが自動的に作成され、そのブランチにおけるそのユーザーの既存の下書きは破棄されます。
トラフィックをデプロイする
deploymentsエンドポイントを使用して、トラフィックをブランチ間に分配します。これにより、段階的なロールアウトとA/Bテストが可能になります。
トラフィックルーティングは会話IDに基づく決定論的なものです。そのため、セッションをまたいでも同じユーザーは常に同じブランチに到達します。
ブランチをマージする
ブランチ上の変更に満足したら、別のブランチにマージします。mainへのマージに限らず、任意の未アーカイブブランチを別の任意の未アーカイブブランチにマージできます。
マージ前にブランチの変更をレビューしたい場合、または書き込み権限のないブランチに変更を反映したい場合は、 直接マージする代わりにマージ提案を作成してください。
マージでは次の処理が行われます。
- ソースブランチの設定で、ターゲットブランチに新しいバージョンを作成します
- 必要に応じてソースブランチをアーカイブします(デフォルト動作)
- ソースブランチからターゲットブランチへトラフィックを自動的に移行します
ソースブランチがターゲットブランチから作成され(かつターゲットブランチ以降の新しいコミットがない)場合は、
no_new_changes_to_mergeでマージに失敗します。すでにそのターゲットにマージ済みの場合は、
branch_already_mergedで失敗します。
マージ競合を解決する
分岐後にソースブランチとターゲットブランチの両方で設定が変更されている場合、デフォルトではより最近更新されたブランチの値が保持されます。タイムスタンプに関係なく常にソースブランチの値を使用するには、force=Trueを設定します。
マージを確定する前に、上書きされる可能性があるフィールドを含め、マージ結果をプレビューできます。
ブランチをmainにリベースする
リベースでは、git rebaseと同様に、mainブランチの最新変更を別のブランチに取り込みます。これにより、ブランチ自体の変更をまだマージバックせずに、長期間使用するブランチをmainの最新状態に保てます。
リベースでは次の処理が行われます。
- mainの最新変更を取り込んだ新しいバージョンをブランチに作成します
- ブランチ固有の変更を保持します。ブランチとmainの両方で設定が編集されている場合、常にブランチ側の値が保持されます
- ブランチにmainのすべての変更がすでに含まれている場合、
branch_already_up_to_dateで失敗します
リベースできるのはmain以外のブランチのみで、リベース先はmainに限られます。mainブランチ自体を
リベースすると、cannot_rebase_mainエラーが返されます。
確定する前にリベース結果をプレビューできます。
ブランチをアーカイブする
不要になったブランチをアーカイブします。これにより、ブランチ一覧を整理できます。
トラフィックが割り当てられているブランチはアーカイブできません。アーカイブする前に、すべてのトラフィックを削除してください。
archived=Falseを設定すると、アーカイブ済みブランチを復元できます。
バージョン管理されたエージェントを複製する
エージェントを複製すると、mainブランチだけでなく、ソースエージェントのすべての未アーカイブブランチのコピーを含む新しいエージェントが作成されます。
複製されたエージェントでは、次のようになります。
- mainブランチは、ソースエージェントのmainブランチにおける最新バージョンから作成されます
- その他の未アーカイブブランチは、同じ名前と説明で再作成され、それぞれのブランチの最新バージョンから開始します
- バージョン履歴はコピーされないため、各ブランチは単一のバージョンで開始します
- アーカイブ済みブランチと下書きはコピーされません
- トラフィックデプロイはコピーされないため、他のブランチにトラフィックをデプロイするまで、すべてのトラフィックはmainブランチに送られます
複製先のブランチIDとバージョンIDは新しく作成されるため、ソースエージェントのIDへの参照を更新してください。
特定のバージョンを取得する
特定のバージョンまたはブランチの先端にあるエージェントを取得できます。
特定のバージョンのエージェントを取得する
ブランチ先端のエージェントを取得する
下書きの変更を含める
設定リファレンス
バージョン管理対象の設定
これらの設定は、バージョンやブランチごとに異なる場合があります。
エージェント単位の設定
これらの設定はバージョンではなくエージェントに属するため、すべてのブランチで共有されます。
エージェント単位の設定はmainブランチでのみ変更できます。他のブランチではダッシュボード上で 読み取り専用として表示され、main以外のブランチにバージョンを公開すると、それらに対する変更は破棄されます。 その後ブランチをmainにマージしても、これらの変更は適用されません。変更するにはmainブランチに切り替えてください。 そこで公開すると、変更はすべてのブランチに適用されます。
ベストプラクティス
ブランチ作成前にテストを作成する
新しいブランチを作成する前に、想定される動作を捉える自動テストを 設定してください。これによりベースラインを確立し、実験を繰り返す際に 早期にリグレッションを検出できます。
わかりやすいブランチ名を使用する
実験の目的が明確に伝わるブランチ名を選びます。参照しやすいように、機能名、仮説、チケット番号を
含めてください(例:feature/new-greeting-flow、
experiment/shorter-responses)。
進行中の作業には下書きを使用する
変更を繰り返す間は、下書きをこまめに保存してください。これにより不要なバージョンを作成せずに 作業を保存できます。テストまたはデプロイの準備ができたときだけコミットしてください。
トラフィックを増やす前に主要指標を監視する
分析ダッシュボードを使用して、ブランチのパフォーマンスを比較します。 通話完了率、平均会話時間、成功評価スコア、 ツール実行率を確認してください。指標がmainブランチの ベースラインを満たす、または上回る場合にのみトラフィックを増やします。