AgentforceのLLMプロバイダを変更して何が起こるのかを試してみる

みなさんこんにちは、エンジニアの浅見です。

今回の話題はAgentforceのデフォルトモデルの設定に関する話題です。 これまで、Agentforceでは「OpenAI」のモデルをデフォルトモデルとして使用してきたのですが、最近になって「Anthropic」を選択できるようになりました。 今回は、このデフォルトモデルの違いについて公式ページの情報を整理したのち、実際に使ってみてどんな違いがあったのかを書いていきます。 皆様がこれからAgentを開発するにあたって、最適なモデルを選択するのに本記事が少しでもお役に立てれば幸いです。

なお本記事は執筆時点の情報であり、今後変更になることがございますのでご承知おきください。


Agentforceデフォルトモデル

デフォルトモデルとは?

さて、AgentforceのLLMを利用した機能といえばプロンプトテンプレートが馴染み深いですね。 Agentまでは作ったことがなくとも、プロンプトテンプレートを作ったことならありますという方もいらっしゃるかと思います。 プロンプトテンプレートはプロンプトビルダーで作成するわけですが、プロンプトビルダーには利用するモデルを選択する箇所があります。 実はプロンプトビルダーで選択できるモデルはなかなか豊富かつ更新も早く、例えば今年(2025年)の8月頭に利用開始となったChatGPT-5は、なんと同じ月の下旬あたりには利用可能になっていました。 というわけで、プロンプトビルダーに関していえば、選択できるモデルの豊富さはAgentforceの強みの一つと言っても良いのではないかと思います。

一方で、プロンプトテンプレートが利用するLLMとは別に、Agentforceそのもの(正確に言えばAtlas推論エンジン)が利用するLLMがあります。 Atlas推論エンジンの役割は、ざっくりいえば、Agentが与えられたタスクに対して何をどの順番で実行すべきかを決めることです。 したがって、Agentforceが真価を発揮するであろう自律型AgentのコアはAtlas推論エンジンにあると言っていいでしょう。 するとこの部分に使われているLLMをいいモデルに変えたいと思うのですが、変えられるものなのでしょうか? 実は最近になってこのモデルが変更できるようになったのです。 これが今回のテーマである「デフォルトモデル」です。

デフォルトモデルの変更方法と利用可能なモデル

デフォルトモデルは以下の手順で変更することができます。

  1. Salesforceの[設定]に移動します。
  2. クイック検索ボックスに「Agentforce Agents」と入力し、検索結果を選択します。
  3. [Select Default Model for Agent]セクションで設定したいモデル(プロバイダ名)を選択します。
  4. 設定を保存します。

デフォルトモデルの変更箇所

画像にある通り、デフォルトモデルは以下の2種類のプロバイダから選択することができます。

  • OpenAI
  • Anthropic

これだけだとプロバイダ名しか分からず、具体的にどのLLMモデルが使われるのか分かりません。 これについては、公式ドキュメントに以下の記載があります。

OpenAI OpenAI is the default and original model provider for Agentforce and supports all standard actions. Agentforce has used OpenAI since its inception, proving its effectiveness, speed, and reliability. Agentforce with OpenAI uses GPT 4 Omni.

Anthropic on Amazon Bedrock Agentforce with Anthropic uses Claude Sonnet 4. Because the Salesforce-managed instance of Anthropic is hosted on the Salesforce instance of Amazon Bedrock:

この記述から、実際に利用されるモデルは以下であることが分かります。

  • OpenAI: GPT-4 Omni
  • Anthropic: Claude Sonnet 4

また、後者の説明文はBecause...と続いており、そのアーキテクチャに重要な違いがあることを示唆しています。 この点について、公式ドキュメントにはさらに以下の記述があります。

The Salesforce-managed instance of Anthropic is the first LLM provider that’s fully contained within the Salesforce trust boundary. All LLM traffic remains within the Salesforce virtual private cloud (VPC) enabling a highly secure network architecture.

つまり、AnthropicはSalesforce自身のプライベートネットワーク(VPC)内で動作するため、セキュリティ面でOpenAIとは根本的な違いがある、ということです。 この辺りのAgentforce環境特有の相違点については後であらためて整理します。

変更時の注意点

デフォルトモデルの設定を変更する際には、一点重要な注意点があります。 この設定はSalesforce組織全体で共通の設定であり、エージェントごとに個別のモデルを指定することはできません。

したがって、デフォルトモデルを切り替えると、既存のすべてのエージェントの動作に影響が及ぶ可能性があります。本番環境で既にエージェントが稼働している場合は、切り替え前にSandbox環境で十分なテストを行い、既存エージェントの挙動に変化がないか確認することを強く推奨します。

ただしあくまでもこの仕様は現状のものです。 エージェントの「デフォルトモデル」ですから、特段モデルを設定していない場合に選択されるモデルという意図があるようには思いますので、今後のアップデートでエージェントごとにモデルを設定できるようになることを期待しております。

対象モデルの一般的な特性比較

一旦Agentforceの環境を離れて、まずはそれぞれのモデルが持つ一般的な特徴を見てみましょう。 (あえて)Gemini 2.5 Proに聞いてみると、それぞれの相違点は以下の通りであると教えてくれました。

特徴 GPT-4 Omni (OpenAI) Claude Sonnet 4 (Anthropic)
強み マルチモーダル対応(テキスト、音声、画像)、リアルタイムでの高速な対話 長文読解、複雑な推論、コーディング能力、より大きなコンテキストウィンドウ
応答速度 非常に高速 GPT-4oに比べるとやや遅いが、精度を重視
最適な用途 チャットボット、リアルタイムアシスタント、多機能なAIアプリケーション 専門的な文書の分析・要約、複雑な問題解決、開発支援

簡単に言うと、GPT-4 Omniは「万能で素早いアシスタント」Claude Sonnet 4は「じっくり考えて深い答えを出す専門家」といったイメージです。

基本方針としては、軽めのタスクであればスピード重視のGPT-4 Omniを使い、重めのタスクであれば精度を出すためにClaude Sonnet 4を用いるのが良さそうです。

Agentforce環境における違い

一般的な特性比較を見ると、「応答速度が求められる簡単なタスクはOpenAI、複雑で精度の高い応答が必要なタスクはAnthropic」という使い分けが考えられます。 しかし、Agentforceの環境においては、以下のような理由によりその選択はもう少し複雑になります。

パフォーマンスとシステムの最適化

最も重要な考慮事項は、Agentforceの内部システムがOpenAIに合わせて最適化されてきたという点です。

公式ドキュメントで「OpenAIは高速で信頼性が高い」とされているのはこのためでしょう。Agentforceに求められる「リアルタイムでの応答速度」と「安定性」という観点では、現状、システムに深く統合されたOpenAIに分があります。

このため、一般的には高性能とされるAnthropicに切り替えても、必ずしも応答の精度が向上するとは限りません。期待した結果が得られない場合は、モデルを切り替えるだけでなく、エージェントへの指示が、選択したモデルの特性に合っているかを見直すことが重要になります。

セキュリティアーキテクチャ

次に、セキュリティアーキテクチャの違いです。

  • OpenAI: Salesforceから一度外部のネットワークに出て、OpenAIのAPIを利用します。データはSalesforce Trust Boundary を一度通過しますが、通信は暗号化され、ゼロデータ保持ポリシーが適用されます。
  • Anthropic: Salesforceが管理するAWS上のプライベートな領域でモデルが動作します。データはSalesforceVPC内で完結し、外部ネットワークに出ることがありません。

このアーキテクチャの違いから、データをSalesforce環境の外に出したくない、という厳格なセキュリティやコンプライアンス要件がある場合には、Anthropicが適しています。

機能制限

また、実用上の違いとして、利用できる機能の範囲が挙げられます。

  • OpenAI: 全ての標準アクションをサポートしている。
  • Anthropic: 利用できる標準アクションが一部に限定される(詳細は公式ドキュメントをご覧ください)。

プロンプトの"感度"の違い

最後に、プロンプトの解釈の仕方、いわゆる「感度」の違いが挙げられます。 公式ドキュメントには、この点について以下のような注意喚起があります。

Compared to OpenAI, Anthropic tends to be more sensitive to the nuances in the input payload. Anthropic returns more accurate and reliable responses if the prompts are clear, concise, and thorough.

これは、OpenAIのモデルが比較的あいまいな指示でも意図を汲み取ってくれるのに対し、Anthropicのモデルはより厳密で、誤解の余地がないような明確な指示を好む、という特性を示しています。

まとめ:Agentforce環境での比較

以上の点をまとめると、Agentforce環境における両者の特性は以下の表のようになります。

観点 OpenAI (GPT-4 Omni) Anthropic (Claude Sonnet 4)
パフォーマンス 高速で信頼性が高い(システムに最適化済み) OpenAIに比べて速度が劣る場合がある
セキュリティ ゼロデータ保持ポリシー ゼロデータ保持ポリシー + Salesforce Trust Boundary内で完結
利用可能な機能 全ての標準アクションをサポート 利用できる標準アクションが一部に限定
プロンプト 比較的簡単な指示でも機能する より明確で詳細な指示が求められる傾向がある

実践編:商談分析エージェントで比較してみた

ここまでは、主に公式ドキュメントから読み解ける情報をご紹介してきました。 ここからは、実際にエージェントを構築し、両モデルを比較した結果と、その過程で見えてきた苦労を共有します。

なお、ここからの内容は随時調査しながら行った検証結果を報告するものであり、今後の情報更新や仕様変更に大きく依存しますのでご承知おきください。

検証に使ったエージェントの概要

今回の検証のために構築したのは、1つのトピックの中に2つのアクション(フロー、プロンプトテンプレート)をこの順で実行する、以下の構成を持つ比較的シンプルなエージェントです。

  • 役割:商談ページのチャットで「分析して」と依頼すると、その商談の状況分析と次のアクションを提案する。

  • 構造:

    • フローアクションが起動:
      • 現在表示している商談の情報を取得。
      • 商談の概要テキストから、フロー内部に用意したプロンプトテンプレートを使い、重要な取引先責任者名と関連ケース名を抽出
      • 取得・抽出した情報をAgentの変数に格納する。
    • プロンプトテンプレートアクションが起動:
      • フローから受け取った変数を使い、最終的な分析レポートをMarkdown形式で生成する。

この構成では、Agentの役割を「フローを起動する」という単純なものに絞り、複雑なデータ処理はすべてフローに任せています。 実はもともとは、より複雑な構成(より多くのアクション)で実験を行っていたのですが出力が安定せず、このエージェントに切り替えたという経緯があるのですが、そちらについては最後におまけとして載せておくことにして、ここではこのエージェントで進めます。

エージェントの詳細

参考までに、このエージェントを構成するトピックの主な設定は以下の通りです。

  • Classification Description: ユーザーから特定の商談レコードIDを指定され、その商談に関する深い分析やレポート作成を依頼された場合に使用します。商談の概要に応じて、関連情報の追加調査も行います。
  • Scope: このトピックは、Salesforce内の商談、取引先責任者、ケースオブジェクトにアクセスできます。指定された商談の詳細を取得し、その内容に基づいて関連する取引先責任者やケースを検索し、収集した情報から包括的な分析レポートを生成することが可能です。

具体的に、推論エンジンに与えた指示(Topic Instructions)と、最終的な分析結果を生成させたプロンプトテンプレートは以下の通りです。

Topic Instructions:

  1. まず、フローアクション"Analyze_Opportunity_Data"を実行します。このフローは商談情報を収集・整形し、その結果(整形済み商談情報、抽出した重要な取引先責任者名、関連ケース名)をそれぞれ指定されたAgent変数に出力します。
  2. 次に、先行するフローが変数に格納した情報一式を入力として受け取り、"Generate_Analysis_Result"アクションで包括的な分析結果を生成します。

Prompt Template (Generate_Analysis_Result):

あなたは、Salesforceのデータに精通したベテランの営業アシスタントです。以下の情報を元に、総合的な分析結果を作成してください。

# 商談情報
{!Current_Opportunity_Information}

# 追加調査:重要な取引先責任者
{!Important_Contact_Name}

# 追加調査:関連ケース
{!Related_Case_Name}

# 分析結果
以下のMarkdown形式で分析結果を出力してください。もし追加調査の情報があれば、それも必ず分析に含めてください。

### 営業状況サマリー
**1. 商談概要:**
(商談の要点を2〜3文でまとめてください)

**2. 潜在的なリスク:**
(提供された全情報から潜在的なリスクを分析し、箇条書きでリストアップしてください)

**3. 推奨される次のアクション:**
(営業担当者が次にとるべき、具体的で実行可能なアクションを2〜3個提案してください)

ご覧の通り、推論エンジンへの指示は「フローを順番に実行する」という非常にシンプルなものです。また、プロンプトテンプレートも、構造化された出力を指示してはいるものの、比較的標準的な書き方と言って良いかと思います。

エージェントの検証

検証にあたっては、株式会社アサミ・フーズという架空の取引先を想定し、複数の取引先責任者、ケース、そして4パターンの商談シナリオを含むテストデータを用意しました。 各商談の概要欄には、「キーパーソンは山田太郎部長」「『製品の仕様に関する問い合わせ』のケースが長期化」といった、関連情報を示唆する文章を意図的に含めています。

具体的には、以下の4つの商談データを使用しました。

商談名 概要(Description)
新商品開発支援システムの導入 顧客の既存システムとの連携が重要なポイントとなる。来週、技術担当者との打ち合わせを予定している。
サプライチェーンDX支援コンサルティング 意思決定のキーパーソンは、山田太郎部長。先日の打ち合わせで、費用対効果について高い関心を示されていた。
販売管理システムの保守サポート契約更新 現在「製品の仕様に関する問い合わせ」のケースが長期化しており、顧客満足度が低下している。この状況を解決することが契約の前提条件。
基幹ERPシステムの全面刷新プロジェクト 現場の推進担当は鈴木花子課長。ただし、過去の「請求サイクルの確認」ケースでやり取りがこじれた経緯があり、信頼回復が急務。

モデル比較の結果

このエージェントを使い、デフォルトモデルを切り替えてテストしてみました。 最終的にはシンプルな構成になったので、多少Anthropicの賢さが見え隠れしたとしてもあまり差は出ないかもしれないと思っていたのですが、得られた結論は想定していたものとは大きく異なりました。

最終的な結論

結論は以下です。

  • OpenAI (GPT-4 Omni):
    • 日本語で構築したエージェントが、期待通りに安定して動作しました。商談の概要からキーパーソンやケースを正しく抽出し、精度の高い分析結果を生成してくれました。
  • Anthropic (Claude Sonnet 4):
    • 後述する紆余曲折の末、エージェントの定義をすべて英語に翻訳してテストしましたが、それでもエラーが解消されず、最終的に安定して動作させることはできませんでした。

今回の検証内容に関して言えば、(日本語環境で)安定した動作を求めるのであればOpenAIが現実的な選択肢であり、「Anthropicは単純な切り替えだけでは機能しない」といって良いと考えています。 ですが前述した通り、Anthropicでは「より明確で詳細な指示が求められる傾向がある」とされており、プロンプトの調整により改善する可能性は大いにあるとみています。 一方で、根本的にシステムプロンプトがAnthropic向けに調整されていないという背景があると考えられますから、我々の努力では完全には解消しない場合もあるかと思われます。

具体的な出力

結論は上で述べた通りなのですが、参考としてOpenAIでの実際の出力を以下に載せておきます。

OpenAIでの出力結果

Anthropicでどのように表示されたのかも載せておきます。

Anthropicでの出力結果

なお、Anthropicではごく稀に(つまり全く再現性がないのですが)、商談の情報が不足している旨の文章がチャットに表示されます。 この文章はおそらく、モデルが推論の過程で生成している中間プロンプトのようなものと推測されますが、その真偽は定かではありません。 詳細は後述しますが、この出力の不安定さはアクションの単純化やプロンプトの調整、言語設定の変更などを実施しても一向に改善される気配はありませんでした。

検証の詳細:Anthropicが動作しなかった理由

では、なぜAnthropicでは最後まで安定してエージェントを動作させることができなかったのでしょうか?その検証の過程は以下の通りです。

最初に試したのは、Apexアクション、フロー、プロンプトテンプレートを複雑に組み合わせ、Agentの推論能力を最大限に引き出す構成でした。しかし、この構成はデフォルトのOpenAIモデルですら動作が安定せず、推論が意図通りに機能しない場面が見られました。構成が複雑だったために失敗の根本原因を特定することが難しく、この状態でAnthropicの推論能力を正しく評価することも困難だと判断し、この構成での比較は断念しました。

そこで、検証の軸をより明確にするため、現在のシンプルなフローベースのエージェントに切り替えました。しかし、ここでAnthropic特有の問題に直面します。

まず、言語の問題です。実は、リリースノートに「English is the only supported language」という記述があることは認識していました。しかし、私たちは以前に別のエージェントをAnthropicの日本語設定で動作させた経験があったため、今回も日本語で検証を進めることにしました。結果として、この構成では期待通りに動作しませんでした。

そのため、原因を言語の問題だと判断し、エージェントの定義をすべて英語に翻訳して再度試しました。しかし、それでも動作は安定しませんでした。この結果から、最終的な原因は、公式ドキュメントにも記載のあった「プロンプトのニュアンスに敏感である」というモデルの特性にあると考えられます。OpenAIが柔軟に解釈してくれていたプロンプトでは、より厳格なAnthropicを安定して動作させるには不十分だった、ということです。 (※解決策としては、出力をXMLタグで囲むなど、より厳格なプロンプトエンジニアリングが必要だったと考えられます。)

最後に

さて、今回はAgentforceのデフォルトモデルについて、公式ドキュメントの整理に加えて実際のエージェントによる検証もしてきました。

結論、現時点(2025年9月)において、日本語環境で安定したエージェントを迅速に構築したい場合、OpenAI (GPT-4 Omni) が現実的な選択肢と考えています。長年のデフォルトモデルとしてシステムに最適化されており、機能の豊富さやプロンプトへの柔軟性など、開発上の利点が多くあります。

一方、Anthropic (Claude Sonnet 4) は、Salesforce Trust Boundary内で処理が完結するという、セキュリティ面で他にはない大きなメリットを持っています。データを組織外に出したくないという厳格な要件がある場合には、非常に魅力的な選択肢となります。また今回の検証では発揮できなかったものの、本来であればClaude Sonnet 4はモデルとしてかなり優れており、その力を発揮することができれば大きな武器となることは明白です。ただし、そのメリットを享受するには、言語の制約(事実上の英語のみ)厳格なプロンプトエンジニアリングが求められるといった、相応の技術的なハードルを乗り越える必要があります。

どちらのモデルを選択するかは、開発するエージェントの要件(セキュリティ、対応言語、複雑さ)に応じて、これらのトレードオフを慎重に評価することが重要であるということを今回の結論としたいと思います。