Короткий ответ
max_tokens ограничивает, сколько tokens модель может сгенерировать за один ответ. В разных API и моделях отличаются названия поля, обязательность параметра и поведение по умолчанию.
Чтобы получать стабильный вывод, задавайте явный лимит для длинных ответов, генерации кода и документации. Для Claude / Anthropic-compatible API обычно нужно передавать max_tokens явно.
Базовые понятия
Если output limit слишком мал, ответ может оборваться. Если лимит очень большой, модель не обязана использовать его целиком, но длинные задачи могут стоить дороже.
Разные имена параметров
Если вы используете Codex CLI или другой инструмент на Responses API, ориентируйтесь на поле, которое сейчас поддерживает инструмент или provider. Не задавайте одно и то же имя параметра для всех моделей.
Что будет, если не задать лимит
Поведение зависит от provider и API:
Один и тот же код после смены модели может давать ответы разной длины. Для production-вызовов лучше задавать явный лимит вывода.
Рекомендуемые диапазоны
Фактический максимум проверяйте в model plaza и документации upstream-модели. Максимальный вывод может меняться между версиями.
Что делать, если ответ обрывается
Если в ответе естьfinish_reason: "length", модель обычно достигла лимита вывода.
Проверяйте в таком порядке:
- Увеличьте поле лимита вывода, которое поддерживает текущий API.
- Проверьте, что использовали правильное имя параметра.
- Сузьте prompt, чтобы убрать лишний вывод.
- Выберите модель с большим output window.
- Разбейте длинную задачу на несколько шагов.
Частые ошибки
- Считать, что большее значение
max_tokensвсегда заставит модель писать длиннее. - Повторять запрос после обрыва и не проверять
finish_reason. - Использовать старое имя поля с reasoning-моделью.
- Не учитывать hidden reasoning tokens при оценке контекста и стоимости.
- Игнорировать собственный максимальный лимит вывода у модели.