tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Agentforceのプロンプトビルダーについて - 有効化と項目生成テンプレート

プロンプトビルダーは生成AIに渡す指示に関する設定を行う機能です。用途に応じたプロンプトテンプレートを作成してSalesforceの生成AIの機能の設定で使用します。
※Agentforceだけの用途ではありません。

セールスメールプロンプトテンプレートは、営業チームが取引先責任者またはリード向けにパーソナライズされたメールのドラフトを作成するのに役立ちます。

Field Generation プロンプト テンプレートでは、生成 AI 支援ワークフローを Lightning レコード ページ内のフィールドに取り込みます。ユーザーが LLM によって作成された概要や説明を項目に入力し、顧客とのより生産的な会話を促進できるようにします。

Flex プロンプトテンプレートは、さまざまなオブジェクト種別の可変数の入力を取ります。この柔軟性により、商品やキャンペーンオブジェクトに基づいてニュースレターを生成するなど、さまざまな可能性が広がります。

Einstein設定の有効化

まずはEinstein を有効化の作業が必要になります。プロンプトビルダー設定のグローバル言語と変更セットはオプションで別途オンとオフを切り替えできるようになっています。必要になったときに有効化すれば良い形です。


グローバル言語については以下の意味がありました。必ずしも有効化するほうが適しているというわけではないようです。

Einstein の [設定] で [グローバル言語サポート] をオンにすると、Salesforce サポート言語、エンドユーザー言語、プラットフォーム専用言語を有効にできます。ただし、グローバル言語を使用する場合、データ マスキングや有害性スコアリングなどの Einstein Trust Layer の一部の機能が使用できず、応答がビジネスに適した言い回しでサポート言語よりも最適化されない場合があります。

一般に、LLM では特定の応答言語が正式にサポートされておらず、一部の LLM はすべてのグローバル言語で適切に機能しない可能性があります。適切にローカライズされた応答を提供するために、選択したモデルを応答言語でテストしてください。

プロンプトビルダーの設定メニュー

メニューの中にプロンプトビルダーがあります。


プロンプトビルダーはEinsteinやAgentforceなど生成AIに関係する機能で使います。Agentforceのみというものでは無いので、この時点でAgentforceが有効化されていないくても利用可能です。


プロンプトビルダーの設定画面で管理するのはプロンプトテンプレートです。このプロンプトテンプレートですが、用途に合わせてテンプレートの種類が用意されています。また、カテゴリの欄に記載のとおり、標準とカスタムの形で区別されます。標準のものは参照のみです。編集やコピーなどの操作はできないようになっています。


もし標準のテンプレートとベースに新しいプロンプトテンプレートを作成したい場合は、新しいテンプレートとして保存をつかって新規作成します。不要になった標準テンプレートは無効化ボタンで無効化することでユーザーが誤って利用できないようにできます。


ただし、標準-上書き可能と記載されているものは新しいバージョンとして保存という操作になります。現在上書き可能な標準テンプレートは「ケースの説明を生成 - メッセージングトランスクリプト」と「ケース件名を生成 - メッセージングトランスクリプト」の2種類のようです。どちらもケースに関する操作によるものです。この部分は組織で1つのみ作成できるなど制約があるのかもしれません。

上書き可能なテンプレートの操作チェック

新しいバージョンについて操作を試してみました。「バージョンXXが作成されました」というメッセージで新規バージョンが登録されたことを確認できます。


新しいバージョンが作成されるとボタンメニューの中に、バージョンを削除というボタンが追加されます。不要になったバージョンはここで削除するようです。


複数のバージョンに別れた後ですが、プロンプトビルダー内のバージョン表示のところをクリックすると現在存在するバージョンと作成された日付をチェックできました。

メモ:標準テンプレートの無効化操作は可能かチェック

標準のテンプレートも無効化ステータスに変更できることを確認しました。ボタンはあるけどエラーになるといった落とし穴ではありませんでした。

プロンプトテンプレートの種類

多くのテンプレート種別が用意されています。


それぞれが役割に応じて特化したテンプレートとなりますが、マッチしたものがない場合はFlexプロンプトテンプレートが汎用的に使えるものです。「様々なオブジェクトのレコードを組み合わせて操作する」ような場合もFlexテンプレートの出番とのことです。

他のテンプレート種別でカバーされていない使用事例では、Flex prompt テンプレート種別が最適です。AI を使用して独自のビジネスケースのコンテンツを生成する Flex プロンプトテンプレートを作成します。

カスタムプロンプトテンプレートの作成

項目生成テンプレートの作成です。ケースオブジェクトのカスタム項目に対して概要を出力するテンプレートを用意してみます。


最初に名前や説明、対象オブジェクトなどを指定したあとに、次のプロンプト情報の設定画面が表示されます。

左側:テンプレート設定

基本的には参照のみの用途、モデルを変更したり制限を確認したりできます。

中央と右側

「①プロンプト」「②解決済みプロンプト」「③生成された応答」、この3つの情報が表示されています。クリックすると表示のオンとオフの切り替えがされてパッと見ややこしいですが、よく見たらシンプルな形です。設定で使うのは①です。②と③はテスト、動作チェックの用途で使用します。


プロンプトの設定例です。


COMMENT、SUBJECT、PRIORITY、TYPEは、ケースレコードの情報を利用させたい箇所になります。このままではもちろんAIは認識されません。そこで「リソースを挿入」機能を使います。


設定結果です。青字はリソース挿入した部分(レコードの情報など特定の値を指定する) です。ケースに紐付くケースコメントオブジェクトの情報というような設定もできるようで、その場合は関連リストという表示になっていました。


作業の途中、途中で保存操作を忘れずに行うと安心です。フローなどと同じく有効化を押すまではユーザーに公開されたりはありません。


ある程度形になったら左上のプレビューボタンから動作チェックができるようになっています。関連レコード欄で実際のデータを指定し、その値を元にどのような出力結果となるかをチェックできます。ここで「②解決済みプロンプト」「③生成された応答」のパネルを利用することになります。


解決済みプロンプトですが、以下の役割となっています。

実際の Salesforce レコードデータに基づいてグラウンディングされたプロンプトを確認できます。


JSON形式で項目ごとに値が渡されていることをチェックできます。特に暗号化されているなどそういうことはありませんでした。
※暗号化してくれる機能、Einstein TrustLayerはこの情報を受け取ったあとに動作するのだと思います。


生成された応答は、実際にユーザーに表示される出力結果です。今回の場合は要約された結果をチェックできます。


尚、このときテストでつかったレコードは次のものです。データは英語表記ですが、出力結果は日本語として識別して動作してくれています。


問題なく動くことを確認できたら、有効化します。

プロンプトテンプレートのユーザー提供

ケースの概要を出力するプロンプトテンプレートを作成しました。これを以下の挙動するものとしてユーザーへ提供します。

ケースページにあるカスタム項目Quick Summaryにケースの要約情報を設定する。

Lightningページの動的フォーム有効化

プロンプトテンプレートを有効にするにはLightningページの「動的フォーム」の有効化が必要になります。


ボタンには問い合わせという表示になっていますが、クリックしたらそこで有効化設定が普通にできます。


通常の表示はページレイアウトベースの画面表示となりますが、動的フォーム有効化するとLightningページ側での項目配置管理に切り替わります。


画面左側の項目タブのところでセクションや項目の配置が可能です。便利ですが、画面表示が従来のものとは少し形式が変わることになるので、作業の前には準備が必要です。

プロンプトテンプレートの紐付け

動的フォーム有効化したら、対象の項目をクリックします。今回はQuick Summary項目です。ここにEinstein生成AIの欄があり、プロンプトテンプレートの紐付けができます。


これは入力可能なときに利用できる設定で、参照のみの場合は欄自体が非表示になりました。ユーザーのアクセス権限を考慮した動作が担保されています。


プロンプトビルダーを設定しているとEinsteinアイコンが表示されます。管理者は後々このアイコンを目印にどこでプロントビルダーが使われているかをチェックできます。


動的フォーム有効化後のレコードページです。右側2列表示だったのが1列表示になりました。狭い領域の場合は1列表示までだと思います。


そしてQuick Summary項目のところ、通常のインライン編集アイコンは鉛筆マークですが、星マークつきの鉛筆アイコンになっています。


編集モードにするとEinstein用のボタンが表示され、クリックすることで処理を実行できます。


最後、保存ボタンで値を登録して作業完了です。


これが「項目生成」のプロンプトテンプレートをつかったAI機能の設定から動作までの流れです。自動で保存するのではなく、今回の設定で実現したのはユーザーのデータ入力の補助的な使い方として提供するもので、ユーザーはこの値をそのままつかってもいいし、編集してもいい、使わないという選択肢もできますというものになります。

その他の参考リンク


グローバル言語