AgentforceのAgent制御ノウハウ第2弾

こんにちは。エンジニアの和田です。

今回は、AgentforceのAgent制御のノウハウについて、第1弾に引き続き、第2弾をお届けします。

本記事では以下の内容を取り上げます。

  • Actionの効果的な選ばせ方
  • Off Topicの扱い
  • Agent Actionに設定するPrompt Templateのモデルの調整

なお、Agent制御に効果的なノウハウは、Agentforce自体のアップデートや、Agentの内部で利用されるLLMのアップデートによって変化する可能性があります。この記事の内容は、2025年6月現在のものであることにご留意ください。

Actionの効果的な選ばせ方

「Actionの効果的な選ばせ方」と書きましたが、Actionを作成する際の説明をきちんと書けば、Instructionにあまり書かなくても案外適切に選んでくれることが多いです。Instructionを記述しすぎるとコンテキスト長が増大する問題があるため、Instructionには不必要な指示まで書く必要はありません。

しかし、明確にこういう時にこのActionを使ってほしいというのが決まっている場合は、Instructionに記載したほうがよいでしょう。

特に次の場合は、記載したほうがよいです。

  • 1つの目的に対して、複数のActionを試してほしい場合(指示しないと、1つのActionしか試さないことがあるため)
  • ユーザーからの質問とActionの結びつきが遠い場合(例: 「Aをしたいです」という社内問い合わせに対して、社内制度により、Aという用語からすぐにはイメージできないBというツールを使う必要がある場合)

本当に明確で厳格な基準がある場合は、非決定的な振る舞いをするAgentとの相性がそもそもあまり合わないかもしれません。代わりにFlowやApexを作成して厳格なロジックを構築するという手段も考えられます。ただ、厳格なロジックを構築する場合は、Agentで言うところのActionに相当する部分が多数存在すると複雑になり管理が大変になるという問題はあります。

Off Topicの扱い

Agentforceは、ユーザーからの問い合わせに対して、予め設定したTopicを選んで実行するわけですが、どのTopicにも該当しないと判断した場合、Salesforceが定めたOff TopicというTopicが選ばれます。 しかし、このOff TopicはSalesforceが予め定めたInstructionに従って回答することになり、開発者が直接カスタマイズする余地がありません。したがって、開発者の意図しない回答をするおそれがあります。

ただ、ある程度の対処法はあります。それは、自前でOff Topicに相当するTopicを作成して、そちらに誘導するようにすることです。

"Others"のようなTopicを作成して、AgentがTopicを選定するのに参考とするClassification Descriptionに、他のどのTopicにも当てはまらない場合はこちらを選ぶように記載しておきます。そして、Classification DescriptionやInstructionに、

NEVER SELECT "Off_Topic."

などの文言をたくさん書いておきます。

こうすることでOff Topicを呼ぶ可能性がかなり減ります。 とはいえ完全に防ぐことはできません。 開発者の意図しない回答をするのを防ぐためにも、今後、Off Topic自体を開発者が編集できるようなアップデートを期待したいところです。

Agent Actionに設定するPrompt Templateのモデルの調整

AIエージェントの振る舞いは、利用するLLMのモデルによって変わります。

Agentforceの場合、Agent自身が使用するLLM(すなわち、Atlas推論エンジンが用いているLLM)は2025年6月現在、GPT-4oに固定されており変更できません。

All Agentforce reasoning engine calls use OpenAI GPT-4o, and in some cases Azure OpenAI GPT-4o. You can't select a different model for AI agents. 引用元: Large Language Model Support: Salesforce Help

しかし、Agent自身ではなく、Agent Actionとして設定できるPrompt Templateでは、LLMのモデルを選択することができます。 このこと自体は、Prompt Builderを見ればすぐにわかることなので、ご存知の方も多いかと思います。

注目すべきは、Prompt Templateで用いるLLMのtemperatureを調整できる点です。

temperatureについて念のため解説しますと、LLMの回答の多様さを決めるパラメーターになります。高い数値ほど多様な回答が、低い数値ほど確定的な回答が得られます。そのため、Prompt Templateを実行した際の挙動に関係してきます。

このtemperatureは、Prompt Builderでは直接変更できないのですが、Model Builderを用いれば、temperatureを変えたモデルを用意することが可能です。

Einstein Studio > Model Libraryと進み、対象のモデルを選択して、New Configurationを選択すると、temperatureを調節することができます。

Data CloudのEinstein Studio > Model Libraryと進んでGoogle Gemini 2.0 Flashを選択した画面。右上にNew Configurationというボタンがある
Model Libraryでモデルを選択した画面

右下のAdvanced SettingsにTemperatureの調節つまみがある。その下にSaveボタンがある
New Configurationを押した後のModel Playgroundの画面
右下でtemperatureを調節できる

保存すると、temperatureを変更したモデルをPrompt Builderで利用できるようになります。

詳しくはSalesforceの対象ヘルプページをご参照ください。

もし、AgentがActionとして用いるPrompt Templateの応答に一貫性がない場合は、この方法でtemperatureを下げることで、振る舞いをより制御しやすくなります。

おわりに

以上、2回にわたって、AgentforceのAgentをうまく制御するためのノウハウをご紹介しました。

実際にAgentを作成する際は、プロンプトをいろいろと調整して、動作を見ながら試行錯誤することになると思います。非決定的な振る舞いをするAIが相手ですから、なかなか期待通りに動かず、もどかしさを感じることがあるかもしれません。

そんなときに、全2回の記事でご紹介した内容が少しでもお役に立てば幸いです。

最後までお読みいただきありがとうございました。