Claude Web Search
ClaudeリクエストでWeb検索を有効にし、検索結果Blockと引用を処理します。
Claude Web Searchを使用すると、対応するClaudeモデルが回答時にWebを検索し、プロトコルが許可する場合は検索結果Blockと引用を返します。最新の事実、出典の確認、サイトを限定した検索が必要なタスクに適しています。
AGTCloudは、Chat互換エンドポイントまたはAnthropic Messages構造でClaude機能を提供する場合があります。両者は有効化フィールドと返却構造が異なるため、現在のモデル詳細に従って選択してください。
検索ツールのバージョンを恒久的な設定として固定しないでください
Anthropicのネイティブ検索ツールは、バージョンを含むタイプ名を使用します。利用可能なバージョンとモデルの対応範囲は変わる可能性があります。古いプロジェクトから固定モデルやツールバージョンをコピーせず、現在のモデル詳細と対応するReferenceの値を使用してください。
Chat互換エンドポイントで検索を有効にする
既存資料に記録されたAGTCloudの主な方法は、Chatリクエストにweb_search_optionsを追加するものです。
curl 'https://api.agtcloud.cn/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your-api-key' \
--data '{
"model": "MODEL_ID",
"messages": [
{
"role": "user",
"content": "今日のAI規制に関する重要なニュースを検索し、出典を挙げてください。"
}
],
"web_search_options": {
"search_context_size": "medium"
}
}'本文は通常Assistant Messageから読み取ります。引用が構造化Annotation、リンク、テキストのどの形式で返るかはモデルとエンドポイントによって異なります。レスポンスに根拠がない引用を独自に生成しないでください。
Anthropicネイティブツール構造を理解する
ネイティブClaude Web Searchに対応するMessagesエンドポイントでは、検索ツールをtoolsに指定します。次の例はプロトコル構造のみを示します。ツールタイプは現在のモデルドキュメントが提供するバージョンに置き換えてください。
{
"model": "MODEL_ID",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "今日のAI規制に関する重要なニュースを検索し、出典を挙げてください。"
}
],
"tools": [
{
"type": "WEB_SEARCH_TOOL_VERSION",
"name": "web_search",
"max_uses": 5
}
]
}max_uses、ドメインフィルター、ユーザー位置、動的フィルターは、対応するツールバージョンで利用できる場合にのみ使用します。完全なMessagesコンテナとContent Block構造はAnthropic Messages Referenceを参照してください。
検索結果と引用を読み取る
ネイティブMessagesレスポンスには、次の異なるContent Blockが含まれる場合があります。
server_tool_use:モデルがサーバー側の検索ツール呼び出しを開始したことを示します。web_search_tool_result:検索結果またはツールエラーを含みます。text:ユーザー向けの最終回答です。citations:レスポンスで提供される場合、回答部分とWebページの出典を関連付けます。
クライアントはtypeごとに分岐し、すべてのContent Blockを通常文字列として連結しないでください。
{
"content": [
{
"type": "text",
"text": "検索結果によると……",
"citations": [
{
"type": "web_search_result_location",
"url": "https://example.com/article",
"title": "出典タイトル"
}
]
}
]
}この例は引用とテキストが同じレスポンス構造に含まれることを示します。実際のフィールドは現在のレスポンスとMessages Referenceを確認してください。
ドメイン、位置、動的フィルター
ツールバージョンが対応する場合は、次を使用できます。
allowed_domains:指定したドメインだけを許可します。blocked_domains:指定したドメインを除外します。許可リストと同時に設定しないでください。user_location:都市、地域、国、タイムゾーンなどのローカライズ情報を指定します。- 動的フィルター:対応するツールの組み合わせで検索結果をさらに絞り込みます。
これらのオプションは出典範囲に影響しますが、Webページの内容が正しいことを保証しません。高リスクの業務では、出典、日時、複数情報源の一致を引き続き検証してください。
検索ツールエラーとHTTPエラーを区別する
検索ツールの失敗がHTTPリクエスト全体の失敗を意味するとは限りません。ネイティブレスポンスは成功ステータスを返しながら、web_search_tool_resultにエラーオブジェクトを含む場合があります。
| 状況 | 処理方法 |
|---|---|
| HTTP認証またはパラメータエラー | ステータスコードに従って処理し、通常のContent Block解析へ進まない |
| 検索ツールがエラーBlockを返す | エラータイプを記録し、質問の書き換え、検索範囲の縮小、検索なし回答への切り替えを判断する |
| 検索成功だが引用がない | 確認可能な出典がないことを明示し、偽のリンクを生成しない |
| 検索回数の上限に到達 | 検索を停止し、結果が不完全な可能性をユーザーへ伝える |
ネイティブ検索とカスタムツールの違い
Claude Web Searchはモデルまたはサーバー側の検索ツールが実行します。カスタムTool Callingはアプリケーションが独自の検索サービスを呼び出して結果を返します。インデックス、アクセス権限、内部データを制御する必要がある場合は、Tool Callingを使用してください。
公開前の確認
- 現在のモデルとプロトコルが使用するWeb Searchフィールドに明確に対応している。
- ツールタイプのバージョンは古いモデル例ではなく現在のドキュメントから取得している。
- Content Block、検索結果、テキスト、引用を個別に解析する。
- ツールエラーを通常の検索結果として扱わない。
- ドメインと位置データは業務上必要な場合だけ送信する。
- 検索内容が高リスクツールを直接実行したり、認可を迂回したりしない。
ChatフィールドはChat Completions Referenceを、リクエスト失敗時はエラーとトラブルシューティングを参照してください。