> ## Documentation Index
> Fetch the complete documentation index at: https://docs.llmeasy.ru/llms.txt
> Use this file to discover all available pages before exploring further.

# Что такое max_tokens и что будет, если его не задать?

> Разница между max_tokens, max_completion_tokens и max_output_tokens, а также настройка лимита выходных tokens.

## Короткий ответ

`max_tokens` ограничивает, сколько tokens модель может сгенерировать за один ответ. В разных API и моделях отличаются названия поля, обязательность параметра и поведение по умолчанию.

Чтобы получать стабильный вывод, задавайте явный лимит для длинных ответов, генерации кода и документации. Для Claude / Anthropic-compatible API обычно нужно передавать `max_tokens` явно.

## Базовые понятия

| Понятие          | Значение                                                                    |
| ---------------- | --------------------------------------------------------------------------- |
| Input tokens     | Ваши сообщения, контекст, содержимое файлов, результаты tools и другой ввод |
| Output tokens    | Видимый ответ, который генерирует модель                                    |
| Reasoning tokens | Скрытые tokens для внутреннего reasoning у некоторых reasoning-моделей      |
| Context window   | Общий лимит для ввода, вывода и части внутренних tokens                     |
| Output limit     | Максимальный видимый вывод за один ответ                                    |

Если output limit слишком мал, ответ может оборваться. Если лимит очень большой, модель не обязана использовать его целиком, но длинные задачи могут стоить дороже.

## Разные имена параметров

| Параметр                | Частый сценарий                                                   |
| ----------------------- | ----------------------------------------------------------------- |
| `max_tokens`            | Claude / Anthropic Messages API и часть Chat Completions-настроек |
| `max_completion_tokens` | Некоторые OpenAI reasoning-модели через Chat Completions          |
| `max_output_tokens`     | Частое поле лимита вывода в OpenAI Responses API                  |

Если вы используете Codex CLI или другой инструмент на Responses API, ориентируйтесь на поле, которое сейчас поддерживает инструмент или provider. Не задавайте одно и то же имя параметра для всех моделей.

## Что будет, если не задать лимит

Поведение зависит от provider и API:

| Сценарий                           | Возможный результат                                             |
| ---------------------------------- | --------------------------------------------------------------- |
| Claude / Anthropic-compatible API  | Может потребоваться явное значение `max_tokens`                 |
| OpenAI-compatible Chat Completions | Может использоваться поведение модели по умолчанию              |
| OpenAI Responses API               | Может использоваться `max_output_tokens` или дефолт инструмента |
| Другие модели                      | Могут иметь собственный лимит вывода по умолчанию               |

Один и тот же код после смены модели может давать ответы разной длины. Для production-вызовов лучше задавать явный лимит вывода.

## Рекомендуемые диапазоны

| Задача                                | Диапазон                                                                    |
| ------------------------------------- | --------------------------------------------------------------------------- |
| Обычные вопросы                       | `1024` - `4096`                                                             |
| Объяснение кода / небольшие правки    | `4096` - `8192`                                                             |
| Длинный текст / сложные coding-задачи | `8192` и выше, с учетом лимита модели                                       |
| Пакетные задачи                       | Меньший лимит, чтобы отдельный запрос не сгенерировал слишком длинный ответ |

Фактический максимум проверяйте в <a href={"https://www.llmeasy.ru/pricing"}>model plaza</a> и документации upstream-модели. Максимальный вывод может меняться между версиями.

## Что делать, если ответ обрывается

Если в ответе есть `finish_reason: "length"`, модель обычно достигла лимита вывода.

Проверяйте в таком порядке:

1. Увеличьте поле лимита вывода, которое поддерживает текущий API.
2. Проверьте, что использовали правильное имя параметра.
3. Сузьте prompt, чтобы убрать лишний вывод.
4. Выберите модель с большим output window.
5. Разбейте длинную задачу на несколько шагов.

## Частые ошибки

* Считать, что большее значение `max_tokens` всегда заставит модель писать длиннее.
* Повторять запрос после обрыва и не проверять `finish_reason`.
* Использовать старое имя поля с reasoning-моделью.
* Не учитывать hidden reasoning tokens при оценке контекста и стоимости.
* Игнорировать собственный максимальный лимит вывода у модели.

## О LLMEasy

LLMEasy записывает usage на уровне API Key и model request. В dashboard можно смотреть расход tokens по моделям и задачам.

Но поле лимита вывода всё равно определяется API-форматом и моделью. При настройке проверяйте модель, Base URL, API-формат и имя параметра вместе.

## Связанные материалы

* [Почему Claude Code расходует много tokens?](/faq/token-cost/claude-code-token-usage)
* [Как выбрать подходящую AI-модель?](/faq/model-calling/model-selection-guide)
* [Как заполнять Base URL?](/faq/model-calling/base-url-config)
* [Что такое review\_model и reasoning\_effort в Codex CLI?](/faq/codex/review-model-reasoning-effort)
