Skip to main content

エージェントのプロトタイプを作成する

学習の目的

この単元を完了すると、次のことができるようになります。

  • Agentforce のユースケースのカスタムトピックを設計する。
  • エージェントアクションのフロー、Apex、プロンプトテンプレートを計画する。
  • 参照アクションを設計する際の考慮事項を説明する。

プロトタイプの作成方法

Nora とそのプロジェクトチームは、Agentforce プロジェクトの計画に取り組みながら、AI エージェントを構築し、Sandbox 環境で試行してきました。ところで、Coral Cloud は Salesforce 組織で AI エージェントのプロトタイプをどのように作成したのでしょうか? チームのアプローチを順番に見ていき、実際に操作して各自のソリューションで反復処理を行えるようにします。

まず、Coral Cloud が予約管理ユースケース用に作成するトピックの設計に Nora がどのように取り組むか確認します。

会話の下準備をする

トピックは Agentforce の重要なコンポーネントです。トピックに AI エージェントの目標が定義され、その目標を達成するために必要なコンテキストや方向性が示されるためです。

ユーザーが AI エージェントとチャットし始めると、バックグラウンドで Agentforce の頭脳である推論エンジンが大規模言語モデル (LLM) と連携して、会話の曖昧さを取り除き、ユーザーのインテントを明確にします。続いて、エージェントが使用できる全トピックを評価して、ユーザーの目標と合致するトピックを選び出します。トピックを設計するときは、推論エンジンが適切なトピックをできるだけ簡単に選択できるようにする必要があります。推論エンジンが適切なトピックを選択しなければ、適切なアクションにアクセスできず、そのジョブの実行に必要なツールを利用できなくなります。

トピックを設計する

Agentforce にはトピックの設計に役立つツールが組み込まれていますが、Nora は標準トピックを選択することや、既存のトピックを編集することもできます。Nora は、表示ラベル、分類の説明、範囲、指示など、トピックの各要素を確認して簡単に選択できます。

表示ラベル

トピックの表示ラベルには、成すべきジョブが反映されている必要があります。Coral Cloud のユースケースにおいて、成すべきジョブは予約管理です。そのため、新しいトピックの名前は「予約管理」になります。エージェントにトピックが複数ある場合は、似通った名前にしないようにします。名前が紛らわしいと、推論エンジンがトピックを区別できなくなるためです。

分類の説明

分類の説明は、トピックが何をするものかを説明する 1 ~ 3 の文で記述されます。エージェントはこの説明を参考に、会話でいつトピックを使用するかを決定します。分類の説明は、エージェントの他のトピックと意味的に異なる必要があります。さらに、最も効果的な説明となるのは、そのトピックをトリガーすると予想される問い合わせの種類を的確に反映している場合です。

Coral Cloud の分類の説明の最初のバージョンは次のとおりです。「ゲストのホテルの予約、確認、旅程に関連する質問に回答し、リクエストに対応します。」

範囲

エージェントが「予約管理」トピックを選択したら、範囲によってエージェントができることとできないことが決まります。エージェントのジョブの定義を絞り込むと効果が高まります。

Coral Cloud のプロジェクトチームはユースケースの定義フェーズで、予約管理を処理する AI エージェントの MVP バージョンから開始します。これは賢明な判断です。その後、後続の 2 つのバージョンでエージェントの範囲を徐々に拡大していきます。ご想像のとおり、各バージョンの境界が Agentforce Builder のトピックの範囲に反映されている必要があります。

トピックの MVP バージョンでは、範囲を次のように記述することが考えられます。

「あなたのジョブは、ホテルの予約に関する質問があるユーザーに対応し、既存の予約に関する情報をゲストに伝えることだけです。予約確認メールや旅程を再送することもできます。新規予約の受付、予約の変更、予約のキャンセルは行わないでください。ホテルの予約に関係ない問い合わせには対応しないでください。」

Coral Cloud の Agentforce Builder の「予約管理」トピック

Coral Cloud がトピックの 2 つ目のバージョンでエージェントの機能を拡張するときは、プロジェクトチームがトピックの範囲を更新して、予約の変更と作成を追加しますが、キャンセルと返金は含めません。

指示

指示は、エージェントがジョブの実行方法やトピックに割り当てられたアクションの使用方法を決定するうえで役立ちます。指示は自然言語で記述されます。Coral Cloud のトピックの指示の一例を示します。「予約の変更を確定する前に、必ずユーザーに予約の変更の詳細を確認してください。」

トピックの指示は確定的なものではなく、常に同じ結果が保証されるわけではありません。この点は生成 AI の本質です。そのため、Nora とそのチームは、重要性または機密性の高いビジネスルール、要件、ガードレールを、トピックの指示ではなく、エージェントのアクションの機能に組み込みます。たとえば、Coral Cloud は「チェックイン日から 2 日以内にキャンセルした場合を除き、予約代金を返金しないでください」という指示を追加するのではなく、返金基準を評価するエージェントアクションを作成します。

エージェントのプロトタイプを作成するときは、トピックの指示を最後に作成することをお勧めします。アクションにロジックをどの程度組み込んだのか、あるいはエージェントにどの程度独自で判断させるのかを把握しなければ、効果的な指示を記述することはできません。トピックとアクションを作成した Coral Cloud のチームは、AI エージェントをテストすることにします。その後、Salesforce ヘルプSalesforce 開発者ブログのベストプラクティスに従って、トピックの指示を追加や改良することができます。

実際に使ってみる

前の単元で Coral Cloud は、ホテルの予約に関連するビジネスプロセスを定義しました。このビジネスプロセスの多くが、「予約管理」トピックのカスタムアクションに変換されています。

嬉しいことに、カスタムアクションはゼロから作成する必要がありません。実際のところ、カスタムアクションはすでに使い慣れた Salesforce テクノロジーに基づいています。カスタムアクションを作成するときは、Agentforce で使用したい既存のプラットフォーム機能 (呼び出し可能 Apex クラス、自動起動フロー、プロンプトテンプレート) を基盤に構築します。Agentforce ではこの基盤となる機能を参照アクションといい、これは Salesforce Platform の機能を有効活用する優れた手法です。

参照アクションの設計上の考慮事項

Coral Cloud では、エージェントアクションの基盤となる参照アクション (Apex、フロー、プロンプトテンプレート) の設計にどのようなアプローチを採用しているのでしょうか? 以下は、チームが考慮する要素の一部です。

確定的かプロンプトベースか

エージェントアクションの基盤となるプラットフォーム機能を開発するときは、最初にユースケースに関連するビジネスプロセスやタスクを確認します。続いて、プロセスやタスクを確定的にするかプロンプトベースにするかを決定します。

  • 確定的: 呼び出し可能な Apex クラスまたは自動起動フローを使用して出力を生成します。フローまたは Apex に基づくアクションは確定的で、ビジネスロジックとルールを使用して一貫した結果を生成します。
  • プロンプトベース: 1 つ以上のプロンプトテンプレートを使用して出力を生成します。プロンプトベースのアクションでは、応答の記述方法を管理することや、LLM の推論機能や生成機能を使用することができます。たとえば、サマリーを生成したり、センチメント分析を実行したりする場合は、参照アクションにプロンプトテンプレートを使用する必要があります。プロンプトテンプレートは、ナレッジや外部システムデータなどのデータでエージェントをグラウンディングする場合にも使用されます。

アクションに確定的なアプローチとプロンプトベースのアプローチを併用することも可能です。たとえば、ゲストが予約をキャンセルしたときに、フローベースのアクションがトリガーされてキャンセルが完了するとします。このフローのいずれかの時点で、エージェントがプロンプトに従ってお客様にキャンセルの理由を尋ねることができます。お客様がキャンセルの具体的な理由を示したら、エージェントがお客様の回答を要約して、サマリーを確認できるようにすることも一案です。Coral Cloud が、この併用アプローチを長期にわたって実施すれば、お客様に影響を及ぼす問題に対する理解を深めて対応することができます。さらに、キャンセル確認メールを作成し、その特定のお客様に将来の予約を促すパーソナライズされたオファーを追記して送信するプロンプトテンプレートを呼び出すこともできます。

アトミックまたは複合的

考慮すべきもう 1 つの要素は、参照アクションがアトミックか複合的かです。

  • アトミック: 極小の単独タスク。モジュール式のアプローチでは、エージェントがアクションを自由自在に組み合わせて高度な目標を達成できます。また、アクションをさまざまなトピックで使い回す場合にも役立ちます。
  • 複合的: 複数のサブタスクで構成される複雑なタスク。複合的なアクションのメリットは、エージェントがタスクを完了するために実行する正確な手順を管理できることです。

入出力

Agentforce では、各エージェントアクションに少なくとも 1 つの入力が必要です。つまり、基盤となるフロー、Apex、プロンプトテンプレートにも少なくとも 1 つの入力が必要ということです。たとえば、ホテルの予約を検索する場合、入力はゲストのメールアドレスか予約番号になります。AI エージェントは会話をしながら自律的に情報を収集し、アクションをトリガーして入力を渡すために必要な詳細が揃っているかどうかを判断します。

また、各アクションに少なくとも 1 つの出力が必要です。アクションをどのように構築するかによって、出力の内容、その使用方法、会話中のユーザーに表示するかどうか、どのように表示するかが決まります。完全に実装されていないテストアクションも思い切って試してみます。自分のアイデアが実際どのように機能するか確認できるためです。

Coral Cloud の参照アクション

ビジネスプロセスと、Apex、フロー、プロンプトテンプレートのさまざまな設計方法を検討した後、Coral Cloud のプロジェクトチームは「予約管理」トピックの参照アクションを提案しました。

  • メールで予約を取得: ゲストのメールアドレスを使用して、既存の予約を検索するフロー
  • 番号で予約を取得: 予約番号を使用して、既存の予約を検索するフロー
  • 予約確認を送信: ゲストに予約の詳細が記載された確認メールを送信する Apex クラス
  • 予約を作成または更新: 予約が存在しない場合は新規予約を作成し、存在する場合はレコードを更新するフロー
  • 予約をキャンセル: 既存の予約をキャンセルするフロー。このフローは、キャンセル確認メールを作成し、将来の予約を促すパーソナライズされたオファーを追記して送信するプロンプトテンプレートを呼び出します。
  • 返金を開始: 特定の条件を満たした場合に、予約のキャンセルに伴う返金を処理するフロー

参照アクションからエージェントアクションへ

ユースケースに必要なフロー、Apex、プロンプトテンプレートをすべて作成しようとすれば、時間がかかることがありますが、カスタムエージェントアクションにすれば簡単です!

カスタムアクションを作成するときは、アクションの表示ラベルと API 参照名に既存の参照アクションの名前と API 参照名が自動的に入力されます。カスタムアクションの指示と各入出力にも、参照アクションの説明を基に自動入力されます。

アクションの指示は、特定のアクションがどのようなことを行い、どの時点でトリガーすべきかを AI エージェントに伝えます。指示が適切に記述されていれば、アクションが正確かつ一貫した方法で実行されます。アクションの指示の最適化についての詳細は、アクションの指示のベストプラクティスを参照してください。

Coral Cloud のユースケースに一連のアクションが設定されました。そこで、プロジェクトチームはこのアクションをトピックに割り当てます。これで、プロトタイプをテストして、そのビルディングブロックを改良することができます。

パフォーマンスを評価する

Agentforce でプロトタイプを設定したら、AI エージェントをテストして、そのパフォーマンスを確認することが大切です。AI エージェントをテストする場合、2 つのオプションがあります。

Coral Cloud のチームは、ユーザーがホテルの予約時に行う可能性がある質問やリクエストで AI エージェントをテストします。続いて、次の点を確認します。

  • エージェントがユーザー入力を正確に解釈しているか?
  • 適切なアクションを起動しているか?
  • 役に立つ正確な応答を提示しているか?
  • ビジネスプロセスを適切に実行し、会社のポリシーやルールを遵守しているか?

Coral Cloud のチームはテスト結果に基づいてトピックの指示を改良し、AI エージェントで反復処理を続けます。注意点として、テストプロセス中にエラーが発生した場合は、AI エージェントの権限を確認してください。

最後の仕上げ

Coral Cloud のチームはプロトタイプを改良していきながら、ToDo リストの数項目を完了する必要があります。

  • 標準のエスカレーショントピックをカスタマイズし、必要に応じて会話が人間のサービス担当にルーティングされるようにする。
  • AI エージェントとやり取りするユーザーを検証する認証ソリューションを構築する。
  • AI エージェントをカスタマーチャネルに接続する。

Coral Cloud の Sandbox 環境で AI エージェントが信頼性をもって正確に動作するようになったら、Nora とそのチームは AI エージェントを本番にロールアウトするリリース計画を作成します。その後も、エージェントを監視して、エージェントの設計を改良する反復処理を継続します。

強固な基盤

AI エージェントの計画と設計で大切なのが強固な基盤を築くことであることがわかりました。ユースケースと目標を特定して、データ計画を検討し、ユーザーエクスペリエンスを考慮して、プロジェクトの技術要件をまとめる必要があります。潜在的なリスクに対処し、ビジネスプロセスを定義して、AI エージェントが組織の運用上、セキュリティ上、法律上、倫理上、規制上の要件に適合していることを確認します。

エージェント設計にウォーターフォール手法を用いるような間違いをしてはなりません。つまり、段階的な線形計画に従って開発し、リリースする必要はありません。Agentforce ソリューションをあらゆる角度から検討しながら、Sandbox 環境で AI エージェントを実際に操作して、プロトタイプを作成し始めます。そうすれば、最終的にうまくいかないかもしれない計画に、最初から過剰な時間を費やすことがありません。綿密な計画と継続的な試行を併用すれば、組織に画期的な価値をもたらす信頼性の高い AI エージェントをロールアウトできます。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む