- AI品質指標(正確性、根拠の妥当性、関連性、コンテキストの品質、安全性、コンプライアンスなど)
- エージェントパフォーマンス指標(ツールの使用成功やタスクの完了など)
- 運用指標(レイテンシー、トークン消費量、エラー、コストなど)
- ユーザーおよびビジネス指標(満足度、エスカレーション、コンバージョン、リテンション、収益など)
評価と実験が解決する課題の違い
評価は、個々のモデルやエージェントの出力が定義された品質基準を満たしているかどうかを判断します。オブザーバビリティツールを使うと、その出力の背後にあるプロンプト、応答、トレース、検索ステップ、ツール呼び出しを確認できます。一方、実験は、基盤となる設定の変更がユーザーやビジネスに測定可能な改善をもたらすかどうかを判断するものであり、評価ともオブザーバビリティとも異なる問いに答えます。 たとえば、LLM ジャッジは、カスタマーサポートエージェントの書き直したシステムプロンプトを、現在のシステムプロンプトより根拠が明確だと評価するかもしれません。Kameleoon の実験は、チームが責任を負うべき問い、つまりその同じ設定が人間へのエスカレーションなしにより多くのチケットを解決するかどうか、そしてそのためにレイテンシーとトークン消費の面でどれだけのコストがかかるかに答えます。 Kameleoon は、LLM のオブザーバビリティや評価のスタックを置き換えるものではありません。RAGAS、LLM ジャッジ、または人によるレビュープロセスから得られた評価スコアを、カスタムゴールとして Kameleoon に取り込み、実験がすでに測定している行動指標やビジネスゴールと合わせて追跡することで、モデルレベルの品質シグナルと、統計的に信頼できる実際のユーザー影響の測定とを結び付けられます。 ほとんどの AI 実験では、単一の指標に頼るのではなく、複数の種類の指標を組み合わせます:- ユーザーまたはビジネスの成果をプライマリゴールに設定します。
- AI品質指標をセカンダリゴールまたはガードレールとして追跡します。
- レイテンシー、コスト、エラー、安全性を運用ガードレールとしてモニタリングします。
- 自動化されたジャッジのスコアを大規模に信頼する前に、人によるレビュー済みのサンプルと照合して検証します。
仕組み
LLM アプリケーションや AI エージェントを対象とした実験は、Kameleoon 内で5つの段階を経て進みます。- フィーチャーフラグが設定を保持します。 プロンプトやモデル名など、設定の各部分がフラグ上のフィーチャー変数になります。
- 各バリエーションが独自の値を設定します。 バリエーションとは、すべての変数に値を持つ、1つの完全な候補設定です。
- SDK が各訪問者にバリエーションを割り当てます。 訪問者がアプリケーションにアクセスすると、アプリケーションコードがフラグをリクエストし、割り当てられたバリエーションの値を受け取り、その値を使って LLM を呼び出したり、エージェントを構成したりします。
- ゴールが結果を記録します。 アプリケーションは、応答が許容可能な品質またはレイテンシーの閾値を超えた場合にのみ発生するガードレールのコンバージョンを含め、フラグに紐づけられた各ゴールに対してコンバージョンを追跡します。
- 結果ページがバリエーションを比較します。 十分なトラフィックを収集したら、紐づけたすべてのゴールにわたってバリエーションを比較し、どの設定を展開するかを決定します。
前提条件
- Feature Experimentation 用に設定されたプロジェクトを持つ Kameleoon アカウント。
- アカウントのクライアント ID とクライアントシークレット。これらの値を確認するには、API認証情報 を参照してください。
- Kameleoon SDK をインストールできるサーバーサイドアプリケーション(たとえば Python アプリケーション)。
Kameleoon で AI エージェントの実験を設定する
以降の手順では、次のような具体的な実験を構築します。書き直したシステムプロンプトを、より高性能なモデルおよびより高い推論エフォートと組み合わせることで、カスタマーサポート AI エージェントがより多くのチケットを単独で解決できるようになるか、そしてその際にレイテンシーを許容範囲内に保てるか、という実験です。アプリケーションコードに手を加える前に、Kameleoon プラットフォームでフィーチャーフラグ、バリエーション、追跡用のゴールを設定します。フィーチャーフラグを作成する
エージェントの設定を保持し、実験の展開を制御するフィーチャーフラグを作成します。- Kameleoon アプリで、Features > Flags & Experiments > New feature flag をクリックします。
- 名前を入力します。たとえば
AI support agent configとし、フラグを使用するプロジェクトを選択します。 - Description フィールドに、フラグが何を制御するかを記録します。たとえば「サポートチャットボットのシステムプロンプト、モデル、推論エフォート、検索設定を制御する」のように記載すると、チームの他のメンバーがその目的を理解できます。
- Validate をクリックします。
- Kameleoon がフラグの名前からフィーチャーキーを生成します。生成されたキーをそのまま使うか、
ai_support_agentに編集します。アプリケーションコードはこのキーでフラグを識別し、名前では識別しないため、両者を一致させる必要があります。
エージェントの設定をフィーチャー変数に保存する
テストしたいエージェントの設定の各部分について、フィーチャー変数を1つずつ追加します。こうしておくと、アプリケーションコードを編集せずに、Kameleoon プラットフォームからそれぞれの値を変更できます。この例では、次の4つの変数をテストします。- フラグのページで、左サイドバーの Set Up > Variables > Add Variable をクリックします。
- 変数の Type を表に合わせて String または Number に設定します。
- 表にある Variable Key を入力します。たとえば
system_promptです。 - Default Value に、アプリケーションが現在本番環境で使用している値を設定します。後で作成する各バリエーションは、これらの値があらかじめ入力された状態で始まるため、正確なデフォルト値を設定しておくと手間が省け、いざというときに立ち返れる動作確認済みの設定にもなります。
- Save をクリックします。
- 表に残っている各変数について、これらの手順を繰り返します。

バリエーションを作成する
配信ルールが配信できるのは Off か、自分で作成したバリエーションのいずれかです。そのため、A/B 比較を行うには、現在の設定用のバリエーションに加えて、テストしたい新しい設定ごとにバリエーションが必要です。この例では、アプリケーションが本番環境ですでに配信している設定をそのまま反映したBaseline と、書き直してより明確にしたプロンプトをより高性能なモデルおよびより高い推論エフォートと組み合わせたチャレンジャーである Grounded, high reasoning の、2つのバリエーションを作成します。
- 左サイドバーで Set Up > Variations > Add variation をクリックします。
- Name に、たとえば
Baselineを入力し、対応する Variation Key にbaselineを入力します。各変数にはデフォルト値があらかじめ入力されているため、4つとも変更せずそのままにします。 - Save をクリックします。
Grounded, high reasoning(キーgrounded_high_reasoning)という名前の2つ目のバリエーションについて、これらの手順を繰り返し、4つの変数それぞれを、このバリエーション用の表の値に一致するよう編集します。- Save をクリックします。

ビジネスへの影響、AI品質、レイテンシーのゴールを紐づける
応答品質だけでなく、チームが責任を負うべき成果全体にわたってバリエーションを比較できるよう、フィーチャーフラグに複数のゴールを紐づけます。Kameleoon は統合されたプラットフォームであるため、組織内にすでに存在するゴールを紐づけることも、LLM を活用した機能専用のゴールを新たに作成することもできます。この例では、AI エージェントにとって重要な指標カテゴリーからそれぞれ1つずつ、合計3つのゴールを紐づけます。
訪問者のブラウザではなくアプリケーションが発火させるため、3つとも、バックエンドがトリガーする Custom goals として作成します。各ゴールを作成する際は、Type で Custom goal を選択し、続けてSDK 経由のバックエンドイベントのオプションを選択します。
- フラグのページで、Set Up メニューの Goals > Add goal をクリックします。
- 既存のゴールを選択するか、Create a new goal をクリックして新しいゴールを定義します。Kameleoon は最初に紐づけたゴールを自動的に Primary goal に設定するため、
Ticket resolved without escalationを最初に追加します。 - Save をクリックします。
Response groundedness scoreとResponse latencyについても同じ手順を繰り返します。これらは Kameleoon によって Secondary goals として紐づけられます。
Response groundedness score と Response latency は数値を持ちません。アプリケーションは、ある応答が許容可能な閾値(応答が遅すぎるか、根拠が不十分すぎるか)を超えたかどうかを判断し、超えた場合にのみそのゴールのコンバージョンを発生させます。Kameleoon はその後、各ゴールのコンバージョン率をバリエーションごとに報告し、どれだけの割合の応答がその閾値を超えたかを示します。

実験を展開する
2つのバリエーション間でトラフィックを分割する Experiment ルールを追加し、フラグをオンにしてデータの収集を開始します。Add a rule メニューは、ルールを目的別にグループ化しています。Feature testing には、トラフィックを分割してバリエーション間の統計的に有意な比較を測定する Experiment ルールが含まれます。一方、Feature delivery には、比較を行わずに単一のバリエーションを徐々に、または特定のセグメントに向けてリリースする Progressive delivery と Targeted delivery が含まれます。A/B テストには Experiment ルールが必要です。- Rollout Planner で、対象としたい環境を選択します。たとえば Production です。
- Add a rule をクリックし、Feature testing の下で Experiment を選択します。
- Variations to serve の下で、
Baselineを Control に設定し、Grounded, high reasoningを Treatment として追加します。Kameleoon はすべてのトリートメントの結果をコントロールと比較して測定するため、コントロールにはすでに本番環境で実行している設定を指定する必要があります。 - 2つのバリエーション間でトラフィック配分を設定します。たとえば、それぞれ50%ずつです。
- テストしたい訪問者を含むよう、ルールのターゲティングを設定します。たとえば、サポート会話を開始したすべての訪問者です。
- Then, for everyone else in production, serve のドロップダウンで
Baselineを選択します。ルールのターゲティング対象外となった訪問者には、現在の検証済みの設定が配信され、アプリケーションはこれらの訪問者に対しても完全な変数セットを取得できます。 - フラグの ON/OFF トグルを ON に切り替えます。
- Save をクリックします。

アプリケーションで設定を取得する
Kameleoon の Python SDK をインストールし、訪問者に割り当てられた設定を取得して、訪問者のチケットが進行するのに合わせて各ゴールのコンバージョンを追跡します。同じパターンは、Node.js、Java、Go を含む、任意の Kameleoon サーバーサイド SDK にも当てはまります。Kameleoon が提供するのは設定値だけであるため、同じパターンは OpenAI Agents SDK、Claude Agent SDK、LangChain などの任意のエージェントフレームワークでも機能します。エージェントのコードの大半は Python または TypeScript で実行されるため、アプリケーションに合わせていずれかを選択してください。-
SDK を依存関係としてインストールします。
-
サイトコードと認証情報を使ってクライアントを初期化します。
environmentには、Experiment ルールを保持している Rollout Planner の環境と同じ値を設定します。異なる値を設定すると、SDK が別の環境のルールを評価してしまいます。 -
LLM を呼び出す前に割り当てられた設定を取得し、訪問者のチケットが進行するのに合わせて各ゴールのコンバージョンを追跡します。
LLM にリクエストを送る前に、訪問者の
visitor_codeを指定してget_agent_config_for_visitor()を呼び出し、返された値を使ってリクエスト、つまりシステムプロンプト、モデル、推論エフォート、取得するドキュメント数を組み立てます。エージェントが人間へのエスカレーションなしに訪問者の問題を解決したときはtrack_ticket_resolved()を呼び出します。エージェントが応答した後、取得したドキュメントと生成された応答を指定してscore_response_groundedness()を呼び出し、返されたスコアをtrack_quality_score()に渡します。各 LLM 呼び出しの後、応答時間をミリ秒単位で指定してtrack_response_latency()を呼び出します。track_quality_score()とtrack_response_latency()はどちらも、値が閾値を超えた場合にのみコンバージョンを追跡するため、両方のガードレールの範囲内にとどまる応答はどちらのゴールも発生させません。score_response_groundedness()は、LLM-as-a-judge の最小限の例です。応答の主張を取得したコンテキストと比較し、それを裏付けている割合を返すようモデルに求めます。RAGAS の Factual Correctness 指標 も同じ基本的な考え方をスコアリングしており、自作のジャッジプロンプトの代わりに、この指標やチームがすでに使用している他の評価フレームワークに置き換えることができます。 Kameleoon はその後、各ゴールのコンバージョン率をバリエーションごとに報告し、生のスコアやミリ秒の値そのものを追跡するのではなく、品質またはレイテンシーのガードレールに違反した応答の割合を示します。
各訪問者に一意の ID を割り当てるには
get_visitor_code() を使用します。データを追跡する前に訪問者の同意が必要なアプリケーションでは set_legal_consent() を使用します。クライアントの初期化と構成に関する完全なリファレンスについては、Python SDK 開発者ガイド を参照してください。モニタリングと改善
フィーチャーフラグの結果ページを開き、紐づけた3つのゴールすべてにわたってBaseline と Grounded, high reasoning を比較します。アプリケーションが get_variation() と track_conversion() を呼び出すたびに、Kameleoon は露出とコンバージョンを自動的に追跡するため、追加の計測は必要ありません。
3つのゴールは、個別にではなくまとめて読み取ってください。この例のチャレンジャーは、より大規模なモデルをより高い推論エフォートで実行し、より多くのドキュメントを取得するため、会話あたりのコストが高くなり、レイテンシーのガードレールに違反しやすくなります。Ticket resolved without escalation の向上がこの代償に見合うのは、Response latency と Response groundedness score のコンバージョン発生率が、Baseline よりもチャレンジャーで高くならない場合に限られます。プライマリゴールが改善していても、ガードレールのコンバージョン率が許容できる範囲を超えて上昇している場合は、Baseline の配信を続け、チャレンジャーを見直してください。
チャレンジャーが勝った場合は、それを昇格させます。各変数の Default Value を、勝った設定の値に更新して新しい動作確認済みのベースラインとし、その後、実験ルールを終了するか、次の仮説のためにそのバリエーションを再利用します。
詳細については、フィーチャーフラグの全体的な結果を表示する を参照してください。
次のステップ
- カスタムデータ、クロスデバイス実験、ターゲティング条件などの高度なオプションについては、Python SDK リファレンス を参照してください。
- 実験を特定のオーディエンス、たとえば特定のプロダクト領域のタグが付いたチケットのみにターゲティングするには、高精度なセグメンテーション条件 を紐づけます。
- レイテンシーと並んでトークンコストのゴールを追加し、会話あたりに消費したトークン数を数値のカスタムゴールとして追跡すると、Sonnet 構成と Opus 構成の差を直接コストとして把握できます。詳細については、ゴールの作成 を参照してください。
retrieval_top_kを増やすことで、エージェントが取得するドキュメントの関連性が実際に向上するかどうかを確認するために、コンテキストの関連性を測るゴールを追加します。根拠が明確な回答であっても、参照元のドキュメントが誤っている場合があるためです。詳細については、ゴールの作成 を参照してください。- 各応答の後にサムズアップ/サムズダウンのコントロールを表示するなど、直接的なユーザーフィードバックのゴールを追加すると、この例がすでに追跡している行動シグナルと合わせて訪問者の満足度を捉えられます。詳細については、ゴールの作成 を参照してください。
- temperature、ツール定義、リトライ時のフォールバックモデルなど、エージェントの設定の他の部分をテストするには、変数を追加します。詳細については、フィーチャー変数の定義 を参照してください。
- 大規模に信頼する前に、
Response groundedness scoreの閾値を、自動スコアのサンプルを人によるレビューと比較して検証します。詳細については、フィーチャーフラグのゴールを作成する を参照してください。