Claude Platform Docs
  • Messages
  • Managed Agents
  • Admin

Search...
⌘K
Erste Schritte
Einführung in ClaudeSchnellstart
Entwickeln mit Claude
FunktionsübersichtVerwendung der Messages APIStop-Gründe und FallbackAblehnungen und FallbackFallback-Guthaben
Modellfähigkeiten
Erweitertes DenkenAdaptives DenkenEffortAufgabenbudgets (Beta)Schnellmodus (Forschungsvorschau)Strukturierte AusgabenZitateStreaming von MessagesBatch-VerarbeitungSuchergebnisseStreaming von AblehnungenMehrsprachige UnterstützungEmbeddings
Tools
ÜbersichtFunktionsweise der Tool-NutzungTutorial: Einen Tool-nutzenden Agenten erstellenTools definierenTool-Aufrufe verarbeitenParallele Tool-NutzungTool Runner (SDK)Strikte Tool-NutzungServer-ToolsWebsuche-ToolWeb-Fetch-ToolCodeausführungs-ToolAdvisor-ToolTool-Suche-ToolMemory-ToolBash-ToolTexteditor-ToolComputer-Use-ToolFehlerbehebung
Tool-Infrastruktur
Tool-ReferenzTool-Kontext verwaltenTool-KombinationenTool-Nutzung mit Prompt-CachingProgrammatischer Tool-AufrufFeingranulares Tool-Streaming
Kontextverwaltung
KontextfensterKompaktierungKontextbearbeitungPrompt-CachingSystemnachrichten während der KonversationEinen Orchestrierungsmodus erstellenCache-Diagnose (Beta)Token-Zählung
Arbeiten mit Dateien
Files APIPDF-Unterstützung
Skills
ÜbersichtSchnellstartBest PracticesSkills für UnternehmenSkills in der API
MCP
Remote-MCP-ServerMCP-Connector
Claude auf Cloud-Plattformen
Amazon BedrockAmazon Bedrock (Legacy)Claude Platform auf AWSGoogle CloudMicrosoft Foundry

Log in
Suchergebnisse
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

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

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • 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
  • 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
Messages/Modellfähigkeiten

Suchergebnisse

Ermögliche natürliche Zitate für RAG-Anwendungen durch Bereitstellung von Suchergebnissen mit Quellenangabe


Diese Funktion ist für Zero Data Retention (ZDR) qualifiziert. Wenn deine Organisation eine ZDR-Vereinbarung hat, werden Daten, die über diese Funktion gesendet werden, nicht gespeichert, nachdem die API-Antwort zurückgegeben wurde.

Suchergebnis-Inhaltsblöcke ermöglichen natürliche Zitate mit korrekter Quellenangabe und bringen Zitate in Websuche-Qualität in deine eigenen Anwendungen. Diese Funktion ist besonders leistungsstark für RAG-Anwendungen („Retrieval-Augmented Generation", abrufgestützte Generierung), bei denen Claude Quellen präzise zitieren soll.

Die Suchergebnis-Funktion ist für die folgenden Modelle verfügbar:

  • Claude Opus 4.8 (claude-opus-4-8)
  • Claude Opus 4.7 (claude-opus-4-7)
  • Claude Opus 4.6 (claude-opus-4-6)
  • Claude Sonnet 5 (claude-sonnet-5)
  • Claude Sonnet 4.6 (claude-sonnet-4-6)
  • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
  • Claude Opus 4.5 (claude-opus-4-5-20251101)
  • Claude Opus 4.1 (veraltet) (claude-opus-4-1-20250805)
  • Claude Opus 4 (eingestellt, außer auf Google Cloud) (claude-opus-4-20250514)
  • Claude Sonnet 4 (eingestellt, außer auf Bedrock und Google Cloud) (claude-sonnet-4-20250514)
  • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
  • Claude Haiku 3.5 (eingestellt, außer auf Bedrock und Google Cloud) (claude-3-5-haiku-20241022)

Wichtigste Vorteile

  • Natürliche Zitate: Erreiche die gleiche Zitatqualität wie bei der Websuche für beliebige Inhalte
  • Flexible Integration: Verwende sie in Tool-Rückgaben für dynamisches RAG oder als Top-Level-Inhalt für vorab abgerufene Daten
  • Korrekte Quellenangabe: Jedes Ergebnis enthält Quellen- und Titelinformationen für eine klare Zuordnung
  • Keine Dokument-Workarounds nötig: Macht dokumentbasierte Workarounds überflüssig
  • Konsistentes Zitatformat: Entspricht der Zitatqualität und dem Format der Websuche-Funktionalität von Claude

Funktionsweise

Suchergebnisse können auf zwei Arten bereitgestellt werden:

  1. Aus Tool-Aufrufen: Deine eigenen Tools geben Suchergebnisse zurück und ermöglichen so dynamische RAG-Anwendungen
  2. Als Top-Level-Inhalt: Du stellst Suchergebnisse direkt in Benutzernachrichten bereit, für vorab abgerufene oder gecachte Inhalte

In beiden Fällen kann Claude Informationen aus den Suchergebnissen automatisch mit korrekter Quellenangabe zitieren.

Suchergebnis-Schema

Suchergebnisse verwenden die folgende Struktur:

{
  "type": "search_result",
  "source": "https://example.com/article", // Required: Source URL or identifier
  "title": "Article Title", // Required: Title of the result
  "content": [
    // Required: Array of text blocks
    {
      "type": "text",
      "text": "The actual content of the search result..."
    }
  ],
  "citations": {
    // Optional: Citation configuration
    "enabled": true // Enable/disable citations for this result
  }
}

Pflichtfelder

FeldTypBeschreibung
typestringMuss "search_result" sein
sourcestringDie Quell-URL oder der Bezeichner für den Inhalt
titlestringEin beschreibender Titel für das Suchergebnis
contentarrayEin Array von Textblöcken, die den eigentlichen Inhalt enthalten

Optionale Felder

FeldTypBeschreibung
citationsobjectZitatkonfiguration mit dem booleschen Feld enabled
cache_controlobjectCache-Control-Einstellungen (z. B. {"type": "ephemeral"})

Jedes Element im content-Array muss ein Textblock sein mit:

  • type: Muss "text" sein
  • text: Der eigentliche Textinhalt (nicht-leerer String)

Methode 1: Suchergebnisse aus Tool-Aufrufen

Der leistungsstärkste Anwendungsfall ist die Rückgabe von Suchergebnissen aus deinen eigenen Tools. Dies ermöglicht dynamische RAG-Anwendungen, bei denen Tools relevante Inhalte abrufen und mit automatischen Zitaten zurückgeben.

Beispiel: Wissensdatenbank-Tool

from anthropic.types import (
    MessageParam,
    TextBlockParam,
    SearchResultBlockParam,
    ToolResultBlockParam,
)

client = Anthropic()

# Definiere ein Tool zur Wissensdatenbank-Suche
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"],
    },
}


# Funktion zum Verarbeiten des Tool-Aufrufs
def search_knowledge_base(query):
    # Deine Suchlogik hier
    # Gibt Suchergebnisse im korrekten Format zurück
    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},
        ),
    ]


# Erstelle eine Nachricht mit dem Tool
response = client.messages.create(
    model="claude-opus-4-8",  # Works with all supported models
    max_tokens=1024,
    tools=[knowledge_base_tool],
    messages=[
        MessageParam(role="user", content="How do I configure the timeout settings?")
    ],
)

# Wenn Claude das Tool aufruft, stelle die Suchergebnisse bereit
if response.content[0].type == "tool_use":
    tool_result = search_knowledge_base(response.content[0].input["query"])

    # Sende das Tool-Ergebnis zurück
    final_response = client.messages.create(
        model="claude-opus-4-8",  # 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
                    )
                ],
            ),
        ],
    )

Methode 2: Suchergebnisse als Top-Level-Inhalt

Du kannst Suchergebnisse auch direkt in Benutzernachrichten bereitstellen. Dies ist nützlich für:

  • Vorab abgerufene Inhalte aus deiner Suchinfrastruktur
  • Gecachte Suchergebnisse aus früheren Abfragen
  • Inhalte von externen Suchdiensten
  • Tests und Entwicklung

Beispiel: Direkte Suchergebnisse

from anthropic.types import MessageParam, TextBlockParam, SearchResultBlockParam

client = Anthropic()

# Stelle Suchergebnisse direkt in der Benutzernachricht bereit
response = client.messages.create(
    model="claude-opus-4-8",
    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)

Claudes Antwort mit Zitaten

Unabhängig davon, wie Suchergebnisse bereitgestellt werden, fügt Claude automatisch Zitate hinzu, wenn Informationen daraus verwendet werden:

{
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "All API requests must include an API key in the Authorization header. Keys can be generated from the dashboard.",
      "citations": [
        {
          "type": "search_result_location",
          "cited_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.",
          "source": "https://docs.company.com/api-reference",
          "title": "API Reference - Authentication",
          "search_result_index": 0,
          "start_block_index": 0,
          "end_block_index": 1
        }
      ]
    },
    {
      "type": "text",
      "text": "\n\nTo set this up from scratch, you'll need to "
    },
    {
      "type": "text",
      "text": "sign up for an account, generate an API key from the dashboard, install the SDK using `pip install company-sdk`, and initialize the client with your API key.",
      "citations": [
        {
          "type": "search_result_location",
          "cited_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.",
          "source": "https://docs.company.com/quickstart",
          "title": "Getting Started Guide",
          "search_result_index": 1,
          "start_block_index": 0,
          "end_block_index": 1
        }
      ]
    }
  ]
}

Zitatfelder

Jedes Zitat enthält:

FeldTypBeschreibung
typestringImmer "search_result_location" für Suchergebnis-Zitate
sourcestringDie Quelle aus dem ursprünglichen Suchergebnis
titlestring oder nullDer Titel aus dem ursprünglichen Suchergebnis
cited_textstringDer vollständige Text der zitierten Blöcke, aneinandergereiht. Entspricht dem Inhalt von content[start_block_index:end_block_index] zusammengefügt. Wird nicht auf die Output-Token angerechnet.
search_result_indexinteger0-basierter Index des zitierten Suchergebnisses unter allen search_result-Blöcken in der Anfrage, in der Reihenfolge ihres Auftretens (über alle Nachrichten und Tool-Ergebnisse hinweg).
start_block_indexinteger0-basierter Index des ersten zitierten Blocks im content-Array des Suchergebnisses.
end_block_indexintegerExklusiver End-Index des zitierten Blockbereichs im content-Array des Suchergebnisses. Immer größer als start_block_index.

Die Block-Indizes identifizieren einen Ausschnitt des content-Arrays des Suchergebnisses, und cited_text ist der vollständige Text dieses Ausschnitts. Der Textblock ist die kleinste zitierbare Einheit: Claude zitiert ganze Blöcke, keine Teilstrings innerhalb eines Blocks. Um feinere Zitate zu erhalten, teile den Inhalt deines Suchergebnisses in kleinere Blöcke auf (siehe Mehrere Inhaltsblöcke).

Mehrere Inhaltsblöcke

Suchergebnisse können mehrere Textblöcke im content-Array enthalten:

{
  "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."
    }
  ]
}

Ein Zitat, das auf den Ratenlimit-Block verweist, sieht so aus:

{
  "type": "search_result_location",
  "cited_text": "Rate Limits: The API allows 1000 requests per hour per key.",
  "source": "https://docs.company.com/api-guide",
  "title": "API Documentation",
  "search_result_index": 0,
  "start_block_index": 1,
  "end_block_index": 2
}

Wenn dieses Suchergebnis zitiert wird, geben start_block_index und end_block_index an, welche dieser Blöcke das Zitat abdeckt, und cited_text enthält genau den Text dieser Blöcke. Das Aufteilen von Inhalten in kleinere, fokussierte Blöcke gibt Claude feinere Zitatgrenzen; das Zusammenfassen von Inhalten in einem Block bedeutet, dass jedes Zitat den vollständigen Text zurückgibt. Dies ist dasselbe Modell, das von Dokumenten mit benutzerdefiniertem Inhalt in der Zitat-Funktion verwendet wird.

Erweiterte Nutzung

Kombination beider Methoden

Du kannst sowohl tool-basierte als auch Top-Level-Suchergebnisse in derselben Konversation verwenden:

from anthropic.types import MessageParam, SearchResultBlockParam, TextBlockParam

# Erste Nachricht mit Suchergebnissen auf oberster Ebene
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 könnte antworten und ein Tool aufrufen, um nach Preisen zu suchen
# Dann stellst du Tool-Ergebnisse mit weiteren Suchergebnissen bereit

Kombination mit anderen Inhaltstypen

Beide Methoden unterstützen das Mischen von Suchergebnissen mit anderen Inhalten:

from anthropic.types import SearchResultBlockParam, TextBlockParam

# In Tool-Ergebnissen
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-Inhalten
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?"
    ),
]

Cache-Control

Füge Cache-Control für bessere Performance hinzu:

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

Zitat-Steuerung

Standardmäßig sind Zitate für Suchergebnisse deaktiviert. Du kannst Zitate aktivieren, indem du die citations-Konfiguration explizit setzt:

{
  "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
  }
}

Wenn citations.enabled auf true gesetzt ist, fügt Claude Zitatverweise hinzu, wenn Informationen aus dem Suchergebnis verwendet werden. Dies ermöglicht:

  • Natürliche Zitate für deine eigenen RAG-Anwendungen
  • Quellenangabe bei der Anbindung an proprietäre Wissensdatenbanken
  • Zitate in Websuche-Qualität für jedes eigene Tool, das Suchergebnisse zurückgibt


Zitate sind alles oder nichts: Entweder müssen alle Suchergebnisse in einer Anfrage Zitate aktiviert haben, oder alle müssen sie deaktiviert haben. Das Mischen von Suchergebnissen mit unterschiedlichen Zitat-Einstellungen führt zu einem Fehler.

Best Practices

Für tool-basierte Suche (Methode 1)

  • Dynamische Inhalte: Verwende sie für Echtzeit-Suchen und dynamische RAG-Anwendungen
  • Fehlerbehandlung: Gib geeignete Meldungen zurück, wenn Suchen fehlschlagen
  • Ergebnislimits: Gib nur die relevantesten Ergebnisse zurück, um einen Überlauf des Kontextfensters zu vermeiden

Für Top-Level-Suche (Methode 2)

  • Vorab abgerufene Inhalte: Verwende sie, wenn du bereits Suchergebnisse hast
  • Batch-Verarbeitung: Ideal für die Verarbeitung mehrerer Suchergebnisse auf einmal
  • Tests: Hervorragend geeignet zum Testen des Zitatverhaltens mit bekannten Inhalten

Allgemeine Best Practices

  1. Strukturiere Ergebnisse effektiv:

    • Verwende klare, dauerhafte Quell-URLs
    • Gib beschreibende Titel an
    • Teile lange Inhalte in logische Textblöcke auf, um Claude feinere Zitatgrenzen zu geben
  2. Sorge für Konsistenz:

    • Verwende einheitliche Quellformate in deiner gesamten Anwendung
    • Stelle sicher, dass Titel den Inhalt korrekt widerspiegeln
    • Halte die Formatierung konsistent
  3. Behandle Fehler elegant:

    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)}"}

Einschränkungen

  • Suchergebnis-Inhaltsblöcke sind über die Claude API, Amazon Bedrock und Google Cloud verfügbar
  • Innerhalb von Suchergebnissen wird nur Textinhalt unterstützt (keine Bilder oder andere Medien)
  • Das content-Array muss mindestens einen Textblock enthalten

Nächste Schritte


Zitate

Erfahre, wie Zitate über Dokumente, benutzerdefinierte Inhalte und Suchergebnisse hinweg funktionieren.

Websuche-Tool

Lass Claude das Web durchsuchen und Quellen automatisch mit einem Server-Tool zitieren.


Messages-API-Referenz

Sieh dir die vollständige Messages-API-Dokumentation an, einschließlich der Inhaltsblock-Typen.

Prompt-Caching

Cache Suchergebnisse mit cache_control, um Kosten und Latenz bei wiederholten Anfragen zu reduzieren.

Was this page helpful?

  • Wichtigste Vorteile
  • Funktionsweise
  • Suchergebnis-Schema
  • Pflichtfelder
  • Optionale Felder
  • Methode 1: Suchergebnisse aus Tool-Aufrufen
  • Beispiel: Wissensdatenbank-Tool
  • Methode 2: Suchergebnisse als Top-Level-Inhalt
  • Beispiel: Direkte Suchergebnisse
  • Claudes Antwort mit Zitaten
  • Zitatfelder
  • Mehrere Inhaltsblöcke
  • Erweiterte Nutzung
  • Kombination beider Methoden
  • Kombination mit anderen Inhaltstypen
  • Cache-Control
  • Zitat-Steuerung
  • Best Practices
  • Für tool-basierte Suche (Methode 1)
  • Für Top-Level-Suche (Methode 2)
  • Allgemeine Best Practices
  • Einschränkungen
  • Nächste Schritte