エージェントのプロトタイプを作成する
学習の目的
この単元を完了すると、次のことができるようになります。
- Agentforce のユースケースのカスタムサブエージェントを設計する。
- エージェントアクションのフロー、Apex、プロンプトテンプレートを計画する。
- 参照アクションを設計する際の考慮事項を説明する。
Trailcast
このモジュールの音声録音をお聞きになりたい場合は、下記のプレーヤーを使用してください。この録音を聞き終わったら、必ず各単元に戻り、リソースを確認して関連付けられている評価を完了してください。
プロトタイプの作成方法
Nora とそのプロジェクトチームは、Agentforce プロジェクトの計画に取り組みながら、AI エージェントを構築し、Sandbox 環境で試行してきました。この単元では、チームのアプローチを順番に見ていき、実際に操作して各自のソリューションで反復処理を行えるようにします。
まず、Coral Cloud が予約管理ユースケース用に作成するサブエージェントの設計に Nora がどのように取り組むか確認しましょう。
会話の下準備をする
サブエージェントは Agentforce の重要なコンポーネントです。サブエージェントに AI エージェントの目標が定義され、その目標を達成するために必要なコンテキストや方向性が示されるためです。
ユーザーが AI エージェントとチャットし始めると、バックグラウンドで Agentforce の頭脳である推論エンジンが大規模言語モデル (LLM) と連携して、会話の曖昧さを取り除き、ユーザーのインテントを明確にします。続いて、エージェントは開始サブエージェントとして定義されたサブエージェントに移ります。デフォルトでは、エージェントルーターです。これは、最近の会話履歴とエージェントが使用可能なサブエージェントに基づいて、選択すべきサブエージェントをエージェントに案内する特別なサブエージェントです。
サブエージェントを設計する
Agentforce にはサブエージェントの設計に役立つツールが組み込まれていますが、Nora は標準サブエージェントを選択することや、既存のサブエージェントを編集することもできます。Nora は、サブエージェントの各要素を確認した後、その名前、説明、指示を簡単に作成できます。
名前
サブエージェントの名前には、その成すべきジョブが反映されている必要があります。Coral Cloud のユースケースにおいて、成すべきジョブは予約管理です。そのため、新しいサブエージェントの名前は「予約管理」になります。エージェントにサブエージェントが複数ある場合は、似通った名前にしないようにします。名前が紛らわしいと、推論エンジンがサブエージェントを区別できなくなるためです。
説明
説明では、サブエージェントの役割と、このサブエージェントに分類すべきユーザーリクエストの種別を 1 ~ 3 文で記述しします。つまり、どのようなユーザーメッセージでこのサブエージェントをトリガーすべきかを説明します。
Coral Cloud の説明の最初のバージョンは次のとおりです。「ゲストのホテルの予約、確認、旅程に関連する質問に回答し、リクエストに対応します。」
デフォルトでは、名前フィールドと説明フィールドがエージェントルーターとともに使用され、会話の中でどのタイミングでサブエージェントを使用するかが決定されます。エージェントは、そのエージェントに割り当てられているすべてのサブエージェントの名前と説明を、ユーザーの質問またはリクエスト、および直近の会話履歴と照らし合わせて比較します。そのコンテキストとエージェントルーターの指示に基づいて、エージェントは最も適したサブエージェントを選択します。
サブエージェントのルーティング動作はカスタマイズできます。詳細はオンラインヘルプで確認してください。

Coral Cloud がサブエージェントの 2 つ目のバージョンでエージェントの機能を拡張する場合、プロジェクトチームは説明を更新して、予約の変更と作成という実行すべき追加のジョブを含めることができます。
指示
指示 (推論指示と呼ばれることもあります) は、サブエージェントのコンテキストで会話をどのように処理するかをエージェントに伝えるガイドラインです。
指示には、プログラムロジック (Agent Script で記述) と自然言語プロンプトの組み合わせが含まれます。プログラムロジックは、エージェントのワークフローとビジネスルールを厳密に定義することで、必要に応じて、定義された予測可能なパスに沿ってエージェントが進めるようにします。自然言語プロンプトは、エージェントが会話をより柔軟に進められるようにします。
Coral Cloud のサブエージェントに対する自然言語での指示の例を示します。「予約の変更を確定する前に、必ずゲストに予約の変更の詳細を確認してください。」
ただし、Coral Cloud が LLM に指示を誤って解釈される余地を与えたくない場合もあります。たとえば、「チェックイン日の 2 日前までにキャンセルされていない限り、予約を返金しないこと」というプロンプトを追加する代わりに、返金条件を評価するプログラム式を指示に記述できます。
エージェントのプロトタイプを作成するときは、サブエージェントの指示を最後に作成することをお勧めします。アクションにロジックをどの程度組み込んだのか、あるいはエージェントにどの程度独自で判断させるのかを把握しなければ、効果的な指示を記述することはできません。
実際に使ってみる
予約管理サブエージェントの内容が固まってきたため、Coral Cloud は、このサブエージェントに追加する適切なカスタムアクションについての検討を始めます。幸い、Coral Cloud は前の単元でホテル予約に関連するビジネスプロセスをすでに定義しており、その多くはカスタムアクションに落とし込むことができます。では、それらのカスタムアクションはどのように構築すればよいのでしょうか。
嬉しいことに、カスタムアクションはゼロから作成する必要がありません。実際のところ、カスタムアクションはすでに使い慣れた Salesforce テクノロジーに基づいています。カスタムアクションは、Agentforce で使用したい既存のプラットフォーム機能 (呼び出し可能な Apex クラスや REST Apex クラス、自動起動フロー、プロンプトテンプレート、外部サービス、MuleSoft API) を基盤に構築します。
Agentforce ではこの基盤となる機能を参照アクションといい、これは Salesforce Platform の機能を有効活用する優れた手法です。
参照アクションの設計上の考慮事項
Coral Cloud では、エージェントアクションの基盤となる参照アクションの設計にどのようなアプローチを採用しているのでしょうか? 以下は、チームが考慮する要素の一部です。
確定的かプロンプトベースか
エージェントアクションの基盤となるプラットフォーム機能を開発するときは、最初にユースケースに関連するビジネスプロセスやタスクを確認します。続いて、プロセスやタスクを確定的にするかプロンプトベースにするかを決定します。
-
確定的: 呼び出し可能な Apex クラスまたは REST 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 つのオプションがあります。
-
Agentforce Builder で手作業でテストする。
-
テストセンターで一括テストする。
Coral Cloud のチームは、ユーザーがホテルの予約時に行う可能性がある質問やリクエストで AI エージェントをテストします。続いて、次の点を確認します。
- エージェントがユーザー入力を正確に解釈しているか?
- 適切なアクションを起動しているか?
- 役に立つ正確な応答を提示しているか?
- ビジネスプロセスを適切に実行し、会社のポリシーやルールを遵守しているか?
Coral Cloud のチームはテスト結果に基づいてサブエージェントの指示を改良し、AI エージェントで反復処理を続けます。注意点として、テストプロセス中にエラーが発生した場合は、AI エージェントの権限を確認してください。
最後の仕上げ
Coral Cloud のチームはプロトタイプを改良していきながら、ToDo リストの数項目を完了する必要があります。
- 標準のエスカレーションサブエージェントをカスタマイズし、必要に応じて会話が人間のサービス担当にルーティングされるようにする。
- AI エージェントとやり取りするユーザーを検証する認証ソリューションを構築する。
-
AI エージェントをカスタマーチャネルに接続する。
Coral Cloud の Sandbox 環境で AI エージェントが信頼性をもって正確に動作するようになったら、Nora とそのチームは AI エージェントを本番にロールアウトするリリース計画を作成します。その後も、エージェントを監視して、エージェントの設計を改良する反復処理を継続します。
強固な基盤
AI エージェントの計画と設計で大切なのが強固な基盤を築くことであることがわかりました。ユースケースと目標を特定して、データ計画を検討し、ユーザーエクスペリエンスを考慮して、プロジェクトの技術要件をまとめる必要があります。潜在的なリスクに対処し、ビジネスプロセスを定義して、AI エージェントが組織の運用上、セキュリティ上、法律上、倫理上、規制上の要件に適合していることを確認します。
エージェント設計にウォーターフォール手法を用いるような間違いをしてはなりません。つまり、段階的な線形計画に従って開発し、リリースする必要はありません。Agentforce ソリューションをあらゆる角度から検討しながら、Sandbox 環境で AI エージェントを実際に操作して、プロトタイプを作成し始めます。そうすれば、最終的にうまくいかないかもしれない計画に、最初から過剰な時間を費やすことがありません。綿密な計画と継続的な試行を併用すれば、組織に画期的な価値をもたらす信頼性の高い AI エージェントをロールアウトできます。