検索結果
ソース帰属を含む検索結果を提供することで、RAGアプリケーションの自然な引用を可能にします
検索結果コンテンツブロックは現在ベータ版です。この機能を有効にするには、search-results-2025-06-09
ベータヘッダーを使用してください。
検索結果コンテンツブロックは、適切なソース帰属を持つ自然な引用を可能にし、ウェブ検索品質の引用をカスタムアプリケーションにもたらします。この機能は、Claudeにソースを正確に引用させる必要があるRAG(Retrieval-Augmented Generation)アプリケーションで特に強力です。
検索結果機能は以下のモデルで利用可能です:
- Claude 3.5 Haiku (
claude-3-5-haiku-20241022
) - Claude 3.5 Sonnet (
claude-3-5-sonnet-20241022
) - Claude 3.7 Sonnet (
claude-3-7-sonnet-20250219
) - Claude Opus 4 (
claude-opus-4-20250514
) - Claude Sonnet 4 (
claude-sonnet-4-20250514
)
主な利点
- 自然な引用 - あらゆるコンテンツに対してウェブ検索と同じ引用品質を実現
- 柔軟な統合 - 動的RAGのツール戻り値として使用、または事前取得データのトップレベルコンテンツとして使用
- 適切なソース帰属 - 各結果にはソースとタイトル情報が含まれ、明確な帰属を提供
- ドキュメントベースの回避策が不要 - ドキュメントベースの回避策の必要性を排除
- 一貫した引用形式 - Claudeのウェブ検索機能の引用品質と形式に一致
仕組み
検索結果は2つの方法で提供できます:
- ツール呼び出しから - カスタムツールが検索結果を返し、動的RAGアプリケーションを可能にします
- トップレベルコンテンツとして - 事前取得またはキャッシュされたコンテンツのために、ユーザーメッセージで直接検索結果を提供します
どちらの場合でも、Claudeは適切なソース帰属を持つ検索結果からの情報を自動的に引用できます。
検索結果スキーマ
検索結果は以下の構造を使用します:
必須フィールド
フィールド | タイプ | 説明 |
---|---|---|
type | string | "search_result" である必要があります |
source | string | コンテンツのソースURLまたは識別子 |
title | string | 検索結果の説明的なタイトル |
content | array | 実際のコンテンツを含むテキストブロックの配列 |
オプションフィールド
フィールド | タイプ | 説明 |
---|---|---|
citations | object | enabled ブール値フィールドを持つ引用設定 |
cache_control | object | キャッシュ制御設定(例:{"type": "ephemeral"} ) |
content
配列の各項目は以下を持つテキストブロックである必要があります:
type
:"text"
である必要がありますtext
:実際のテキストコンテンツ(空でない文字列)
方法1:ツール呼び出しからの検索結果
最も強力な使用例は、カスタムツールから検索結果を返すことです。これにより、ツールが関連コンテンツを取得して自動引用付きで返す動的RAGアプリケーションが可能になります。
例:ナレッジベースツール
方法2:トップレベルコンテンツとしての検索結果
ユーザーメッセージで直接検索結果を提供することもできます。これは以下の場合に便利です:
- 検索インフラストラクチャからの事前取得コンテンツ
- 以前のクエリからのキャッシュされた検索結果
- 外部検索サービスからのコンテンツ
- テストと開発
例:直接検索結果
引用付きのClaudeの応答
検索結果の提供方法に関係なく、Claudeは検索結果からの情報を使用する際に自動的に引用を含めます:
引用フィールド
各引用には以下が含まれます:
フィールド | タイプ | 説明 |
---|---|---|
type | string | 検索結果引用の場合は常に"search_result_location" |
source | string | 元の検索結果からのソース |
title | string または null | 元の検索結果からのタイトル |
cited_text | string | 引用されている正確なテキスト |
search_result_index | integer | 検索結果のインデックス(0ベース) |
start_block_index | integer | content配列内の開始位置 |
end_block_index | integer | content配列内の終了位置 |
注意:search_result_index
は、検索結果の提供方法(ツール呼び出しまたはトップレベルコンテンツ)に関係なく、検索結果コンテンツブロックのインデックス(0ベース)を指します。
複数のコンテンツブロック
検索結果はcontent
配列に複数のテキストブロックを含むことができます:
Claudeはstart_block_index
とend_block_index
フィールドを使用して特定のブロックを引用できます。
高度な使用法
両方の方法の組み合わせ
同じ会話でツールベースとトップレベルの検索結果の両方を使用できます:
他のコンテンツタイプとの組み合わせ
両方の方法で検索結果を他のコンテンツと混合することをサポートします:
キャッシュ制御
パフォーマンス向上のためにキャッシュ制御を追加:
引用制御
デフォルトでは、検索結果の引用は無効になっています。citations
設定を明示的に設定することで引用を有効にできます:
citations.enabled
がtrue
に設定されている場合、Claudeは検索結果からの情報を使用する際に引用参照を含めます。これにより以下が可能になります:
- カスタムRAGアプリケーションの自然な引用
- 独自のナレッジベースとのインターフェース時のソース帰属
- 検索結果を返すカスタムツールのウェブ検索品質の引用
citations
フィールドが省略された場合、引用はデフォルトで無効になります。
引用はオール・オア・ナッシング:リクエスト内のすべての検索結果で引用を有効にするか、すべてで無効にする必要があります。異なる引用設定を持つ検索結果を混在させるとエラーになります。一部のソースで引用を無効にする必要がある場合は、そのリクエスト内のすべての検索結果で引用を無効にする必要があります。
ベストプラクティス
ツールベース検索(方法1)
- 動的コンテンツ:リアルタイム検索と動的RAGアプリケーションに使用
- エラー処理:検索が失敗した場合に適切なメッセージを返す
- 結果制限:コンテキストオーバーフローを避けるため、最も関連性の高い結果のみを返す
トップレベル検索(方法2)
- 事前取得コンテンツ:すでに検索結果がある場合に使用
- バッチ処理:複数の検索結果を一度に処理するのに理想的
- テスト:既知のコンテンツで引用動作をテストするのに最適
一般的なベストプラクティス
-
結果を効果的に構造化
- 明確で永続的なソースURLを使用
- 説明的なタイトルを提供
- 長いコンテンツを論理的なテキストブロックに分割
-
一貫性を保つ
- アプリケーション全体で一貫したソース形式を使用
- タイトルがコンテンツを正確に反映することを確認
- フォーマットの一貫性を保つ
-
エラーを適切に処理
制限事項
- 検索結果コンテンツブロックはベータヘッダーでのみ利用可能
- 検索結果内ではテキストコンテンツのみがサポートされます(画像や他のメディアは不可)
content
配列には少なくとも1つのテキストブロックが含まれている必要があります