Для моделей, которые его поддерживают, API LLMSTORE может возвращать Токены рассуждения, также известные как токены мышления. LLMSTORE нормализует различные способы настройки количества токенов рассуждения, которые будет использовать модель, обеспечивая унифицированный интерфейс для разных поставщиков. Токены рассуждения обеспечивают прозрачное представление шагов рассуждения, предпринимаемых моделью. Токены рассуждений считаются токенами вывода и взимаются соответственно. Токены рассуждения включаются в ответ по умолчанию, если модель решает их вывести. Токены рассуждения появятся в reasoning каждого сообщения, если вы не решите их исключить.
Некоторые модели рассуждения не возвращают свои токены рассужденияХотя большинство моделей и поставщиков предоставляют токены рассуждения в ответ, некоторые (например, серия OpenAI o) этого не делают.

Управление токенами рассуждения

Вы можете управлять токенами рассуждения в своих запросах, используя Объект конфигурации reasoning параметр:
Объект reasoning объединяет настройки для управления силой рассуждений в разных моделях. См. примечание для каждого параметра ниже, чтобы узнать, какие модели поддерживаются и как будут вести себя другие модели.

Обнаружение вариантов рассуждения для каждой модели

Каждая модель в GET /v1/models может включать в себя Объект reasoning , описывающий, какие уровни усилий он принимает и является ли обоснование обязательным:
Используйте это при создании пользовательского интерфейса клиента:
  • supported_efforts: фильтровать селекторы усилий по этим значениям, возвращаемым в порядке убывания усилий (сначала самое высокое). Когда null, принимаются все значения усилий шлюза. Если этот параметр опущен, модель не предоставляет выбор усилий.
  • default_effort: Предварительно выберите это усилие при включении рассуждения. Карты в reasoning.effort в запросах в чат. Если значение "none", рассматривайте это как «рассуждение по умолчанию», а не предварительно выбирайте отключение, когда пользователь явно включает рассуждение.
  • default_enabled: состояние включения/выключения по умолчанию, если пользователь не установил reasoning.enabled.
  • supports_max_tokens: Когда присутствует и true, покажите контроль бюджета токена и отправьте reasoning.max_tokens вместо (или рядом) reasoning.effort. Пропускается, если модель не поддерживает обоснование бюджета токенов.
  • mandatory: Когда true, скрыть элементы управления отключением и не отправлять effort: "none" — модель отвергает это.
У моделей без поддержки рассуждений поле reasoning опускается.

Макс. токенов для рассуждения

Поддерживаемые моделиНа данный момент поддерживается:
  • Gemini thinking models
  • Модели Anthropic рассуждения (с использованием Reasoning.max_tokens параметр)
  • Some Alibaba Qwen thinking models (mapped to thinking_budget)
Для Alibaba поддержка зависит от модели — для подтверждения проверьте описания отдельных моделей. ли Reasoning.max_tokens (через think_budget) доступен.
Для моделей, поддерживающих распределение токенов обоснования, вы можете управлять этим следующим образом:
  • "max_tokens": 2000 — напрямую указывает максимальное количество токенов, используемых для рассуждений.
Для моделей, поддерживающих только reasoning.effort (см. ниже), Значение max_tokens будет использоваться для определения уровня усилий.

Уровень рассуждения

Поддерживаемые моделиВ настоящее время поддерживается моделями рассуждений OpenAI (серия o1, серия o3, серия GPT-5) и моделями Grok.
  • "effort": "max" - Выделяет наибольшую часть токенов для рассуждений (примерно 95% от max_tokens)
  • "effort": "xhigh" — такое же распределение, как и max (приблизительно 95% max_tokens)
  • "effort": "high" — выделяет большую часть токенов для рассуждений (примерно 80% от max_tokens)
  • "effort": "medium" — выделяет умеренную часть токенов (приблизительно 50% от max_tokens)
  • "effort": "low" — выделяет меньшую часть токенов (приблизительно 20% от max_tokens)
  • "effort": "minimal" — выделяет еще меньшую часть токенов (приблизительно 10% от max_tokens)
  • "effort": "none" - Полностью отключает рассуждения.
Для моделей, поддерживающих только reasoning.max_tokens, уровень усилий будет установлен на основе приведенных выше процентов.

Исключая токены рассуждения

Если вы хотите, чтобы модель использовала внутренние рассуждения, но не включала их в ответ:
  • "exclude": true - Модель по-прежнему будет использовать рассуждения, но они не будут возвращены в ответ.
Токены рассуждений появятся в Поле reasoning каждого сообщения.

Включить рассуждения с конфигурацией по умолчанию

Чтобы включить рассуждения с параметрами по умолчанию:
  • "enabled": true - Позволяет рассуждать на «среднем» уровне усилий без каких-либо исключений.

Примеры

Базовое использование с токенами рассуждения

Использование максимального количества токенов для рассуждений

Для моделей, поддерживающих прямое распределение токенов (например, модели Anthropic), вы можете указать точное количество токенов, которые будут использоваться для рассуждений:

Исключение токенов рассуждения из ответа

Если вы хотите, чтобы модель использовала внутренние рассуждения, но не включала их в ответ:

Продвинутое использование: Цепочка рассуждений

В этом примере показано, как использовать токены рассуждения в более сложном рабочем процессе. Он внедряет рассуждения одной модели в другую, чтобы улучшить качество ее ответа:

Сохранение рассуждений

Чтобы сохранить контекст рассуждений на протяжении нескольких ходов, вы можете передать его обратно в API одним из двух способов:
  1. message.reasoning (строка): передать аргументацию в виде открытого текста в виде строкового поля в сообщении помощника.
  2. message.reasoning_details (массив): передать полный блок Reasoning_details.
Использовать reasoning_details при работе с моделями, которые возвращают специальные типы рассуждений (например, зашифрованные или суммированные) - это сохраняет полную структуру, необходимую для этих моделей. Для моделей, которые возвращают только необработанные строки рассуждений, вы можете использовать более простой вариант: reasoning поле. Вы также можете использовать reasoning_content в качестве псевдонима - он работает идентично Функциональность reasoning. Объект reasoning_details работает одинаково для всех поддерживаемых моделей рассуждений. Вы можете легко переключаться между моделями рассуждений OpenAI (например, ~openai/gpt-latest) и модели Anthropic рассуждения (например, ~anthropic/claude-sonnet-latest) без изменения структуры кода. Сохранение блоков рассуждений полезно специально для вызова инструментов. Когда такие модели, как Claude, вызывают инструменты, они приостанавливают построение ответа в ожидании внешней информации. Когда результаты инструмента будут возвращены, модель продолжит построение существующего ответа. Это требует сохранения блоков рассуждений во время использования инструмента по нескольким причинам: Непрерывность рассуждений: блоки рассуждений фиксируют пошаговые рассуждения модели, которые привели к запросам инструментов. Когда вы публикуете результаты инструмента, включение исходных рассуждений гарантирует, что модель сможет продолжить рассуждения с того места, где она остановилась. Обслуживание контекста: хотя результаты инструмента отображаются в виде пользовательских сообщений в структуре API, они являются частью непрерывного потока рассуждений. Сохранение блоков рассуждений поддерживает этот концептуальный поток между несколькими вызовами API.
Важно для моделей рассужденияПри предоставлении блоков Reasoning_details вся последовательность последовательных Блоки рассуждений должны соответствовать выводам, сгенерированным моделью во время исходный запрос; вы не можете переставлять или изменять последовательность этих блоков.

Пример: сохранение блоков рассуждений с помощью LLMSTORE и Claude

Более подробную информацию о шифровании мышления, отредактированных блоках и расширенных вариантах использования см. в документации Anthropic по расширенному мышлению.. Дополнительную информацию о моделях рассуждений OpenAI см. в документации по рассуждениям OpenAI.

Контекстный режим рассуждения

Когда вы повторяете элементы рассуждений в истории разговора, вы можете контролировать, к каким рассуждениям модель имеет доступ, с помощью reasoning.context параметр:
  • auto: Модель использует контекстный режим по умолчанию. Пропуск reasoning.context имеет тот же эффект.
  • all_turns: Модель может ссылаться на рассуждения всех ходов, присутствующих во входных данных. Используйте это для многоходовых разговоров, в которых вы хотите, чтобы модель основывалась на предыдущей цепочке мыслей.
  • current_turn: Модель использует только рассуждения текущего хода. Предыдущие аргументы во входных данных игнорируются. Используйте это, если хотите провести новое рассуждение без влияния предыдущих ходов.
reasoning.context поддерживается только OpenAI GPT-5.6 и новее.
При использовании Responses API с ручным управлением состоянием (повторение выходных элементов обратно в качестве входных), установите reasoning.context рядом include:
Значение по умолчанию context может отличаться в зависимости от модели. Установите его явно, если ваш вариант использования требует определенного поведения.

Режим рассуждения

Для моделей, предлагающих вариант рассуждения «за», Параметр reasoning.mode определяет, какой вариант соответствует вашему запросу:
  • standard: Стандартное поведение модели при рассуждении. Пропуск reasoning.mode имеет тот же эффект.
  • pro: направляет запрос к профессиональному варианту модели, который использует более глубокие многопроходные рассуждения для более сложных задач.
reasoning.mode поддерживается только OpenAI GPT-5.6 и новее при обслуживании. от OpenAI или Azure. OpenAI-совместимый API Amazon Bedrock принимает поле но молча игнорирует это, поэтому на Bedrock недоступны аргументы в поддержку — LLMSTORE направляет профессиональные запросы только тем поставщикам, которые соблюдают выбор режима.
Для каждой поддерживаемой модели существует два эквивалентных способа запроса профессионального режима в LLMSTORE:
  1. Отправить reasoning.mode: "pro" со стандартной моделью — LLMSTORE перенаправляет запрос на соответствующую *-pro модель.
  2. Позвоните *-pro список моделей напрямую.
  • mode не зависит от effort: ты можешь комбинировать mode: "pro" с любым поддерживаемым уровнем усилий. — в режиме Pro счета за токен выставляются по той же ставке, что и в стандартном режиме, но обычно потребляется больше токенов.

Детали рассуждения Форма API

Когда модели рассуждения генерируют ответы, информация для рассуждения структурируется в стандартизированном формате посредством reasoning_details массив. В этом разделе описывается структура ответа API для подробного объяснения как потоковых, так и непотоковых ответов.

Reasoning_details Структура массива Поле

Объект reasoning_details содержит массив объектов детализации рассуждения. Каждый объект в массиве представляет собой определенную часть информации для рассуждений и относится к одному из трех возможных типов. Расположение этого массива различается в зависимости от потоковых и непотоковых ответов.
  • Непотоковые ответы: reasoning_details появляется в choices[].message.reasoning_details
  • Потоковая передача ответов: reasoning_details появляется в choices[].delta.reasoning_details для каждого чанка

Общие поля

Все объекты подробностей рассуждений имеют общие поля:
  • id (строка | ноль): уникальный идентификатор подробного обоснования.
  • format (строка): формат детали рассуждения с возможными значениями:
    • "unknown" - Формат не указан
    • "openai-responses-v1" - формат ответов OpenAI версии 1
    • "azure-openai-responses-v1" — формат ответов Azure OpenAI версии 1.
    • "bedrock-openai-responses-v1" — формат ответов Amazon Bedrock OpenAI версии 1
    • "xai-responses-v1" - формат ответов SpaceXAI версии 1
    • "meta-responses-v1" - Формат метаответов версии 1
    • "anthropic-claude-v1" - формат Anthropic Claude, версия 1 (по умолчанию)
    • "google-gemini-v1" — формат Google Gemini, версия 1.
  • index (число, необязательно): Последовательный индекс детализации рассуждения.

Типы деталей рассуждения

1. Тип сводки (reasoning.summary) Содержит общее описание процесса рассуждения:
2. Зашифрованный тип (reasoning.encrypted) Содержит зашифрованные данные рассуждений, которые могут быть отредактированы или защищены:
3. Тип текста (reasoning.text) Содержит необработанный текст с дополнительной проверкой подписи:

Примеры ответов

Непотоковый ответ

В непотоковых ответах reasoning_details появляется в сообщении:

Потоковый ответ

В потоковых ответах, reasoning_details появляется в дельта-фрагментах по мере генерации рассуждения:
Примечания к поведению потоковой передачи:
  • Каждый фрагмент подробного рассуждения отправляется по мере его появления.
  • Массив reasoning_details в каждом чанке может содержать один или несколько объектов рассуждения.
  • По причинам зашифрованного содержания содержимое может выглядеть как [REDACTED] в потоковых ответах
  • Полная последовательность рассуждений строится путем объединения всех фрагментов по порядку.

Устаревшие параметры

В целях обратной совместимости LLMSTORE по-прежнему поддерживает следующие устаревшие параметры:
  • include_reasoning: true - Эквивалентно reasoning: {}
  • include_reasoning: false - Эквивалентно reasoning: { exclude: true }
Однако мы рекомендуем использовать новый унифицированный Параметр reasoning для лучшего управления и будущей совместимости.

Реализация рассуждений, специфичных для поставщика

Модели Anthropic с токенами рассуждения

Последние модели Claude, такие как ~anthropic/claude-sonnet-latest, поддержка работы и возврата токенов рассуждения. Включить рассуждения на моделях Anthropic можно только с помощью унифицированного reasoning параметр с любым effort или Сообщения max_tokens. Примечание: Вариант :thinking больше не поддерживается для моделей Anthropic. Используйте Вместо этого параметр reasoning .

Максимальное количество токенов рассуждения для моделей Anthropic

При использовании моделей Anthropic с рассуждениями:
  • При использовании reasoning.max_tokens , это значение используется напрямую с минимум 1024 токенами.
  • При использовании reasoning.effort , Budget_tokens рассчитываются на основе max_tokens значение.
Распределение токенов рассуждения ограничено максимум 128 000 токенами и минимумом 1024 токенами. Формула расчета Budget_tokens: budget_tokens = max(min(max_tokens * {effort_ratio}, 128000), 1024) коэффициент усилий составляет 0,95 для максимальных и xвысоких усилий, 0,8 для высоких усилий, 0,5 для средних усилий, 0,2 для низких усилий и 0,1 для минимальных усилий. Важно: max_tokens должен быть строго выше бюджета рассуждений, чтобы гарантировать наличие токенов для окончательного ответа после размышлений.
Использование токенов и выставление счетовТокены рассуждения считаются токенами вывода для целей выставления счетов. Использование токены рассуждения увеличат использование вашего токена, но могут значительно улучшить его. качество ответов модели.

Обобщенное мышление

Для моделей Claude, поддерживающих thinking.display , LLMSTORE по умолчанию использует обобщенное мышление (thinking.display: 'summarized'), чтобы вы не потеряли след рассуждений в новых моделях, где Anthropic по умолчанию опускает мышление. Настройка Объект display контролирует только видимый след мышления в ответе. В любом случае модель потребляет одинаковое количество токенов, а оплата за использование взимается на основе фактически генерируемых моделью токенов. Поскольку видимая сводка сжата, она может содержать меньше токенов, чем количество токенов рассуждения, указанное в usage. Если вы используете формат API Anthropic Messages напрямую, вы можете управлять этим с помощью thinking.display:
  • 'summarized' (по умолчанию): возвращается сжатое изложение рассуждений.
  • 'omitted': Никаких следов мышления не возвращается.

Пример: потоковая передача с токенами Anthropic мышления

Google Gemini 3 модели с уровнями мышления

Модели Gemini 3 (например, google/gemini-3.1-pro-preview и google/gemini-3-flash-preview) используйте Google thinkingLevel API вместо старого thinkingBudget API, используемый моделями Gemini 2.5. LLMSTORE отображает Параметр reasoning.effort непосредственно в Google thinkingLevel значения:
Потребление токенов определяется GoogleПри использовании thinkingLevel, фактическое количество потребляемых токенов рассуждения определяется внутри компании Google. Для каждого уровня не существует публично задокументированных контрольных точек ограничения количества токенов. Например, установка effort: "low" может привести к нескольким сотням токенов рассуждения в зависимости от сложности задачи. Это ожидаемое поведение и отражает то, как Google реализует уровни мышления внутри компании.
Если модель не поддерживает определенный уровень усилий (например, если модель поддерживает только low и Параметры high), LLMSTORE сопоставит запрошенные вами усилия с ближайшим поддерживаемым уровнем.

Использование max_tokens с Gemini 3

Если вы укажете reasoning.max_tokens явно, LLMSTORE пропустит его как thinkingBudget к API Google. Однако для моделей Gemini 3 Google сопоставляет это значение бюджета с thinkingLevel, поэтому вы не получите точного контроля над токенами. Фактическое потребление токенов по-прежнему определяется реализацией thinkLevel от Google, а не конкретным значением бюджета, который вы предоставляете.

Пример: использование уровней мышления в Gemini 3