Loading...
    • Guide du développeur
    • Référence API
    • MCP
    • Ressources
    • Notes de version
    Search...
    ⌘K
    Premiers pas
    Introduction à ClaudeDémarrage rapide
    Modèles et tarification
    Aperçu des modèlesChoisir un modèleNouveautés dans Claude 4.6Guide de migrationDépréciation des modèlesTarification
    Créer avec Claude
    Aperçu des fonctionnalitésUtiliser l'API MessagesGérer les raisons d'arrêtBonnes pratiques de prompting
    Capacités du modèle
    Extended thinkingAdaptive thinkingEffortMode rapide (aperçu de recherche)Sorties structuréesCitationsStreaming de messagesTraitement par lotsSupport PDFRésultats de rechercheSupport multilingueEmbeddingsVision
    Outils
    AperçuComment implémenter l'utilisation d'outilsOutil de recherche webOutil de récupération webOutil d'exécution de codeOutil de mémoireOutil BashOutil Computer useOutil d'éditeur de texte
    Infrastructure d'outils
    Recherche d'outilsAppel d'outils programmatiqueStreaming d'outils à granularité fine
    Gestion du contexte
    Fenêtres de contexteCompactionÉdition du contexteMise en cache des promptsComptage des tokens
    Fichiers et ressources
    API Files
    Agent Skills
    AperçuDémarrage rapideBonnes pratiquesSkills pour l'entrepriseUtiliser Skills avec l'API
    Agent SDK
    AperçuDémarrage rapideSDK TypeScriptTypeScript V2 (aperçu)SDK PythonGuide de migration
    MCP dans l'API
    Connecteur MCPServeurs MCP distants
    Claude sur des plateformes tierces
    Amazon BedrockMicrosoft FoundryVertex AI
    Ingénierie des prompts
    AperçuGénérateur de promptsUtiliser des modèles de promptsAméliorateur de promptsÊtre clair et directUtiliser des exemples (prompting multi-shots)Laisser Claude réfléchir (CoT)Utiliser des balises XMLDonner un rôle à Claude (prompts système)Chaîner des prompts complexesConseils pour le contexte longConseils pour extended thinking
    Tester et évaluer
    Définir les critères de succèsDévelopper des cas de testUtiliser l'outil d'évaluationRéduire la latence
    Renforcer les garde-fous
    Réduire les hallucinationsAugmenter la cohérence des résultatsAtténuer les jailbreaksRefus en streamingRéduire les fuites de promptsGarder Claude dans le rôle
    Administration et surveillance
    Aperçu de l'API AdminRésidence des donnéesEspaces de travailAPI d'utilisation et de coûtsAPI Claude Code AnalyticsZéro rétention de données
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Outils

    Outil de recherche web

    Donnez à Claude un accès direct au contenu web en temps réel avec l'outil de recherche web, permettant des réponses à jour au-delà de sa date limite de connaissance.

    L'outil de recherche web donne à Claude un accès direct au contenu web en temps réel, lui permettant de répondre aux questions avec des informations à jour au-delà de sa date limite de connaissance. Claude cite automatiquement les sources des résultats de recherche dans sa réponse.

    La dernière version de l'outil de recherche web (web_search_20260209) supporte le filtrage dynamique avec Claude Opus 4.6 et Sonnet 4.6. Claude peut écrire et exécuter du code pour filtrer les résultats de recherche avant qu'ils n'atteignent la fenêtre de contexte, en conservant uniquement les informations pertinentes et en rejetant le reste. Cela conduit à des réponses plus précises tout en réduisant la consommation de jetons. La version précédente de l'outil (web_search_20250305) reste disponible sans filtrage dynamique.

    This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.

    Modèles supportés

    La recherche web est disponible sur :

    • Claude Opus 4.6 (claude-opus-4-6)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)
    • Claude Sonnet 4.6 (claude-sonnet-4-6)
    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (obsolète) (claude-3-7-sonnet-20250219)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Haiku 3.5 (obsolète) (claude-3-5-haiku-latest)

    Comment fonctionne la recherche web

    Lorsque vous ajoutez l'outil de recherche web à votre requête API :

    1. Claude décide quand effectuer une recherche en fonction de l'invite.
    2. L'API exécute les recherches et fournit à Claude les résultats. Ce processus peut se répéter plusieurs fois au cours d'une seule requête.
    3. À la fin de son tour, Claude fournit une réponse finale avec des sources citées.

    Filtrage dynamique avec Opus 4.6 et Sonnet 4.6

    La recherche web est une tâche consommatrice de jetons. Avec la recherche web basique, Claude doit extraire les résultats de recherche dans le contexte, récupérer le HTML complet de plusieurs sites web et raisonner sur tout cela avant d'arriver à une réponse. Souvent, une grande partie de ce contenu est non pertinente, ce qui peut dégrader la qualité de la réponse.

    Avec la version de l'outil web_search_20260209, Claude peut écrire et exécuter du code pour post-traiter les résultats de requête. Au lieu de raisonner sur des fichiers HTML complets, Claude filtre dynamiquement les résultats de recherche avant de les charger dans le contexte, en conservant uniquement ce qui est pertinent et en rejetant le reste.

    Le filtrage dynamique est particulièrement efficace pour :

    • Rechercher dans la documentation technique
    • Examen de la littérature et vérification des citations
    • Recherche technique
    • Ancrage et vérification des réponses

    Le filtrage dynamique nécessite que l'outil d'exécution de code soit activé. L'outil de recherche web amélioré est disponible sur l'API Claude et Microsoft Azure. Sur Google Vertex AI, l'outil de recherche web basique (sans filtrage dynamique) est disponible.

    Pour activer le filtrage dynamique, utilisez la version de l'outil web_search_20260209 avec l'en-tête bêta code-execution-web-tools-2026-02-09 :

    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: code-execution-web-tools-2026-02-09" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-opus-4-6",
            "max_tokens": 4096,
            "messages": [
                {
                    "role": "user",
                    "content": "Search for the current prices of AAPL and GOOGL, then calculate which has a better P/E ratio."
                }
            ],
            "tools": [{
                "type": "web_search_20260209",
                "name": "web_search"
            }]
        }'

    Comment utiliser la recherche web

    L'administrateur de votre organisation doit activer la recherche web dans la Console.

    Fournissez l'outil de recherche web dans votre requête API :

    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-opus-4-6",
            "max_tokens": 1024,
            "messages": [
                {
                    "role": "user",
                    "content": "What is the weather in NYC?"
                }
            ],
            "tools": [{
                "type": "web_search_20250305",
                "name": "web_search",
                "max_uses": 5
            }]
        }'

    Définition de l'outil

    L'outil de recherche web supporte les paramètres suivants :

    JSON
    {
      "type": "web_search_20250305",
      "name": "web_search",
    
      // Optionnel : Limiter le nombre de recherches par requête
      "max_uses": 5,
    
      // Optionnel : Inclure uniquement les résultats de ces domaines
      "allowed_domains": ["example.com", "trusteddomain.org"],
    
      // Optionnel : Ne jamais inclure les résultats de ces domaines
      "blocked_domains": ["untrustedsource.com"],
    
      // Optionnel : Localiser les résultats de recherche
      "user_location": {
        "type": "approximate",
        "city": "San Francisco",
        "region": "California",
        "country": "US",
        "timezone": "America/Los_Angeles"
      }
    }

    Max uses

    Le paramètre max_uses limite le nombre de recherches effectuées. Si Claude tente plus de recherches que autorisé, le web_search_tool_result sera une erreur avec le code d'erreur max_uses_exceeded.

    Filtrage par domaine

    Lors de l'utilisation de filtres de domaine :

    • Les domaines ne doivent pas inclure le schéma HTTP/HTTPS (utilisez example.com au lieu de https://example.com)
    • Les sous-domaines sont automatiquement inclus (example.com couvre docs.example.com)
    • Les sous-domaines spécifiques limitent les résultats à ce sous-domaine uniquement (docs.example.com retourne uniquement les résultats de ce sous-domaine, pas de example.com ou api.example.com)
    • Les sous-chemins sont supportés et correspondent à tout ce qui suit le chemin (example.com/blog correspond à example.com/blog/post-1)
    • Vous pouvez utiliser soit allowed_domains soit blocked_domains, mais pas les deux dans la même requête.

    Support des caractères génériques :

    • Un seul caractère générique (*) est autorisé par entrée de domaine, et il doit apparaître après la partie domaine (dans le chemin)
    • Valide : example.com/*, example.com/*/articles
    • Invalide : *.example.com, ex*.com, example.com/*/news/*

    Les formats de domaine invalides retourneront une erreur d'outil invalid_tool_input.

    Les restrictions de domaine au niveau de la requête doivent être compatibles avec les restrictions de domaine au niveau de l'organisation configurées dans la Console. Les domaines au niveau de la requête ne peuvent que restreindre davantage les domaines, pas les remplacer ou les élargir au-delà de la liste au niveau de l'organisation. Si votre requête inclut des domaines qui entrent en conflit avec les paramètres de l'organisation, l'API retournera une erreur de validation.

    Localisation

    Le paramètre user_location vous permet de localiser les résultats de recherche en fonction de la localisation d'un utilisateur.

    • type : Le type de localisation (doit être approximate)
    • city : Le nom de la ville
    • region : La région ou l'État
    • country : Le pays
    • timezone : L'ID de fuseau horaire IANA.

    Réponse

    Voici un exemple de structure de réponse :

    {
      "role": "assistant",
      "content": [
        // 1. Décision de Claude de faire une recherche
        {
          "type": "text",
          "text": "I'll search for when Claude Shannon was born."
        },
        // 2. La requête de recherche utilisée
        {
          "type": "server_tool_use",
          "id": "srvtoolu_01WYG3ziw53XMcoyKL4XcZmE",
          "name": "web_search",
          "input": {
            "query": "claude shannon birth date"
          }
        },
        // 3. Résultats de recherche
        {
          "type": "web_search_tool_result",
          "tool_use_id": "srvtoolu_01WYG3ziw53XMcoyKL4XcZmE",
          "content": [
            {
              "type": "web_search_result",
              "url": "https://en.wikipedia.org/wiki/Claude_Shannon",
              "title": "Claude Shannon - Wikipedia",
              "encrypted_content": "EqgfCioIARgBIiQ3YTAwMjY1Mi1mZjM5LTQ1NGUtODgxNC1kNjNjNTk1ZWI3Y...",
              "page_age": "April 30, 2025"
            }
          ]
        },
        {
          "text": "Based on the search results, ",
          "type": "text"
        },
        // 4. Réponse de Claude avec citations
        {
          "text": "Claude Shannon was born on April 30, 1916, in Petoskey, Michigan",
          "type": "text",
          "citations": [
            {
              "type": "web_search_result_location",
              "url": "https://en.wikipedia.org/wiki/Claude_Shannon",
              "title": "Claude Shannon - Wikipedia",
              "encrypted_index": "Eo8BCioIAhgBIiQyYjQ0OWJmZi1lNm..",
              "cited_text": "Claude Elwood Shannon (April 30, 1916 – February 24, 2001) was an American mathematician, electrical engineer, computer scientist, cryptographer and i..."
            }
          ]
        }
      ],
      "id": "msg_a930390d3a",
      "usage": {
        "input_tokens": 6039,
        "output_tokens": 931,
        "server_tool_use": {
          "web_search_requests": 1
        }
      },
      "stop_reason": "end_turn"
    }

    Résultats de recherche

    Les résultats de recherche incluent :

    • url : L'URL de la page source
    • title : Le titre de la page source
    • page_age : Quand le site a été mis à jour pour la dernière fois
    • encrypted_content : Contenu chiffré qui doit être renvoyé dans les conversations multi-tours pour les citations

    Citations

    Les citations sont toujours activées pour la recherche web, et chaque web_search_result_location inclut :

    • url : L'URL de la source citée
    • title : Le titre de la source citée
    • encrypted_index : Une référence qui doit être renvoyée pour les conversations multi-tours.
    • cited_text : Jusqu'à 150 caractères du contenu cité

    Les champs de citation de recherche web cited_text, title et url ne comptent pas vers l'utilisation des jetons d'entrée ou de sortie.

    Lors de l'affichage des sorties API directement aux utilisateurs finaux, les citations doivent être incluses à la source originale. Si vous apportez des modifications aux sorties API, notamment en les retraitant et/ou en les combinant avec votre propre matériel avant de les afficher aux utilisateurs finaux, affichez les citations comme approprié en fonction de la consultation avec votre équipe juridique.

    Erreurs

    Lorsque l'outil de recherche web rencontre une erreur (comme atteindre les limites de débit), l'API Claude retourne toujours une réponse 200 (succès). L'erreur est représentée dans le corps de la réponse en utilisant la structure suivante :

    {
      "type": "web_search_tool_result",
      "tool_use_id": "servertoolu_a93jad",
      "content": {
        "type": "web_search_tool_result_error",
        "error_code": "max_uses_exceeded"
      }
    }

    Voici les codes d'erreur possibles :

    • too_many_requests : Limite de débit dépassée
    • invalid_input : Paramètre de requête de recherche invalide
    • max_uses_exceeded : Nombre maximum d'utilisations de l'outil de recherche web dépassé
    • query_too_long : La requête dépasse la longueur maximale
    • unavailable : Une erreur interne s'est produite

    Raison d'arrêt pause_turn

    La réponse peut inclure une raison d'arrêt pause_turn, qui indique que l'API a mis en pause un tour de longue durée. Vous pouvez fournir la réponse telle quelle dans une requête ultérieure pour permettre à Claude de continuer son tour, ou modifier le contenu si vous souhaitez interrompre la conversation.

    Mise en cache des invites

    La recherche web fonctionne avec la mise en cache des invites. Pour activer la mise en cache des invites, ajoutez au moins un point d'arrêt cache_control dans votre requête. Le système mettra automatiquement en cache jusqu'au dernier bloc web_search_tool_result lors de l'exécution de l'outil.

    Pour les conversations multi-tours, définissez un point d'arrêt cache_control sur ou après le dernier bloc web_search_tool_result pour réutiliser le contenu mis en cache.

    Par exemple, pour utiliser la mise en cache des invites avec la recherche web pour une conversation multi-tours :

    import anthropic
    
    client = anthropic.Anthropic()
    
    # Première requête avec recherche web et point d'arrêt de cache
    messages = [
        {"role": "user", "content": "What's the current weather in San Francisco today?"}
    ]
    
    response1 = client.messages.create(
        model="claude-opus-4-6",
        max_tokens=1024,
        messages=messages,
        tools=[
            {
                "type": "web_search_20250305",
                "name": "web_search",
                "user_location": {
                    "type": "approximate",
                    "city": "San Francisco",
                    "region": "California",
                    "country": "US",
                    "timezone": "America/Los_Angeles",
                },
            }
        ],
    )
    
    # Ajouter la réponse de Claude à la conversation
    messages.append({"role": "assistant", "content": response1.content})
    
    # Deuxième requête avec point d'arrêt de cache après les résultats de recherche
    messages.append(
        {
            "role": "user",
            "content": "Should I expect rain later this week?",
            "cache_control": {"type": "ephemeral"},  # Cache jusqu'à ce point
        }
    )
    
    response2 = client.messages.create(
        model="claude-opus-4-6",
        max_tokens=1024,
        messages=messages,
        tools=[
            {
                "type": "web_search_20250305",
                "name": "web_search",
                "user_location": {
                    "type": "approximate",
                    "city": "San Francisco",
                    "region": "California",
                    "country": "US",
                    "timezone": "America/Los_Angeles",
                },
            }
        ],
    )
    # La deuxième réponse bénéficiera des résultats de recherche mis en cache
    # tout en étant capable d'effectuer de nouvelles recherches si nécessaire
    print(f"Cache read tokens: {response2.usage.get('cache_read_input_tokens', 0)}")

    Diffusion en continu

    Avec la diffusion en continu activée, vous recevrez les événements de recherche dans le flux. Il y aura une pause pendant que la recherche s'exécute :

    event: message_start
    data: {"type": "message_start", "message": {"id": "msg_abc123", "type": "message"}}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 0, "content_block": {"type": "text", "text": ""}}
    
    // Décision de Claude de faire une recherche
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "web_search"}}
    
    // Requête de recherche diffusée en continu
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"query\":\"latest quantum computing breakthroughs 2025\"}"}}
    
    // Pause pendant que la recherche s'exécute
    
    // Résultats de recherche diffusés en continu
    event: content_block_start
    data: {"type": "content_block_start", "index": 2, "content_block": {"type": "web_search_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": [{"type": "web_search_result", "title": "Quantum Computing Breakthroughs in 2025", "url": "https://example.com"}]}}
    
    // Réponse de Claude avec citations (omise dans cet exemple)

    Requêtes par lot

    Vous pouvez inclure l'outil de recherche web dans l'API Messages Batches. Les appels d'outil de recherche web via l'API Messages Batches sont facturés de la même manière que ceux dans les requêtes régulières de l'API Messages.

    Utilisation et tarification

    Web search usage is charged in addition to token usage:

    "usage": {
      "input_tokens": 105,
      "output_tokens": 6039,
      "cache_read_input_tokens": 7123,
      "cache_creation_input_tokens": 7345,
      "server_tool_use": {
        "web_search_requests": 1
      }
    }

    Web search is available on the Claude API for $10 per 1,000 searches, plus standard token costs for search-generated content. Web search results retrieved throughout a conversation are counted as input tokens, in search iterations executed during a single turn and in subsequent conversation turns.

    Each web search counts as one use, regardless of the number of results returned. If an error occurs during web search, the web search will not be billed.

    Was this page helpful?

    • Modèles supportés
    • Comment fonctionne la recherche web
    • Filtrage dynamique avec Opus 4.6 et Sonnet 4.6
    • Comment utiliser la recherche web
    • Définition de l'outil
    • Réponse
    • Mise en cache des invites
    • Diffusion en continu
    • Requêtes par lot
    • Utilisation et tarification