Короткий ответ
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 | Максимальный видимый вывод за один ответ |
Разные имена параметров
| Параметр | Частый сценарий |
|---|---|
max_tokens | Claude / Anthropic Messages API и часть Chat Completions-настроек |
max_completion_tokens | Некоторые OpenAI reasoning-модели через Chat Completions |
max_output_tokens | Частое поле лимита вывода в OpenAI Responses API |
Что будет, если не задать лимит
Поведение зависит от provider и API:| Сценарий | Возможный результат |
|---|---|
| Claude / Anthropic-compatible API | Может потребоваться явное значение max_tokens |
| OpenAI-compatible Chat Completions | Может использоваться поведение модели по умолчанию |
| OpenAI Responses API | Может использоваться max_output_tokens или дефолт инструмента |
| Другие модели | Могут иметь собственный лимит вывода по умолчанию |
Рекомендуемые диапазоны
| Задача | Диапазон |
|---|---|
| Обычные вопросы | 1024 - 4096 |
| Объяснение кода / небольшие правки | 4096 - 8192 |
| Длинный текст / сложные coding-задачи | 8192 и выше, с учетом лимита модели |
| Пакетные задачи | Меньший лимит, чтобы отдельный запрос не сгенерировал слишком длинный ответ |
Что делать, если ответ обрывается
Если в ответе естьfinish_reason: "length", модель обычно достигла лимита вывода.
Проверяйте в таком порядке:
- Увеличьте поле лимита вывода, которое поддерживает текущий API.
- Проверьте, что использовали правильное имя параметра.
- Сузьте prompt, чтобы убрать лишний вывод.
- Выберите модель с большим output window.
- Разбейте длинную задачу на несколько шагов.
Частые ошибки
- Считать, что большее значение
max_tokensвсегда заставит модель писать длиннее. - Повторять запрос после обрыва и не проверять
finish_reason. - Использовать старое имя поля с reasoning-моделью.
- Не учитывать hidden reasoning tokens при оценке контекста и стоимости.
- Игнорировать собственный максимальный лимит вывода у модели.

