Loading...
    • Руководство разработчика
    • Справочник API
    • MCP
    • Ресурсы
    • Примечания к выпуску
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Модели и цены
    Обзор моделейВыбор моделиЧто нового в Claude 4.6Руководство миграцииУстаревшие моделиЦены
    Разработка с Claude
    Обзор функцийИспользование Messages APIОбработка причин остановкиЛучшие практики промптирования
    Возможности модели
    Extended thinkingAdaptive thinkingУсилиеБыстрый режим (preview)Структурированные выходные данныеЦитированияПотоковая передача сообщенийПакетная обработкаПоддержка PDFРезультаты поискаМногоязычная поддержкаEmbeddingsЗрение
    Инструменты
    ОбзорКак реализовать использование инструментовИнструмент веб-поискаИнструмент веб-загрузкиИнструмент выполнения кодаИнструмент памятиИнструмент BashИнструмент управления компьютеромИнструмент текстового редактора
    Инфраструктура инструментов
    Поиск инструментовПрограммный вызов инструментовПотоковая передача инструментов с детализацией
    Управление контекстом
    Контекстные окнаСжатиеРедактирование контекстаКэширование промптовПодсчет токенов
    Файлы и ресурсы
    Files API
    Agent Skills
    ОбзорБыстрый стартЛучшие практикиSkills для предприятийИспользование Skills с API
    Agent SDK
    ОбзорБыстрый стартTypeScript SDKTypeScript V2 (preview)Python SDKРуководство миграции
    MCP в API
    MCP коннекторУдаленные MCP серверы
    Claude на платформах третьих сторон
    Amazon BedrockMicrosoft FoundryVertex AI
    Инженерия промптов
    ОбзорГенератор промптовИспользование шаблонов промптовУлучшитель промптовБудьте ясны и прямолинейныИспользуйте примеры (многошаговое промптирование)Дайте Claude думать (CoT)Используйте XML тегиДайте Claude роль (системные промпты)Цепочка сложных промптовСоветы для длинного контекстаСоветы для Extended thinking
    Тестирование и оценка
    Определение критериев успехаРазработка тестовых случаевИспользование инструмента оценкиСнижение задержки
    Укрепление защиты
    Снижение галлюцинацийУвеличение согласованности выходных данныхСмягчение jailbreaksПотоковая передача отказовСнижение утечки промптаДержите Claude в образе
    Администрирование и мониторинг
    Обзор Admin APIРезидентность данныхРабочие пространстваUsage and Cost APIClaude Code Analytics APIZero Data Retention
    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
    Инфраструктура инструментов

    Потоковая передача инструментов с точной детализацией

    Потоковая передача инструментов с точной детализацией доступна на всех моделях и платформах без требования бета-заголовка. Она позволяет передавать значения параметров использования инструментов потоком без буферизации или проверки JSON, снижая задержку при получении больших параметров.

    Потоковая передача инструментов с точной детализацией доступна на всех моделях и всех платформах без требования бета-заголовка. Она позволяет потоковую передачу значений параметров использования инструментов без буферизации или проверки JSON, снижая задержку при начале получения больших параметров.

    При использовании потоковой передачи инструментов с точной детализацией вы можете потенциально получить недействительные или частичные входные данные JSON. Убедитесь, что вы учитываете эти граничные случаи в вашем коде.

    Как использовать потоковую передачу инструментов с точной детализацией

    Потоковая передача инструментов с точной детализацией доступна на всех моделях и всех платформах (Claude API, Amazon Bedrock, Google Vertex AI и Microsoft Foundry). Чтобы использовать её, установите eager_input_streaming в true для любого инструмента, где вы хотите включить потоковую передачу с точной детализацией, и включите потоковую передачу в вашем запросе.

    Вот пример использования потоковой передачи инструментов с точной детализацией с API:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-opus-4-6",
        "max_tokens": 65536,
        "tools": [
          {
            "name": "make_file",
            "description": "Write text to a file",
            "eager_input_streaming": true,
            "input_schema": {
              "type": "object",
              "properties": {
                "filename": {
                  "type": "string",
                  "description": "The filename to write text to"
                },
                "lines_of_text": {
                  "type": "array",
                  "description": "An array of lines of text to write to the file"
                }
              },
              "required": ["filename", "lines_of_text"]
            }
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Can you write a long poem and make a file called poem.txt?"
          }
        ],
        "stream": true
      }' | jq '.usage'

    В этом примере потоковая передача инструментов с точной детализацией позволяет Claude передавать строки длинного стихотворения потоком в вызов инструмента make_file без буферизации для проверки того, является ли параметр lines_of_text действительным JSON. Это означает, что вы можете видеть поток параметров по мере его поступления, без необходимости ждать буферизации и проверки всего параметра.

    При потоковой передаче инструментов с точной детализацией фрагменты использования инструментов начинают передаваться быстрее и часто бывают длиннее и содержат меньше разрывов слов. Это связано с различиями в поведении разбиения на фрагменты.

    Пример:

    Без потоковой передачи с точной детализацией (задержка 15 сек):

    Chunk 1: '{"'
    Chunk 2: 'query": "Ty'
    Chunk 3: 'peScri'
    Chunk 4: 'pt 5.0 5.1 '
    Chunk 5: '5.2 5'
    Chunk 6: '.3'
    Chunk 8: ' new f'
    Chunk 9: 'eatur'
    ...

    С потоковой передачей с точной детализацией (задержка 3 сек):

    Chunk 1: '{"query": "TypeScript 5.0 5.1 5.2 5.3'
    Chunk 2: ' new features comparison'

    Поскольку потоковая передача с точной детализацией отправляет параметры без буферизации или проверки JSON, нет гарантии, что результирующий поток завершится действительной строкой JSON. В частности, если достигнута причина остановки max_tokens, поток может завершиться в середине параметра и может быть неполным. Вам обычно придётся написать специальную поддержку для обработки случаев, когда достигнут max_tokens.

    Обработка недействительного JSON в ответах инструментов

    При использовании потоковой передачи инструментов с точной детализацией вы можете получить недействительный или неполный JSON от модели. Если вам нужно передать этот недействительный JSON обратно модели в блоке ответа об ошибке, вы можете обернуть его в объект JSON, чтобы обеспечить правильную обработку (с разумным ключом). Например:

    {
      "INVALID_JSON": "<your invalid json string>"
    }

    Этот подход помогает модели понять, что содержимое является недействительным JSON, при этом сохраняя исходные неправильно сформированные данные в целях отладки.

    При обёртывании недействительного JSON убедитесь, что вы правильно экранируете любые кавычки или специальные символы в строке недействительного JSON, чтобы сохранить действительную структуру JSON в объекте-обёртке.

    Was this page helpful?

    • Как использовать потоковую передачу инструментов с точной детализацией
    • Обработка недействительного JSON в ответах инструментов