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.5Migration vers Claude 4.5Dépréciations de modèlesTarification

    Créer avec Claude

    Aperçu des fonctionnalitésTravailler avec l'API MessagesFenêtres de contexteMeilleures pratiques de prompting

    Capacités

    Mise en cache des invitesÉdition du contexteRéflexion étendueMessages en streamingTraitement par lotsCitationsSupport multilingueComptage de tokensEmbeddingsVisionSupport PDFAPI FilesRésultats de rechercheExtension Google Sheets

    Outils

    AperçuComment implémenter l'utilisation d'outilsUtilisation efficace des outils en termes de jetonsStreaming d'outils à granularité fineOutil BashOutil d'exécution de codeOutil d'utilisation d'ordinateurOutil d'éditeur de texteOutil de récupération webOutil de recherche webOutil de mémoire

    Compétences de l'Agent

    Compétences d'AgentCommencer avec les Agent Skills dans l'APIBonnes pratiques de création de SkillsUtilisation des compétences

    SDK Agent

    AperçuRéférence du SDK Agent - TypeScriptRéférence du SDK Agent - Python

    Guides

    Entrée en StreamingGestion des PermissionsGestion des SessionsHébergement du SDK AgentModification des invites systèmeMCP dans le SDKOutils PersonnalisésSous-agents dans le SDKCommandes Slash dans le SDKCompétences d'agent dans le SDKSuivi des Coûts et de l'UtilisationListes de TâchesPlugins dans le SDK

    MCP dans l'API

    Connecteur MCPServeurs MCP distants

    Claude sur les plateformes tierces

    Amazon BedrockVertex AI

    Ingénierie des prompts

    AperçuGénérateur de promptsUtiliser des modèles de promptsAméliorateur de promptsSoyez clair et directUtiliser des exemples (prompting multishot)Laissez Claude réfléchir (CoT)Utiliser les balises XMLDonner un rôle à Claude (invites système)Préremplissez la réponse de ClaudeEnchaîner des prompts complexesConseils contexte longConseils pour la réflexion étendue

    Tester et évaluer

    Définir les critères de réussiteDévelopper des cas de testUtilisation de l'outil d'évaluationRéduction de la latence

    Renforcer les garde-fous

    Réduire les hallucinationsAméliorer la cohérenceAtténuer les jailbreakshandle-streaming-refusalsRéduire la fuite de promptGarder Claude dans son rôle

    Administration et surveillance

    Aperçu de l'API AdminAPI d'utilisation et de coûtAPI Claude Code Analytics
    Console
    Capacités

    Résultats de recherche

    Activez les citations naturelles pour les applications RAG en fournissant des résultats de recherche avec attribution de source

    Les blocs de contenu des résultats de recherche permettent des citations naturelles avec une attribution de source appropriée, apportant des citations de qualité web à vos applications personnalisées. Cette fonctionnalité est particulièrement puissante pour les applications RAG (Retrieval-Augmented Generation) où vous avez besoin que Claude cite les sources avec précision.

    La fonctionnalité des résultats de recherche est disponible sur les modèles suivants :

    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)
    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (déprécié) (claude-3-7-sonnet-20250219)
    • Claude 3.5 Haiku (claude-3-5-haiku-20241022)

    Avantages clés

    • Citations naturelles - Obtenez la même qualité de citation que la recherche web pour n'importe quel contenu
    • Intégration flexible - Utilisez dans les retours d'outils pour la RAG dynamique ou comme contenu de haut niveau pour les données pré-récupérées
    • Attribution de source appropriée - Chaque résultat inclut les informations de source et de titre pour une attribution claire
    • Aucune solution de contournement de document nécessaire - Élimine le besoin de solutions de contournement basées sur des documents
    • Format de citation cohérent - Correspond à la qualité et au format de citation de la fonctionnalité de recherche web de Claude

    Comment ça marche

    Les résultats de recherche peuvent être fournis de deux façons :

    1. À partir d'appels d'outils - Vos outils personnalisés retournent des résultats de recherche, permettant des applications RAG dynamiques
    2. Comme contenu de haut niveau - Vous fournissez les résultats de recherche directement dans les messages utilisateur pour le contenu pré-récupéré ou mis en cache

    Dans les deux cas, Claude peut automatiquement citer les informations des résultats de recherche avec une attribution de source appropriée.

    Schéma des résultats de recherche

    Les résultats de recherche utilisent la structure suivante :

    {
      "type": "search_result",
      "source": "https://example.com/article",  // Requis : URL source ou identifiant
      "title": "Article Title",                  // Requis : Titre du résultat
      "content": [ // Requis : Tableau de blocs de texte
        {
          "type": "text",
          "text": "The actual content of the search result..."
        }
      ],
      "citations": {                             // Optionnel : Configuration des citations
        "enabled": true                          // Activer/désactiver les citations pour ce résultat
      }
    }

    Champs obligatoires

    ChampTypeDescription
    typestringDoit être "search_result"
    sourcestringL'URL source ou l'identifiant du contenu
    titlestringUn titre descriptif pour le résultat de recherche
    contentarrayUn tableau de blocs de texte contenant le contenu réel

    Champs optionnels

    ChampTypeDescription
    citationsobjectConfiguration des citations avec le champ booléen enabled
    cache_controlobjectParamètres de contrôle du cache (par exemple, {"type": "ephemeral"})

    Chaque élément du tableau content doit être un bloc de texte avec :

    • type : Doit être "text"
    • text : Le contenu textuel réel (chaîne non vide)

    Méthode 1 : Résultats de recherche à partir d'appels d'outils

    Le cas d'usage le plus puissant est de retourner les résultats de recherche à partir de vos outils personnalisés. Cela permet des applications RAG dynamiques où les outils récupèrent et retournent le contenu pertinent avec des citations automatiques.

    Exemple : Outil de base de connaissances

    from anthropic import Anthropic
    from anthropic.types import (
        MessageParam,
        TextBlockParam,
        SearchResultBlockParam,
        ToolResultBlockParam
    )
    
    client = Anthropic()
    
    # Define a knowledge base search tool
    knowledge_base_tool = {
        "name": "search_knowledge_base",
        "description": "Search the company knowledge base for information",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {
                    "type": "string",
                    "description": "The search query"
                }
            },
            "required": ["query"]
        }
    }
    
    # Function to handle the tool call
    def search_knowledge_base(query):
        # Your search logic here
        # Returns search results in the correct format
        return [
            SearchResultBlockParam(
                type="search_result",
                source="https://docs.company.com/product-guide",
                title="Product Configuration Guide",
                content=[
                    TextBlockParam(
                        type="text",
                        text="To configure the product, navigate to Settings > Configuration. The default timeout is 30 seconds, but can be adjusted between 10-120 seconds based on your needs."
                    )
                ],
                citations={"enabled": True}
            ),
            SearchResultBlockParam(
                type="search_result",
                source="https://docs.company.com/troubleshooting",
                title="Troubleshooting Guide",
                content=[
                    TextBlockParam(
                        type="text",
                        text="If you encounter timeout errors, first check the configuration settings. Common causes include network latency and incorrect timeout values."
                    )
                ],
                citations={"enabled": True}
            )
        ]
    
    # Create a message with the tool
    response = client.messages.create(
        model="claude-sonnet-4-5",  # Works with all supported models
        max_tokens=1024,
        tools=[knowledge_base_tool],
        messages=[
            MessageParam(
                role="user",
                content="How do I configure the timeout settings?"
            )
        ]
    )
    
    # When Claude calls the tool, provide the search results
    if response.content[0].type == "tool_use":
        tool_result = search_knowledge_base(response.content[0].input["query"])
        
        # Send the tool result back
        final_response = client.messages.create(
            model="claude-sonnet-4-5",  # Works with all supported models
            max_tokens=1024,
            messages=[
                MessageParam(role="user", content="How do I configure the timeout settings?"),
                MessageParam(role="assistant", content=response.content),
                MessageParam(
                    role="user",
                    content=[
                        ToolResultBlockParam(
                            type="tool_result",
                            tool_use_id=response.content[0].id,
                            content=tool_result  # Search results go here
                        )
                    ]
                )
            ]
        )

    Méthode 2 : Résultats de recherche comme contenu de haut niveau

    Vous pouvez également fournir les résultats de recherche directement dans les messages utilisateur. Ceci est utile pour :

    • Le contenu pré-récupéré de votre infrastructure de recherche
    • Les résultats de recherche mis en cache à partir de requêtes précédentes
    • Le contenu provenant de services de recherche externes
    • Les tests et le développement

    Exemple : Résultats de recherche directs

    from anthropic import Anthropic
    from anthropic.types import (
        MessageParam,
        TextBlockParam,
        SearchResultBlockParam
    )
    
    client = Anthropic()
    
    # Provide search results directly in the user message
    response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        messages=[
            MessageParam(
                role="user",
                content=[
                    SearchResultBlockParam(
                        type="search_result",
                        source="https://docs.company.com/api-reference",
                        title="API Reference - Authentication",
                        content=[
                            TextBlockParam(
                                type="text",
                                text="All API requests must include an API key in the Authorization header. Keys can be generated from the dashboard. Rate limits: 1000 requests per hour for standard tier, 10000 for premium."
                            )
                        ],
                        citations={"enabled": True}
                    ),
                    SearchResultBlockParam(
                        type="search_result",
                        source="https://docs.company.com/quickstart",
                        title="Getting Started Guide",
                        content=[
                            TextBlockParam(
                                type="text",
                                text="To get started: 1) Sign up for an account, 2) Generate an API key from the dashboard, 3) Install our SDK using pip install company-sdk, 4) Initialize the client with your API key."
                            )
                        ],
                        citations={"enabled": True}
                    ),
                    TextBlockParam(
                        type="text",
                        text="Based on these search results, how do I authenticate API requests and what are the rate limits?"
                    )
                ]
            )
        ]
    )
    
    print(response.model_dump_json(indent=2))

    Réponse de Claude avec citations

    Indépendamment de la façon dont les résultats de recherche sont fournis, Claude inclut automatiquement les citations lors de l'utilisation d'informations provenant de ceux-ci :

    {
      "role": "assistant",
      "content": [
        {
          "type": "text",
          "text": "To authenticate API requests, you need to include an API key in the Authorization header",
          "citations": [
            {
              "type": "search_result_location",
              "source": "https://docs.company.com/api-reference",
              "title": "API Reference - Authentication",
              "cited_text": "All API requests must include an API key in the Authorization header",
              "search_result_index": 0,
              "start_block_index": 0,
              "end_block_index": 0
            }
          ]
        },
        {
          "type": "text",
          "text": ". You can generate API keys from your dashboard",
          "citations": [
            {
              "type": "search_result_location",
              "source": "https://docs.company.com/api-reference",
              "title": "API Reference - Authentication",
              "cited_text": "Keys can be generated from the dashboard",
              "search_result_index": 0,
              "start_block_index": 0,
              "end_block_index": 0
            }
          ]
        },
        {
          "type": "text",
          "text": ". The rate limits are 1,000 requests per hour for the standard tier and 10,000 requests per hour for the premium tier.",
          "citations": [
            {
              "type": "search_result_location",
              "source": "https://docs.company.com/api-reference",
              "title": "API Reference - Authentication",
              "cited_text": "Rate limits: 1000 requests per hour for standard tier, 10000 for premium",
              "search_result_index": 0,
              "start_block_index": 0,
              "end_block_index": 0
            }
          ]
        }
      ]
    }

    Champs de citation

    Chaque citation inclut :

    ChampTypeDescription
    typestringToujours "search_result_location" pour les citations de résultats de recherche
    sourcestringLa source du résultat de recherche original
    titlestring ou nullLe titre du résultat de recherche original
    cited_textstringLe texte exact en cours de citation
    search_result_indexintegerIndex du résultat de recherche (basé sur 0)
    start_block_indexintegerPosition de départ dans le tableau de contenu
    end_block_indexintegerPosition de fin dans le tableau de contenu

    Remarque : Le search_result_index fait référence à l'index du bloc de contenu du résultat de recherche (basé sur 0), indépendamment de la façon dont les résultats de recherche ont été fournis (appel d'outil ou contenu de haut niveau).

    Blocs de contenu multiples

    Les résultats de recherche peuvent contenir plusieurs blocs de texte dans le tableau content :

    {
      "type": "search_result",
      "source": "https://docs.company.com/api-guide",
      "title": "API Documentation",
      "content": [
        {
          "type": "text",
          "text": "Authentication: All API requests require an API key."
        },
        {
          "type": "text",
          "text": "Rate Limits: The API allows 1000 requests per hour per key."
        },
        {
          "type": "text",
          "text": "Error Handling: The API returns standard HTTP status codes."
        }
      ]
    }

    Claude peut citer des blocs spécifiques en utilisant les champs start_block_index et end_block_index.

    Utilisation avancée

    Combinaison des deux méthodes

    Vous pouvez utiliser à la fois les résultats de recherche basés sur des outils et de haut niveau dans la même conversation :

    # First message with top-level search results
    messages = [
        MessageParam(
            role="user",
            content=[
                SearchResultBlockParam(
                    type="search_result",
                    source="https://docs.company.com/overview",
                    title="Product Overview",
                    content=[
                        TextBlockParam(type="text", text="Our product helps teams collaborate...")
                    ],
                    citations={"enabled": True}
                ),
                TextBlockParam(
                    type="text",
                    text="Tell me about this product and search for pricing information"
                )
            ]
        )
    ]
    
    # Claude might respond and call a tool to search for pricing
    # Then you provide tool results with more search results

    Combinaison avec d'autres types de contenu

    Les deux méthodes supportent le mélange des résultats de recherche avec d'autres contenus :

    # In tool results
    tool_result = [
        SearchResultBlockParam(
            type="search_result",
            source="https://docs.company.com/guide",
            title="User Guide",
            content=[TextBlockParam(type="text", text="Configuration details...")],
            citations={"enabled": True}
        ),
        TextBlockParam(
            type="text",
            text="Additional context: This applies to version 2.0 and later."
        )
    ]
    
    # In top-level content
    user_content = [
        SearchResultBlockParam(
            type="search_result",
            source="https://research.com/paper",
            title="Research Paper",
            content=[TextBlockParam(type="text", text="Key findings...")],
            citations={"enabled": True}
        ),
        {
            "type": "image",
            "source": {"type": "url", "url": "https://example.com/chart.png"}
        },
        TextBlockParam(
            type="text",
            text="How does the chart relate to the research findings?"
        )
    ]

    Contrôle du cache

    Ajoutez le contrôle du cache pour de meilleures performances :

    {
      "type": "search_result",
      "source": "https://docs.company.com/guide",
      "title": "User Guide",
      "content": [{"type": "text", "text": "..."}],
      "cache_control": {
        "type": "ephemeral"
      }
    }

    Contrôle des citations

    Par défaut, les citations sont désactivées pour les résultats de recherche. Vous pouvez activer les citations en définissant explicitement la configuration citations :

    {
      "type": "search_result",
      "source": "https://docs.company.com/guide",
      "title": "User Guide",
      "content": [{"type": "text", "text": "Important documentation..."}],
      "citations": {
        "enabled": true  // Enable citations for this result
      }
    }

    Lorsque citations.enabled est défini sur true, Claude inclura des références de citation lors de l'utilisation d'informations du résultat de recherche. Cela permet :

    • Les citations naturelles pour vos applications RAG personnalisées
    • L'attribution de source lors de l'interfaçage avec des bases de connaissances propriétaires
    • Les citations de qualité web pour tout outil personnalisé qui retourne des résultats de recherche

    Si le champ citations est omis, les citations sont désactivées par défaut.

    Les citations sont tout ou rien : soit tous les résultats de recherche dans une requête doivent avoir les citations activées, soit tous doivent les avoir désactivées. Le mélange de résultats de recherche avec des paramètres de citation différents entraînera une erreur. Si vous avez besoin de désactiver les citations pour certaines sources, vous devez les désactiver pour tous les résultats de recherche dans cette requête.

    Meilleures pratiques

    Pour la recherche basée sur des outils (Méthode 1)

    • Contenu dynamique : Utilisez pour les recherches en temps réel et les applications RAG dynamiques
    • Gestion des erreurs : Retournez les messages appropriés lorsque les recherches échouent
    • Limites des résultats : Retournez uniquement les résultats les plus pertinents pour éviter le débordement de contexte

    Pour la recherche de haut niveau (Méthode 2)

    • Contenu pré-récupéré : Utilisez lorsque vous avez déjà des résultats de recherche
    • Traitement par lot : Idéal pour traiter plusieurs résultats de recherche à la fois
    • Tests : Excellent pour tester le comportement des citations avec un contenu connu

    Meilleures pratiques générales

    1. Structurez les résultats efficacement

      • Utilisez des URL source claires et permanentes
      • Fournissez des titres descriptifs
      • Divisez le contenu long en blocs de texte logiques
    2. Maintenez la cohérence

      • Utilisez des formats de source cohérents dans votre application
      • Assurez-vous que les titres reflètent avec précision le contenu
      • Conservez la mise en forme cohérente
    3. Gérez les erreurs avec élégance

      def search_with_fallback(query):
          try:
              results = perform_search(query)
              if not results:
                  return {"type": "text", "text": "No results found."}
              return format_as_search_results(results)
          except Exception as e:
              return {"type": "text", "text": f"Search error: {str(e)}"}

    Limitations

    • Les blocs de contenu des résultats de recherche sont disponibles sur l'API Claude et sur Vertex AI de Google Cloud
    • Seul le contenu textuel est supporté dans les résultats de recherche (pas d'images ou d'autres médias)
    • Le tableau content doit contenir au moins un bloc de texte
    • Avantages clés
    • Comment ça marche
    • Schéma des résultats de recherche
    • Champs obligatoires
    • Champs optionnels
    • Méthode 1 : Résultats de recherche à partir d'appels d'outils
    • Exemple : Outil de base de connaissances
    • Méthode 2 : Résultats de recherche comme contenu de haut niveau
    • Exemple : Résultats de recherche directs
    • Réponse de Claude avec citations
    • Champs de citation
    • Blocs de contenu multiples
    • Utilisation avancée
    • Combinaison des deux méthodes
    • Combinaison avec d'autres types de contenu
    • Contrôle du cache
    • Contrôle des citations
    • Meilleures pratiques
    • Pour la recherche basée sur des outils (Méthode 1)
    • Pour la recherche de haut niveau (Méthode 2)
    • Meilleures pratiques générales
    • Limitations
    © 2025 ANTHROPIC PBC

    Products

    • Claude
    • Claude Code
    • Max plan
    • Team plan
    • Enterprise plan
    • Download app
    • Pricing
    • Log in

    Features

    • Claude and Slack
    • Claude in Excel

    Models

    • Opus
    • Sonnet
    • Haiku

    Solutions

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

    Claude Developer Platform

    • Overview
    • Developer docs
    • Pricing
    • Amazon Bedrock
    • Google Cloud’s Vertex AI
    • Console login

    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

    Help and security

    • Availability
    • Status
    • Support center

    Terms and policies

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

    Products

    • Claude
    • Claude Code
    • Max plan
    • Team plan
    • Enterprise plan
    • Download app
    • Pricing
    • Log in

    Features

    • Claude and Slack
    • Claude in Excel

    Models

    • Opus
    • Sonnet
    • Haiku

    Solutions

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

    Claude Developer Platform

    • Overview
    • Developer docs
    • Pricing
    • Amazon Bedrock
    • Google Cloud’s Vertex AI
    • Console login

    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

    Help and security

    • Availability
    • Status
    • Support center

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    © 2025 ANTHROPIC PBC