この記事はバージョン Summer ’26 において執筆しています。
現在の動作と異なる場合がありますので、ご認識おきください。
グローバル展開している組織や、複数言語でのカスタマーサポートを提供している環境において、Agentforceに多言語の社内ナレッジを学習(グラウンディング)させる要件が増加しています。
本記事では、Lightning Knowledgeの翻訳機能を活用し、Data 360でのベクトルインデックス構築から、プロンプトテンプレート経由でAgentforceにRAG(Retrieval-Augmented Generation)を実装するまでの全体の流れと設定の考え方を解説します。
Knowledgeの取り込み、レトリーバーの作り方、プロンプトテンプレート作成について、基本的な流れと設定手順は以下記事の「Step 1: データ基盤の整備 (Data Cloud & Knowledge)」と「プロンプトテンプレートを作成」をご覧ください。
1. Lightning Knowledgeの多言語対応とData 360への取り込み
【公式ドキュメントに基づく仕様】
Lightning Knowledgeで多言語をサポートするには、ナレッジ設定から複数言語を有効化し、記事の翻訳バージョンを作成します。データモデル上、翻訳された記事は KnowledgeArticleVersion オブジェクトのレコードとして管理され、Language 項目で各言語が識別されます。
【実装アプローチと見解】
Data 360への取り込み時には、標準のSalesforce CRMコネクタを使用して KnowledgeArticleVersion をデータストリームとして取り込みます。
DMOへのマッピングの際、データストリームの Language と Knowledge Article Version DMO の Language とを紐づけるようにします。
- 英語版Knowledgeを公開
- DMOマッピング
- 取り込み確認
日本語の記事から英語翻訳レコードを作成して公開します。

Language 同士をマッピングします。

en_US のナレッジDLO取り込みができたことを確認できました。(この後DMOレコードも生成されます)

2. Data 360での検索インデックス作成とレトリーバーの作成
【公式ドキュメントに基づく仕様】
Data 360に取り込んだKnowledgeデータをRAGで利用するためには、検索インデックス(Search Index)を作成する必要があります。対象のテキストデータはシステムによって自動的にチャンク化(細分化)され、ベクトルエンベディングとして保存されます。このプロセスにより、キーワードの完全一致ではなく、セマンティック(意味的)な検索が可能になります。
また、プロンプトテンプレートからData 360のインデックスを検索するには、AI モデル > 取得から「Retriever(レトリーバー)」を作成します。レトリーバーの新規作成時に、ターゲットとして先ほど作成したSearch Indexを指定して有効化します。
【実装アプローチと見解】
多言語のナレッジをベクトル化すると、同一記事の各言語版チャンクがインデックス内に並存することになります。エンベディングモデルが各言語のチャンクをベクトル空間に配置するため、ユーザーが入力したプロンプトの言語に近い意味合いを持つチャンクが、自動的に上位にスコアリングされる仕様として機能します。
また、言語ごとに別々のレトリーバーを作成するのではなく、全言語を含んだ1つのSearch Indexに対して単一のレトリーバーを構成するアーキテクチャを推奨します。言語の分岐はプロンプトテンプレートからの入力変数に任せることで設定の複雑化を防ぎ、メンテナンスコストを抑えることができます。

Language 項目を追加することで、プロンプトテンプレートからパラメーターを渡すことができるようになります。3. プロンプトテンプレートでのRAG実装
【公式ドキュメントに基づく仕様】
プロンプトビルダーを使用し、Agentforceから呼び出されるテンプレートを作成します。テンプレート内のリソースとして、作成したレトリーバーを挿入し、検索クエリとしてユーザーの入力などの変数をマッピングします。
【実装アプローチと見解】
プロンプトの指示文には言語に関する内容を含める必要はありません。プロンプトテンプレートの入力変数にテキストの Language 変数を設け、レトリーバーの検索パラメーターにその Language を指定します。
- レトリーバーパラメーター指定
- プレビュー結果
レトリーバーの動的パラメーター Language に Input:Language をセットします。

プレビューで英語ナレッジが取得されて英語で回答を生成していることが確認できます。

4. Agentforceアクションとしての設定
【公式ドキュメントに基づく仕様】
作成し有効化したプロンプトテンプレートは、Agentforceエージェントの「アクション」として割り当てることができます。Agentforce Builderで対象のエージェントを開き、エージェントアクションの参照先として該当のプロンプトテンプレートを指定します。
【実装アプローチと見解】
エージェントがメッセージングセッションの「メッセージングユーザーの言語」MessagingSession.EndUserLanguage にアクセスできるよう、変数定義に linked variable を記述します。
variables:
EndUserLanguage: linked string
source: @MessagingSession.EndUserLanguage
description: "This variable may also be referred to as MessagingEndUser ContactId"
EndUserLanguage 変数を使用して、プロンプトテンプレートを実行します。以下サンプル。
subagent product_support:
(省略)
reasoning:
instructions: ->
run @actions.generate_knowledge_answer
with "Input:Language" = @variables.EndUserLanguage
with "Input:Customer_Question" = @system_variables.user_input
| 検索結果にない情報は回答に含めないでください。
トーン: 専門的かつ分かりやすい言葉遣いで回答してください。
回答方式:プロンプトテンプレートからの回答文をあなたの判断で削らないでください。
不明な場合: 関連する情報が見つからない場合は、正直に「情報が見つかりませんでした」と答えてください。
actions:
generate_knowledge_answer: @actions.generate_knowledge_answer
with "Input:Language" = ...
with "Input:Customer_Question" = ...
(省略)
actions:
generate_knowledge_answer:
description: "ナレッジ記事に基づいて、ユーザーの質問に対する回答を生成します。"
inputs:
"Input:Customer_Question": string
label: "Customer Question"
description: "ユーザーの質問文をセットする。"
is_required: True
"Input:Language": string
label: "Language"
description: "ユーザーが使用する言語をセットする。"
is_required: True
(省略)
outputs:
promptResponse: string
label: "Prompt Response"
description: "The prompt response generated by the action based on the specified prompt and input."
is_displayable: True
filter_from_agent: False
(省略)
target: "generatePromptResponse://Generate_Knowledge_Answer"
require_user_confirmation: False
include_in_progress_indicator: False
label: "Generate Knowledge Answer"

5. まとめ
【公式ドキュメントに基づく仕様】
Salesforceプラットフォーム上での多言語RAG実装は、Lightning Knowledgeの翻訳機能、Data 360の標準コネクタとSearch Index、そしてレトリーバーという標準機能の組み合わせによって実現されます。これにより、外部のベクトルデータベースを構築・同期することなく、セキュアな環境内で完結したセマンティック検索とグラウンディングが可能です。
【実装アプローチと見解】
多言語対応においては、言語ごとにレトリーバーやアクションを細分化するのではなく、ナレッジのインデックスを単一に保ち、プロンプトテンプレート(LLMへのシステムプロンプト)の変数制御によってユーザーへの出力言語を最適化するアーキテクチャが、設定の複雑化を防ぎメンテナンス性を高めます。エージェントへデプロイする前の段階として、Prompt Builderのテスト機能を利用し、様々な言語のクエリに対して正確にナレッジが取得され、ユーザーの意図した言語で回答が生成されるかを入念に検証することを推奨します。
参考URL
Lightning Knowledge の記事の翻訳
取得拡張生成を使用したナレッジのグラウンディング
Agent Script Reference: Variables
Guide to Understanding Multi-Language Support in Agentforce





読者の声