コンテンツにスキップ

エージェントステップ

エージェントステップを使用すると、AIを活用した意思決定やコンテンツ生成をキャンバスワークフローに直接組み込むことができます。一般的な情報については、Brazeエージェントを参照してください。

キャンバスのユーザージャーニーにおけるエージェントステップ。

前提条件

エージェントステップは、キャンバスのコンテキスト変数を使用して関連するコンテキストを取り込み、キャンバス内で活用できる変数を出力します。

仕組み

ユーザーがキャンバス内のエージェントステップに到達すると、Brazeは設定した入力データ(完全なコンテキストまたは選択したフィールド)を選択したエージェントに送信します。エージェントはモデルと指示に基づいて入力を処理し、出力を返します。この出力は、ステップで定義した出力変数に格納されます。

この変数は、主に3つの方法で使用できます。

  • 意思決定: エージェントの応答に基づいて、ユーザーを異なるキャンバスパスにルーティングします。たとえば、リードスコアリングエージェントが「Sales Ready」、「Marketing Qualified」、「Disqualified」などのリードカテゴリを返す場合があります。この割り当てを使用して、「Sales Ready」リードに対してSlackアラートや自動メッセージをトリガーし、「Disqualified」リードをジャーニーから除外できます。
  • パーソナライゼーション: エージェントの応答をメッセージに直接挿入します。たとえば、エージェントが顧客のフィードバックを分析し、顧客のコメントを参照して解決策を提案する共感的なフォローアップメールを生成できます。
  • ユーザーデータの処理: ユーザーデータを分析・標準化し、ユーザープロファイルに保存するか、Webhookを使用して送信します。たとえば、エージェントがセンチメントスコアや商品アフィニティの割り当てを返すことができます。そのデータをユーザープロファイルに保存して、将来の利用に活用できます。

エージェントステップの作成

ステップ1: ステップを追加する

サイドバーからエージェントコンポーネントをドラッグ&ドロップするか、ステップ下部のプラスボタンを選択してエージェントを選択します。

ステップ2: エージェントを選択する

このステップでデータを処理するエージェントを選択します。設定のガイダンスについては、カスタムエージェントの作成を参照してください。

エージェントリストでは、各エージェントに1日あたりの呼び出し上限がラベル付けされています。上限にカーソルを合わせると、使用済みの割合や、上限に対する本日の呼び出し回数など、本日の進捗状況が表示されます。

「エージェントステップの設定」パネル。エージェントドロップダウンに2つのエージェントが表示されています。各エージェントには1日あたりの呼び出し上限がラベル付けされています。最初のエージェントのツールチップに、使用済みの割合と本日の呼び出し回数が表示されています。

ステップ3: エージェントの出力を設定する

エージェントの出力は「出力変数」と呼ばれ、簡単にアクセスできるようにコンテキスト変数に保存されます。出力変数を定義するには、変数に名前を付けます。

出力変数のデータ型はエージェントコンソールから設定されます。エージェントの出力は、文字列、数値、ブール値、またはオブジェクトとして保存できます。これにより、キャンバス内のテキストパーソナライゼーションと条件ロジックの両方に柔軟に活用できます。各型の一般的なユースケースを以下に示します。

データ型 一般的なユースケース
文字列 メッセージのパーソナライゼーション(件名、本文、返信)
数値 スコアリング、しきい値、オーディエンスパスでのルーティング
ブール値 条件分岐でのYes/No分岐
オブジェクト 前述のデータ型のいずれか1つ以上を、予測可能なデータ構造で1回のLLM呼び出しにまとめて活用

出力変数は、コンテキスト変数と同じテンプレート構文を使用してキャンバス全体で使用できます。コンテキスト変数セグメントフィルターを使用するか、Liquidを使用してエージェントの応答を直接テンプレート化します: {{context.${response_variable_name}}}

オブジェクト出力変数の特定のプロパティを使用するには、ドット記法を使用してLiquidでそのプロパティにアクセスします: {{context.${response_variable_name}.field_name}}

Body HTML Writerのエージェントステップ。変数「agent_output」のオブジェクトデータ型出力が表示されています。

ステップ4: オプションのステップ指示を追加する

エージェントがこのステップ固有で知っておく必要があり、エージェントのメイン指示にまだ含まれていない事項について、オプションのステップ指示を含めることができます。キャンバスで通常使用するLiquidテンプレート値を入力できます。

ステップ5: エージェントをテストする

エージェントステップは2つの方法でテストできます。

ステップ内プレビュー(キャンバスビルダー): ステップを設定した後、ステップのプレビューを使用して、ランダムなユーザー、既存のユーザー、またはカスタムユーザーに対するエージェントの出力を確認します。これにより、キャンバスのフルパスを実行せずに、ステップを単独でテストできます。

テストキャンバス(フルジャーニー): キャンバスフッターのテストキャンバスを選択すると、ユーザーパスをエンドツーエンドでプレビューできます。テストがエージェントステップに到達すると、Brazeはエージェント「{agentName}」を実行しますか?と表示します。

  • はいを選択すると、オプションでコンテキストを追加し、応答をシミュレーションを選択してプレビューユーザーに対してエージェントを呼び出します。テストユーザーのプロファイルや上流で設定済みのキャンバスコンテキストを補完するために、サンプル入力を自然言語で記述できます(例: カートの内容やメッセージテキスト)。
  • いいえを選択すると、ライブ呼び出しをスキップし、代わりにエージェントコンソールで設定されたフォールバック出力を使用します。

応答をシミュレーションからの呼び出しは、エージェントの1日あたりの呼び出し上限にカウントされ、エージェントコンソール > ログに表示されます。テストキャンバスの完全な動作については、ユーザーパスのプレビューを参照してください。

ランダムなユーザーとしてエージェントの出力をプレビューする画面。

エラー処理

Brazeがエージェントの失敗、レート制限エラー、呼び出しフロー制御をどのように処理するかについては、エージェントのデプロイのエラー処理とフォールバック動作およびBrazeエージェントのエラー処理を参照してください。

  • 接続されたモデルがLLMプロバイダーからレート制限エラーを返した場合、Brazeはエクスポネンシャルバックオフを使用して、呼び出しが成功するか完了できないと判断されるまで継続的にリクエストを再試行します。その後、ユーザーは次のキャンバスステップに進みます。
  • その他の失敗(タイムアウトエラーや無効なAPIキーなど)、またはエージェントが1日の呼び出し上限に達した場合、エージェントコンソールでフォールバック値が設定されていない限り、出力変数はnullに設定されます。フォールバック値が設定されている場合、BrazeはユーザーごとにフォールバックをLiquidでレンダリングし、結果を出力変数に保存します。これは1日の上限により呼び出しがブロックされた場合も同様です。
  • フォールバック値を設定しない場合は、下流のメッセージステップでデフォルトのLiquid値を使用してnull出力を処理してください。たとえば、パーソナライゼーションを追加モーダルで、{{context.${response_variable_name}.push_title | default: 'Hello friend!'}}や{{context.${response_variable_name}.push_body | default: 'Open our app to get your prize!'}}のようなデフォルトのLiquid値を入力できます。
  • 同一の入力に対する応答はキャッシュされ、数分以内の同一の呼び出しに再利用される場合があります。
    • キャッシュされた値を使用する応答も、合計および1日の呼び出し回数にカウントされます。
  • エージェントステップは、大量のユーザーバッチの処理に時間がかかる場合があります。Brazeは呼び出しフロー制御に従って呼び出しをキューに入れるため、大量送信時にユーザーが保留中になる場合があります。ログを確認して呼び出しが行われていることを確認してください。

分析

エージェントステップのパフォーマンスを追跡するには、以下の指標を参照してください。

指標 説明
入場 ユーザーがエージェントステップに入場した回数です。
次のステップに進んだ エージェントステップを通過した後、フロー内の次のステップに進んだユーザー数です。
キャンバスを退出した エージェントステップを通過した後、キャンバスを退出したユーザー数です。

ベストプラクティス

複雑なユースケースではエージェント間でタスクを分割する

エージェントに依頼しているタスクの複雑さに対応しきれない場合は、複数のエージェントステップに作業を分割してください。1つのプロンプトにデータクリーンアップ、ルーティングロジック、メッセージ全文の作成を混在させると、それぞれの目標が競合し、出力品質にばらつきが生じることがあります。

以下のパターンでは、旅行の例として3つのエージェントを使用します。ユーザーが最近アプリで検索したものの予約に至らなかった場合に、チェックアウトを促すリターゲティングコピーを作成します。

  • エージェント1はキャンバスのコンテキストを要約します。ロイヤルティティア、最後に検索した市区町村、高インテントの検索行動などのフィールドを読み取り、後続のステップで再利用できる出力変数として短い構造化サマリーを返します。
  • エージェント2はキャンバスが分岐に使用できるルーティング値を返します。出力が分岐方法と一致するように、数値、ブール値、または構造化オブジェクトを使用してください。その値をオーディエンスパスまたは条件分岐ステップにマッピングします。たとえば、ロイヤルティ主導のメッセージングとディール主導のメッセージングで別々のパスを検討してください。
  • エージェント3は、生成メッセージテキストが必要なBranchでのみ下書きを作成します。エージェント1のサマリー(および Branch 固有のコンテキスト)を渡すことで、このエージェントは同じプロンプト内で入力の正規化や戦略の選択を行う代わりに、トーンとチャネルの制限に集中できます。

実験パスステップを使用してエージェントジャーニーを小規模でテストする

エージェントのパフォーマンスとクレジット消費を既存のジャーニーと比較してテストするには、実験パスステップを追加して、オーディエンスの一部のみがエージェントステップを含むBranchに入るようにします。

たとえば、1日あたり数千人のユーザーをエージェントを含むパスに送り、残りをコントロールパスまたはエージェントを含まないパスに送ることから始められます。1〜2週間データを収集し、パス間でKPIs、カウンターメトリクス、エージェントクレジットの消費量を比較します。このようにして、エージェント対応Branchへのトラフィックを増やす前に信頼性を構築しROIを証明でき、呼び出し消費量も制限できます。

よくある質問

エージェントステップはどのような場合に使用すべきですか?

一般的に、特定の文脈に応じたデータをLLMに入力し、人間では不可能な規模でキャンバスコンテキスト変数をインテリジェントにエージェント的に割り当てたい場合に、エージェントステップの使用をお勧めします。

チョコレートとストロベリーを以前注文したユーザーに、新しいアイスクリームフレーバーを勧めるパーソナライズされたメッセージを送信するとします。エージェントステップを使用する場合とAIアイテムレコメンデーションを使用する場合の違いは次のとおりです。

  • エージェントステップ: LLMを使用して、エージェントに与えられた指示とコンテキストデータポイントに基づいて、ユーザーが何を望んでいるかについて定性的な判断を行います。この例では、エージェントステップは、ユーザーが異なるフレーバーを試してみたいという可能性に基づいて、新しいフレーバーを勧める場合があります。
  • AIアイテムレコメンデーション: 機械学習モデルを使用して、購入などの過去のユーザーイベントに基づいて、ユーザーが最も欲しいと思われる商品を予測します。この例では、AIアイテムレコメンデーションは、ユーザーの過去2回の注文(チョコレートとストロベリー)と、ワークスペース内の他のユーザーの行動との比較に基づいて、フレーバー(バニラ)を提案します。

エージェントステップは入力データをどのように使用しますか?

エージェントステップは、エージェントが使用するよう設定されたコンテキストデータと、ステップに追加したオプションのステップ指示を分析します。

New Stuff!