Agentforce Service Agentとは?
Salesforceの提供する生成AIベースのチャットボットです。
Agentforce Service Agentを試すには?
以下のTrailheadから試すための環境をプロビジョニングできます。
https://trailhead.salesforce.com/ja/content/learn/projects/quick-start-build-your-first-agent-with-agentforce/configure-an-agentforce-service-agent
どんな仕組み?
当然のことながら、無秩序に生成AIを開放しているわけではありません。
無秩序に生成AIを開放すると、以下のような問題が起きるためと考えられます。
- 本来の役割(企業のサービスに関する質問、注文等)を超えた要求をされる可能性がある
- 喋ってはいけないこと(他人のデータ等)を喋ってしまう可能性がある
以下の仕組みで、生成AIに縛りをかけているようです。
- データアクセスについては、Apexまたはアクション経由で実行させる。
- エージェントに対してプロファイルと権限セットを適用する。つまり、あたかも1ユーザであるかのようにエージェントに権限を付与し、それ以外のことは禁じる。
- スクリプトエンジニアリングを開発者に強制する。エージェント作成時に、必須の設定項目としてエージェントのロールや目的を記入させる欄を用意する。
試してみる
旅行ツアーに関する質問をしたら、回答してくれました!Thank youというお礼の言葉にも柔軟に返答してくれています。
悪意のあるユーザに耐えられるか?
ChatGPTは、様々なテクニックでAIを欺くことで、本来ブロックされているはずの有害コンテンツを生成できてしまうことが知られています。
https://japan.zdnet.com/article/35207115/
Agentforce Service Agentを欺いて、他人の個人情報を吐き出させることができると問題です。そうしたことが可能か、簡単に試してみました。会社(org)内のユーザの一覧を吐き出させようとしています。
結果、吐き出してくれませんでした。あの手この手で騙そうとしてみましたが、びくともしません。一般的に、ロールをプロンプトで与えただけでは生成AIは他の指示を与えることでロールを忘れさせることができるので、恐らくは前述の「データアクセスについては、Apexまたはアクション経由で実行させる」という仕組みが効いているのではないかと推測しています。
どこまで柔軟か?
「データアクセスについては、Apexまたはアクション経由で実行させる」という仕組みが効いているならば、柔軟な返答はできないと推測されます。試しに、Trailheadに書かれていない文章で、ビーチに関する旅行ツアーがあるかを聞いてみます。
・・・見つけられなかったようです。(本当は Full moon beach partyがあるのに!)
AIの頭の中がログとして出力されるので、それを見ると、どうやらAIはあくまでアクション(今回はフロー)を選択し、そのInputとしてbeach tourを入れ込んでいるようです。フローは生成AIに基づかないため、単純なDB検索を行い、ヒットしなかったため、見つけられなかったようです。
柔軟さとセキュリティがトレードオフの関係にあり、セキュリティを重視したのではないかと私は推測しています。
まとめ
これらの結果からAgentforce Service Agentは以下のような存在だと考えられます。
- ユーザから送られたチャット文章を、まずは生成AIが解釈をする。
- 生成AIは、事前に与えられたロールに従ってアクションを考える。ロール外の事項に関する質問は断る。
- アクション(データアクセス等)を実行する
少々意外だったのは、生成AIが受け持つ範囲は1~2だけであることです。
データアクセスを伴う処理はアクションで定義されている内容に従うため、顧客の要求に柔軟に答えるためにはアクションを沢山作るか、柔軟に回答できるアクションを作る必要がありそうです。
「ナレッジを基に回答する」という程度であれば作りこみは少なくて済みそうですが、様々な申し込みに対応するには、人間のエージェントが申し込みできるようにするのと同様にアクションを作りこむ必要がある点に注意しましょう。