Loading...
    • Руководство разработчика
    • Справочник API
    • MCP
    • Ресурсы
    • Примечания к выпуску
    Search...
    ⌘K

    Первые шаги

    Введение в ClaudeБыстрый старт

    Модели и цены

    Обзор моделейВыбор моделиЧто нового в Claude 4.5Миграция на Claude 4.5Снятие моделей с поддержкиЦены

    Создавайте с Claude

    Обзор функцийРабота с API MessagesКонтекстные окнаЛучшие практики создания промптов

    Возможности

    Кэширование подсказокРедактирование контекстаРасширенное мышлениеПотоковые сообщенияПакетная обработкаЦитированиеМногоязычная поддержкаПодсчет токеновЭмбеддингиЗрениеПоддержка PDFFiles APIРезультаты поискаДополнение для Google Sheets

    Инструменты

    ОбзорКак реализовать использование инструментовЭкономное использование инструментов по токенамДетализированная потоковая передача инструментовИнструмент BashИнструмент выполнения кодаИнструмент компьютерного управленияИнструмент текстового редактораИнструмент веб-выборкиИнструмент веб-поискаИнструмент памяти

    Навыки агента

    Навыки агентаНачало работы с Agent Skills в APIЛучшие практики создания SkillsИспользование Agent Skills с API

    SDK для агентов

    ОбзорСправочник Agent SDK - TypeScriptСправочник Agent SDK - Python

    Руководства

    Потоковый вводУправление разрешениямиУправление сессиямиРазмещение Agent SDKИзменение системных промптовMCP в SDKПользовательские инструментыСубагенты в SDKСлэш-команды в SDKНавыки агента в SDKОтслеживание затрат и использованияСписки задачПлагины в SDK

    MCP в API

    MCP коннекторУдаленные MCP серверы

    Claude на сторонних платформах

    Amazon BedrockVertex AI

    Инженерия подсказок

    ОбзорГенератор промптовИспользование шаблонов промптовУлучшитель промптовБудьте ясными и прямымиИспользуйте примеры (мультишотовый промптинг)Позвольте Claude думать (CoT)Используйте XML-тегиНазначьте роль Claude (системные промпты)Предварительное заполнение ответа ClaudeЦепочки сложных промптовСоветы по длинному контекстуСоветы по расширенному мышлению

    Тестирование и оценка

    Определите критерии успехаРазработка тестовых случаевИспользование инструмента оценкиСнижение задержки

    Усилить защиту

    Уменьшение галлюцинацийПовышение согласованности выводаПредотвращение взломаhandle-streaming-refusalsУменьшение утечки промптаПоддержание характера Claude

    Администрирование и мониторинг

    Обзор Admin APIAPI использования и стоимостиClaude Code Analytics API
    Console
    Возможности

    Результаты поиска

    Включите естественные цитирования для приложений RAG, предоставляя результаты поиска с указанием источника

    Блоки содержимого результатов поиска обеспечивают естественные цитирования с надлежащим указанием источника, привнося цитирования качества веб-поиска в ваши пользовательские приложения. Эта функция особенно мощна для приложений RAG (Retrieval-Augmented Generation), где вам нужно, чтобы Claude точно указывал источники.

    Функция результатов поиска доступна на следующих моделях:

    • 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 (устарела) (claude-3-7-sonnet-20250219)
    • Claude 3.5 Haiku (claude-3-5-haiku-20241022)

    Ключевые преимущества

    • Естественные цитирования - Достигните того же качества цитирования, что и веб-поиск, для любого содержимого
    • Гибкая интеграция - Используйте в возвращаемых значениях инструментов для динамического RAG или как содержимое верхнего уровня для предварительно загруженных данных
    • Надлежащее указание источника - Каждый результат включает информацию об источнике и названии для четкого указания источника
    • Не требуются обходные пути на основе документов - Исключает необходимость в обходных путях на основе документов
    • Согласованный формат цитирования - Соответствует качеству и формату цитирования функции веб-поиска Claude

    Как это работает

    Результаты поиска можно предоставить двумя способами:

    1. Из вызовов инструментов - Ваши пользовательские инструменты возвращают результаты поиска, обеспечивая динамические приложения RAG
    2. Как содержимое верхнего уровня - Вы предоставляете результаты поиска непосредственно в сообщениях пользователя для предварительно загруженного или кэшированного содержимого

    В обоих случаях Claude может автоматически цитировать информацию из результатов поиска с надлежащим указанием источника.

    Схема результата поиска

    Результаты поиска используют следующую структуру:

    {
      "type": "search_result",
      "source": "https://example.com/article",  // Обязательно: URL источника или идентификатор
      "title": "Article Title",                  // Обязательно: Название результата
      "content": [ // Обязательно: Массив текстовых блоков
        {
          "type": "text",
          "text": "The actual content of the search result..."
        }
      ],
      "citations": {                             // Необязательно: Конфигурация цитирования
        "enabled": true                          // Включить/отключить цитирования для этого результата
      }
    }

    Обязательные поля

    ПолеТипОписание
    typestringДолжно быть "search_result"
    sourcestringURL источника или идентификатор содержимого
    titlestringОписательное название для результата поиска
    contentarrayМассив текстовых блоков, содержащих фактическое содержимое

    Необязательные поля

    ПолеТипОписание
    citationsobjectКонфигурация цитирования с логическим полем enabled
    cache_controlobjectПараметры управления кэшем (например, {"type": "ephemeral"})

    Каждый элемент в массиве content должен быть текстовым блоком с:

    • type: Должно быть "text"
    • text: Фактическое текстовое содержимое (непустая строка)

    Метод 1: Результаты поиска из вызовов инструментов

    Наиболее мощный вариант использования - возврат результатов поиска из ваших пользовательских инструментов. Это обеспечивает динамические приложения RAG, где инструменты получают и возвращают релевантное содержимое с автоматическими цитированиями.

    Пример: Инструмент базы знаний

    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
                        )
                    ]
                )
            ]
        )

    Метод 2: Результаты поиска как содержимое верхнего уровня

    Вы также можете предоставить результаты поиска непосредственно в сообщениях пользователя. Это полезно для:

    • Предварительно загруженного содержимого из вашей инфраструктуры поиска
    • Кэшированных результатов поиска из предыдущих запросов
    • Содержимого из внешних служб поиска
    • Тестирования и разработки

    Пример: Прямые результаты поиска

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

    Ответ Claude с цитированиями

    Независимо от того, как предоставляются результаты поиска, Claude автоматически включает цитирования при использовании информации из них:

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

    Поля цитирования

    Каждое цитирование включает:

    ПолеТипОписание
    typestringВсегда "search_result_location" для цитирований результатов поиска
    sourcestringИсточник из исходного результата поиска
    titlestring или nullНазвание из исходного результата поиска
    cited_textstringТочный цитируемый текст
    search_result_indexintegerИндекс результата поиска (начиная с 0)
    start_block_indexintegerНачальная позиция в массиве содержимого
    end_block_indexintegerКонечная позиция в массиве содержимого

    Примечание: search_result_index относится к индексу блока содержимого результата поиска (начиная с 0), независимо от того, как были предоставлены результаты поиска (вызов инструмента или содержимое верхнего уровня).

    Несколько блоков содержимого

    Результаты поиска могут содержать несколько текстовых блоков в массиве 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 может цитировать конкретные блоки, используя поля start_block_index и end_block_index.

    Расширенное использование

    Объединение обоих методов

    Вы можете использовать результаты поиска на основе инструментов и содержимое верхнего уровня в одном разговоре:

    # 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

    Объединение с другими типами содержимого

    Оба метода поддерживают смешивание результатов поиска с другим содержимым:

    # 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?"
        )
    ]

    Управление кэшем

    Добавьте управление кэшем для лучшей производительности:

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

    Управление цитированиями

    По умолчанию цитирования отключены для результатов поиска. Вы можете включить цитирования, явно установив конфигурацию 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
      }
    }

    Когда citations.enabled установлено на true, Claude будет включать ссылки на цитирования при использовании информации из результата поиска. Это обеспечивает:

    • Естественные цитирования для ваших пользовательских приложений RAG
    • Указание источника при взаимодействии с собственными базами знаний
    • Цитирования качества веб-поиска для любого пользовательского инструмента, который возвращает результаты поиска

    Если поле citations опущено, цитирования отключены по умолчанию.

    Цитирования - это все или ничего: либо все результаты поиска в запросе должны иметь включенные цитирования, либо все должны иметь их отключенными. Смешивание результатов поиска с различными параметрами цитирования приведет к ошибке. Если вам нужно отключить цитирования для некоторых источников, вы должны отключить их для всех результатов поиска в этом запросе.

    Лучшие практики

    Для поиска на основе инструментов (Метод 1)

    • Динамическое содержимое: Используйте для поиска в реальном времени и динамических приложений RAG
    • Обработка ошибок: Возвращайте соответствующие сообщения при сбое поиска
    • Ограничения результатов: Возвращайте только наиболее релевантные результаты, чтобы избежать переполнения контекста

    Для поиска верхнего уровня (Метод 2)

    • Предварительно загруженное содержимое: Используйте, когда у вас уже есть результаты поиска
    • Пакетная обработка: Идеально подходит для обработки нескольких результатов поиска одновременно
    • Тестирование: Отлично подходит для тестирования поведения цитирования с известным содержимым

    Общие лучшие практики

    1. Эффективно структурируйте результаты

      • Используйте четкие, постоянные URL-адреса источников
      • Предоставляйте описательные названия
      • Разбивайте длинное содержимое на логические текстовые блоки
    2. Поддерживайте согласованность

      • Используйте согласованные форматы источников в вашем приложении
      • Убедитесь, что названия точно отражают содержимое
      • Сохраняйте согласованное форматирование
    3. Обрабатывайте ошибки корректно

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

    Ограничения

    • Блоки содержимого результатов поиска доступны на Claude API и Google Cloud's Vertex AI
    • Внутри результатов поиска поддерживается только текстовое содержимое (без изображений или других медиа)
    • Массив content должен содержать по крайней мере один текстовый блок
    • Ключевые преимущества
    • Как это работает
    • Схема результата поиска
    • Обязательные поля
    • Необязательные поля
    • Метод 1: Результаты поиска из вызовов инструментов
    • Пример: Инструмент базы знаний
    • Метод 2: Результаты поиска как содержимое верхнего уровня
    • Пример: Прямые результаты поиска
    • Ответ Claude с цитированиями
    • Поля цитирования
    • Несколько блоков содержимого
    • Расширенное использование
    • Объединение обоих методов
    • Объединение с другими типами содержимого
    • Управление кэшем
    • Управление цитированиями
    • Лучшие практики
    • Для поиска на основе инструментов (Метод 1)
    • Для поиска верхнего уровня (Метод 2)
    • Общие лучшие практики
    • Ограничения
    © 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