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

前提条件
エージェントステップはキャンバスコンテキスト変数を使用して、関連する文脈を取り込み、キャンバスで活用できる変数を出力します。
仕組み
ユーザーがキャンバスのエージェントステップに到達すると、Brazeは設定した入力データ(フルコンテキストまたは選択したフィールド)を選択したエージェントに送信します。エージェントはそのモデルと指示を使用して入力を処理し、出力を返します。その出力は、ステップで定義した出力変数に格納されます。
この変数は、主に3つの方法で使用できます。
- 意思決定: エージェントの応答に基づいて、ユーザーを異なるキャンバスパスに振り分けます。例えば、リードスコアリングエージェントが「Sales Ready」、「Marketing Qualified」、または「Disqualified」というリードカテゴリを返す場合があります。この割り当てを使用して、「Sales Ready」のリードに対してSlackアラートや自動メッセージをトリガーし、「Disqualified」のリードをジャーニーから除外することができます。
- パーソナライゼーション: エージェントの応答をメッセージに直接挿入します。例えば、エージェントが顧客のフィードバックを分析し、顧客のコメントに言及して解決策を提案する共感的なフォローアップメールを生成することができます。
- ユーザーデータの処理: ユーザーデータを分析・標準化し、ユーザープロファイルに保存するか、Webhookを使用して送信します。例えば、エージェントがセンチメントスコアや製品アフィニティの割り当てを返すことができます。そのデータをユーザープロファイルに保存して、今後の活用に役立てることができます。
エージェントステップの作成
ステップ1:ステップを追加する
サイドバーからエージェントコンポーネントをドラッグ&ドロップするか、ステップの下部にあるプラスボタンを選択してエージェントを選択します。
ステップ2:エージェントを選択する
このステップでデータを処理するエージェントを選択します。設定のガイダンスについては、カスタムエージェントの作成を参照してください。
エージェントリストでは、各エージェントに1日あたりの呼び出し上限がラベル表示されています。上限にカーソルを合わせると、使用済みの割合や、上限に対する本日の呼び出し回数など、当日の進捗状況を確認できます。

ステップ3:エージェントの出力を設定する
エージェントの出力は「出力変数」と呼ばれ、簡単にアクセスできるようコンテキスト変数に保存されます。出力変数を定義するには、変数に名前を付けます。
出力変数のデータ型はエージェントコンソールから設定されます。エージェントの出力は、文字列、数値、ブール値、またはオブジェクトとして保存できます。これにより、キャンバスでのテキストパーソナライゼーションと条件付きロジックの両方に柔軟に対応できます。各型の一般的な用途は以下のとおりです。
| データ型 | 一般的な用途 |
|---|---|
| 文字列 | メッセージのパーソナライゼーション(件名、本文、レスポンス) |
| 数値 | スコアリング、しきい値、オーディエンスパスでのルーティング |
| ブール値 | 条件分岐でのYes/No分岐 |
| オブジェクト | 1回のLLM呼び出しで、予測可能なデータ構造として、このセクションで前述した1つ以上のデータ型を活用する |
出力変数は、コンテキスト変数と同じテンプレート構文を使用して、キャンバス全体で使用できます。コンテキスト変数セグメントフィルターを使用するか、Liquidを使用してエージェントのレスポンスを直接テンプレート化します: {{context.${response_variable_name}}}
オブジェクト出力変数から特定のプロパティを使用するには、ドット記法を使用してLiquidでそのプロパティにアクセスします: {{context.${response_variable_name}.field_name}}

ステップ4:オプションのステップ指示を追加する
エージェントのメイン指示でカバーされておらず、このステップに固有の情報をエージェントに伝える必要がある場合は、オプションのステップ指示を含めることができます。
キャンバスで通常使用するLiquidテンプレート値を入力できます。ステップ指示に abort_message を含めることはできません。
ステップ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値を入力できます。 - フォールバック出力があるユーザーに対して
abort_messageを呼び出した場合、Brazeはフォールバックが設定されていないかのようにそのユーザーを処理します。エージェントが成功した場合、フォールバックは使用されないため、フォールバック内のabort_message呼び出しは影響しません。 - 同一の入力に対する応答はキャッシュされ、数分以内の同一の呼び出しに再利用される場合があります。
- キャッシュされた値を使用する応答も、合計および1日の呼び出し回数にカウントされます。
- エージェントステップは、大量のユーザーバッチの処理に時間がかかる場合があります。Brazeは呼び出しフロー制御に従って呼び出しをキューに入れるため、大量送信時にユーザーが保留中になる場合があります。ログを確認して呼び出しが行われていることを確認してください。
分析
エージェントステップのパフォーマンスを追跡するには、以下の指標を参照してください。
| 指標 | 説明 |
|---|---|
| エントリー済み | ユーザーがエージェントステップに入った回数です。 |
| 次のステップに進んだ | エージェントステップを通過した後、フロー内の次のステップに進んだユーザーの数です。 |
| キャンバスを退出した | エージェントステップを通過した後、キャンバスを退出したユーザーの数です。 |
ベストプラクティス
複雑なユースケースではエージェント間でタスクを分割する
エージェントに依頼しているタスクの複雑さに対応しきれない場合は、複数のエージェントステップに作業を分割してください。1つのプロンプトにデータのクリーンアップ、ルーティングロジック、メッセージ全文の作成を混在させると、それぞれの目標が競合し、出力品質にばらつきが生じることがあります。
以下のパターンでは、旅行の例として3つのエージェントを使用します。ユーザーが最近アプリで検索したものの予約に至らなかった場合に、チェックアウトへ誘導するリターゲティングコピーを作成するシナリオです。
- エージェント1はキャンバスのコンテキストを要約します。ロイヤルティティア、最後に検索した都市、高インテントの検索行動などのフィールドを読み取り、後続のステップで再利用できる出力変数として短い構造化サマリーを返します。
- エージェント2は、キャンバスで分岐に使用できるルーティング値を返します。出力が分岐方法と一致するよう、数値、ブーリアン、または構造化オブジェクトを使用してください。その値をオーディエンスパスまたは条件分岐ステップにマッピングします。たとえば、ロイヤルティ主導のメッセージングとディール主導のメッセージングで別々のパスを検討してください。
- エージェント3は、生成メッセージテキストが必要なブランチでのみ下書きを作成します。エージェント1のサマリー(およびブランチ固有のコンテキスト)を渡すことで、このエージェントは同じプロンプト内で入力の正規化や戦略の選択を行う代わりに、トーンとチャネルの制限に集中できます。
実験パスステップを使用してエージェントジャーニーを小規模でテストする
エージェントのパフォーマンスとクレジット消費を既存のジャーニーと比較してテストするには、実験パスステップを追加して、オーディエンスの一部のみがエージェントステップを含むブランチに入るようにします。
たとえば、最初は1日あたり数千人のユーザーをエージェントを含むパスに送り、残りのユーザーをコントロールパスまたはエージェントなしのパスに送ることから始められます。1〜2週間データを収集し、パス間でKPIs、カウンターメトリクス、エージェントのクレジット消費を比較してください。こうすることで、エージェント対応ブランチへのトラフィックを増やす前に確信を持ちROIを証明でき、呼び出し消費も抑えられます。
よくある質問
エージェントステップはどのような場合に使用すべきですか?
一般的に、特定の文脈に応じたデータをLLMに入力し、人間には不可能な規模でキャンバスコンテキスト変数をインテリジェントに割り当てたい場合に、エージェントステップの使用をお勧めします。
以前にチョコレートとストロベリーを注文したユーザーに、新しいアイスクリームのフレーバーをおすすめするパーソナライズされたメッセージを送信する場合を考えてみましょう。エージェントステップとAIアイテムレコメンデーションの違いは以下のとおりです。
- エージェントステップ: LLMを使用して、エージェントに与えられた指示とコンテキストデータポイントに基づいて、ユーザーが何を望んでいるかを定性的に判断します。この例では、エージェントステップはユーザーが異なるフレーバーを試したいという可能性に基づいて、新しいフレーバーをおすすめする場合があります。
- AIアイテムレコメンデーション: 機械学習モデルを使用して、購入などの過去のユーザーイベントに基づいて、ユーザーが最も望む可能性の高い製品を予測します。この例では、AIアイテムレコメンデーションは、ユーザーの過去2回の注文(チョコレートとストロベリー)と、ワークスペース内の他のユーザーの行動との比較に基づいて、フレーバー(バニラ)を提案します。
エージェントステップは入力データをどのように使用しますか?
エージェントステップは、エージェントが使用するように構成されたコンテキストデータと、ステップに追加したオプションのステップ指示を分析します。