experience-content-media-search について
Salesforce CMS、Data Cloud、接続済みソースから既存メディアを探して取得するルーティングスキルです。検索前にソースを選択し、新しい画像の生成や編集は行いません。
主な機能
- 01選択したソースへの検索振り分け
- 02キーワードと分類による CMS 検索
- 03Data 360 ハイブリッド検索
- 04選択用の検索結果表示
- 05選んだ画像 URL のコードへの適用
活用シーン
- 01アプリ用の既存画像の検索
- 02プロジェクト向け素材の閲覧
- 03接続済みソースからのメディア取得
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill experience-content-media-searchインストール後、Claude Code で/experience-content-media-searchを入力して読み込まれたか確認します。
詳細
メディア検索
既存の画像やメディアを検索・取得するための汎用ルーティングスキルです。
対象範囲
このスキルは既存のメディアを検索するためのものであり、新しいメディアを作成するためのものではありません。
ユーザーが次のことを希望する場合に、このスキルを使用してください。
- Salesforce CMS、Data Cloud で画像を検索する
- アプリで使用する既存のビジュアルアセットを探す
- 接続済みのソースからメディアを取得する
- プロジェクトで利用可能な画像を閲覧する
- 特定の写真やグラフィックを見つける
ユーザーが次のことを希望する場合は、このスキルを使用しないでください。
- AI で新しい画像を生成する(画像生成ツールを使用してください)
- グラフィックやデザインを一から作成する
- 既存の画像を編集または変更する
- カスタムのビジュアルや図を作成する
- ストックフォトやロイヤリティフリー画像を検索する(
experience-content-media-stock-image-searchを使用してください)
検索を開始する前に
重要:これはルーティングスキルであり、直接検索するスキルではありません。
ユーザーが画像を探すよう依頼した場合:
最初に必ず ask_followup_question ツールを使用して、検索ソースを提示してください。
- ask_followup_question を使用して、利用可能な検索ソースを選択肢として提示します
- ツールの応答からユーザーの選択を受け取ります
- その後で、選択に応じた適切な検索ツールを呼び出します
してはいけないことの例:
- ユーザーがソースを選ぶ前に、いずれかのツールを呼び出すこと(MCP ツール、ファイルの読み取り、ディスクリプターの確認など)
- 「利用可能な MCP ツールを確認する」こと — ツール呼び出しを通じてツールを調査または検出しないでください
- 直ちに
search_electronic_mediaまたはsearch_media_cms_channelsを呼び出すこと - 利用可能なツールを調べるために MCP ツールのディスクリプターやスキーマを読み取ること
- ユーザーに尋ねずに、使用する検索ソースを決めること
すべきことの例:
- テキストのみで応答し、検索ソースを番号付きリストで提示する
- 「どのオプションを使用しますか?」と尋ねる
- ユーザーが選択を返すまで待つ
- その後に(選択された場合に限り)、ユーザーが選んだツールを呼び出す
このスキルが起動したときの最初の応答は、検索ソースを提示するテキストのみのメッセージでなければなりません。ツール呼び出しは禁止です。例外はありません。
ワークフローの概要
ユーザーは必ず検索ソースを選択する必要があります。この手順を省略することはできません。
このチェックリストをコピーして、進捗を記録してください。
Media Search Progress:
- [ ] Step 1: Check your own tool list for available search tools (no tool calls — just inspect what's in your context)
- [ ] Step 2: Present only the available options to the user as a numbered list (plain text, no tool calls)
- [ ] Step 3: Wait for the user to reply with their selection
- [ ] Step 4: Execute the selected search method (this is the first tool call)
- [ ] Step 5: Present all results to user for selection
- [ ] Step 6: Apply selected image to code
手順 4 より前にツールを呼び出した場合、このスキルの指示に正しく従っていません。
検索ソースの提示(最初の応答)
利用可能なツールを確認するために、ツールの呼び出し、MCP ディスクリプターの読み取り、外部リクエストを行わないでください。
ツールはすでにコンテキストに読み込まれています。現在利用できるツール名を確認してください。これはツール呼び出しではなく、内省です。
手順 1:ツール一覧を確認する(ツール呼び出しなし)
コンテキストにすでにあるツールを確認し、次の名前があるか確認してください。
search_media_cms_channels→ 存在する場合は 「キーワードを使用して検索」 を含めますsearch_electronic_media→ 存在する場合は 「Data 360 ハイブリッド検索を使用して検索」 を含めます- 最後の選択肢として 「その他」 を必ず含めます
手順 2:応答を作成する
実際に利用できるツールに対応するソースのみを含めます。番号は順番に付けてください。
I can help you find that image. Where would you like to search?
[NUMBER]. [SEARCH SOURCE NAME] — [Brief description]
...
[NUMBER]. Other — Provide your own URL or path
Which option would you like to use?
手順 3:停止して待つ
リストを提示したら、停止してください。ツールを呼び出したり、先に進んだりしないでください。ユーザーが選択を返すまで待ちます。
例
両方のツールが利用可能な場合:
I can help you find that image. Where would you like to search?
1. Search using Data 360 hybrid search — Semantic search across Salesforce CMS and connected DAMs
2. Search using keywords — Search Salesforce CMS by keywords and taxonomies
3. Other — Provide your own URL or path
Which option would you like to use?
search_media_cms_channels のみ利用可能な場合:
I can help you find that image. Where would you like to search?
1. Search using keywords — Search Salesforce CMS by keywords and taxonomies
2. Other — Provide your own URL or path
Which option would you like to use?
search_electronic_media のみ利用可能な場合:
I can help you find that image. Where would you like to search?
1. Search using Data 360 hybrid search — Semantic search across Salesforce CMS and connected DAMs
2. Other — Provide your own URL or path
Which option would you like to use?
どちらのツールも利用できない場合:
No automated media search sources are currently configured. Please provide a direct URL or asset library path.
先に進む前に、ユーザーが選択するまで待ってください。
選択された検索方法の実行
ユーザーが番号付きリストから明示的にオプションを選択した場合に限り、この手順に進んでください。
まだオプションを提示していない場合は、まず「検索ソースの提示」セクションに戻ってください。
ユーザーがオプションを選択したら、以下の対応する検索方法を実行してください。
キーワードを使用した検索
ツール: search_media_cms_channels
プロセス:
-
クエリを分析する — ユーザーが何を検索しているのか(主題、属性、分野)を理解します
-
キーワードを抽出する — 画像のメタデータに含まれる具体的な名詞を抽出します
- 分野固有の同義語を使用します
- 最大10語までです
- 例:
- 「高級アパート」 → apartment, villa, penthouse, residence, condo
- 「会社のロゴ」 → logo, emblem, corporate logo
- 「明るい部屋」 → (具体的な名詞がない場合は空)
-
分類語を抽出する — 描写的な特徴、スタイル、雰囲気、カテゴリーを抽出します
- 形容詞と属性のみを使用します
- 例:
- 「川の眺めがある高級アパート」 → Luxury, Premium, Waterfront, Riverside, Panoramic
- 「明るく広々とした部屋」 → Bright, Spacious, Open, Airy, Light
- 「車」 → (描写的な語がない場合は空)
-
ロケールを決定する —
en_US、es_MX、fr_FRの形式を使用します(デフォルト:en_US) -
JSON ペイロードを作成する — 次の正確な構造を作成します:
{
"inputs": [{
"searchKeyword": "keyword1 OR keyword2 OR keyword3",
"taxonomyExpression": "{\"OR\": [\"Taxonomy1\", \"Taxonomy2\"]}",
"searchLanguage": "en_US",
"contentAccessScope": "Public",
"contentTypeFqn": "sfdc_cms__image",
"pageOffset": 0,
"searchLimit": 5
}]
}
フィールドのルール:
searchKeyword:キーワードをOR(スペース・OR・スペース)で結合します。キーワードがない場合は空文字列を使用します。taxonomyExpression:JSON オブジェクト{"OR": ["term1", "term2"]}を文字列化します。分類語がない場合は"{}"を使用します。searchLanguage:アンダースコア区切りのロケール(例:en_US)contentAccessScope:常に"Public"を指定します(認証なしの公開チャネルと公開 Experience Cloud サイトのチャネルの両方が対象です)contentTypeFqn:常に"sfdc_cms__image"を指定しますpageOffset:0から開始し、ページネーションではsearchLimitずつ増やしますsearchLimit:デフォルトは5です。ユーザーが件数を増やすよう依頼した場合は調整します
例:
クエリ:「川の眺めがある高級アパート」
{
"inputs": [{
"searchKeyword": "apartment OR villa OR penthouse OR residence",
"taxonomyExpression": "{\"OR\": [\"Luxury\", \"Premium\", \"Waterfront\", \"Riverside\"]}",
"searchLanguage": "en_US",
"contentAccessScope": "Public",
"contentTypeFqn": "sfdc_cms__image",
"pageOffset": 0,
"searchLimit": 5
}]
}
クエリ:「明るく広々とした部屋」(具体的な名詞なし)
{
"inputs": [{
"searchKeyword": "",
"taxonomyExpression": "{\"OR\": [\"Bright\", \"Spacious\", \"Open\", \"Airy\"]}",
"searchLanguage": "en_US",
"contentAccessScope": "Public",
"contentTypeFqn": "sfdc_cms__image",
"pageOffset": 0,
"searchLimit": 5
}]
}
クエリ:「車の画像」(描写的な語なし)
{
"inputs": [{
"searchKeyword": "car OR automobile OR vehicle OR auto",
"taxonomyExpression": "{}",
"searchLanguage": "en_US",
"contentAccessScope": "Public",
"contentTypeFqn": "sfdc_cms__image",
"pageOffset": 0,
"searchLimit": 5
}]
}
- 正確な JSON ペイロードでツールを呼び出す — ツールを呼び出す前に、応答内でペイロードを提示します
Data 360 のハイブリッド検索を使用した検索
ツール: search_electronic_media
プロセス:
- ユーザーのクエリをそのまま使用します — キーワードの抽出や変換は不要です
search_electronic_mediaを呼び出します- クエリをツールの
searchQueryパラメーターに渡します
例:
- ユーザーのクエリ:「自然光が差し込むモダンで高級なアパート」
- ツールの呼び出し:
search_electronic_media(searchQuery="modern luxury apartment with natural lighting")
その他(ユーザー提供の URL)
ユーザーに次の情報を提供するよう依頼します:
- 画像への直接 URL
- アセットライブラリのパス
- 確認する特定のシステム/場所
検索結果の提示
検索結果の提示には、必ず ask_followup_question ツールを使用してください。
- ツールの応答を解析する — すべての画像結果(タイトルとソース)を抽出します
ask_followup_questionを使用する — すべての結果を選択可能なオプションとして提示します。画像のタイトルのみを表示し、URLは表示しません。- ユーザーの選択をツールの応答から受け取る
- その後、選択された画像を適用します
I found 4 images. Which one would you like to use?
1. Luxury Apartment Exterior
Source: Salesforce CMS
2. Modern High-Rise Building
Source: Salesforce CMS
3. Waterfront Residence
Source: Salesforce CMS
4. Premium Condominium
Source: Salesforce CMS
画像を自動選択してはいけません。 必ずユーザーが選択するまで待ちます。
選択された画像の適用
ユーザーが選択した後:
- 画像名と URL を示して選択内容を確認します
- クエリパラメーターをすべて含む、ツールから返された完全な URL を使用します。CMS と DAM の URL は、認証、サイズ変更、CDN ルーティングにクエリパラメーターを使用しています。これらを省略すると画像が機能しなくなります。たとえば、
https://cms.example.com/media/img.jpg?oid=00D&refid=0EM&v=2のような URL は、完全な形で使用する必要があります。 - URL をユーザーのコード/コンポーネントに適用します
- 変更箇所(ファイルパスと行番号)を示します
エラー処理
| エラー | 応答 |
|---|---|
| ツールを利用できない | 「[source name] ツールを利用できません。別のソースを試しますか?」 |
| ツールがエラーを返す | エラーメッセージを表示し、別の語句または代替ソースでの再試行を提案します |
| 結果が見つからない | 「結果が見つかりません。より広いキーワードを試す、描写的な語を削除する、または別のソースを試してください。」 |
| ユーザーの選択が無効 | オプションを再表示し、もう一度選択を依頼します |
失敗を黙って処理してはいけません。 必ずユーザーに知らせ、代替案を提示します。
検索動作に関する注意事項
キーワードを使った検索:
- キーワードと分類の両方を指定 → キーワードに一致する結果、または(キーワード+分類)に一致する結果
- キーワードが空 → 分類のみで検索
- 分類が空 → キーワードのみで検索
pageOffsetを使ってページネーションします(searchLimitずつ増やします)
Data 360 ハイブリッド検索:
- 自然言語のクエリに対応します
- 意味的類似性に基づいて照合します
- 複数の接続済みシステムを横断して検索します
主要な原則
- 最初の応答は必ずテキストのみです — ツールを呼び出さずに検索元を提示します
- 設定済みの検索元のみを表示します — 自分のツールリストを確認し(ツール呼び出しではなく、イントロスペクションを使用)、利用可能なツールがある検索元のみを提示します
- ユーザーの選択を待ちます — 検索元や画像を自動選択しません
- すべての結果を表示します — 最適な候補をユーザーに選んでもらいます
- 適用前に確認します — コードを変更する前に選択内容を確認します
- エラーには適切に対処します — 明確なフィードバックと代替案を提示します