Токены - это не ровно слова и не ровно символы. Один короткий русский или английский фрагмент может занимать несколько токенов, а длинные числа, код, JSON и URL часто расходуют больше токенов, чем кажется. Поэтому max tokens лучше задавать с запасом для формата ответа.
Важно отличать max tokens от context window. Context window - это общий объем входа и выхода, который модель может обработать за один запрос. Max tokens - только лимит на будущий ответ. Если вход уже занял почти все окно контекста, большой max tokens не спасет: модели просто не хватит места.
В агентских сценариях max tokens помогает контролировать поведение. Для короткой классификации достаточно небольшого лимита. Для отчета, инструкции, кода или структурированного JSON нужен больший лимит. Для цепочки инструментов лимит часто задают отдельно для планирования, вызова tool и финального ответа.
Главная практическая проблема - обрезанный output. Если модель должна вернуть валидный JSON, SQL, таблицу или инструкцию, слишком маленький max tokens может сломать формат. Поэтому лимит нужно подбирать по тестовым примерам, логировать usage и проверять finish_reason или аналогичный признак остановки.
Примеры
- Для классификации письма в одну категорию ставят небольшой max tokens, например под короткий JSON с полями category и confidence.
- Для статьи, инструкции или аналитического отчета лимит увеличивают, чтобы модель не оборвала разделы и FAQ.
- Если structured output возвращает неполный JSON, один из первых параметров для проверки - max tokens.
- В чат-боте поддержки лимит ограничивают, чтобы ответы были короткими и не тратили лишний бюджет.
- В агенте для code review финальный ответ может иметь больший лимит, чем внутренний шаг поиска файлов или извлечения фактов.
Где используется
- контроль длины ответа модели
- снижение стоимости LLM-запросов
- уменьшение задержки ответа
- защита от слишком длинных сообщений
- валидный JSON и structured output
- генерация кода и SQL
- создание отчетов и инструкций
- настройка чат-ботов поддержки
- планирование token budget агента
- диагностика обрезанных ответов
Связанные термины
Частые вопросы
Max tokens - это лимит входа или выхода?
Обычно max tokens ограничивает именно выход модели: сколько токенов она может сгенерировать в ответе. Входной текст ограничивается context window и общими лимитами модели.
Что будет, если поставить слишком маленький max tokens?
Ответ может оборваться: список закончится на середине, код будет неполным, таблица потеряет строки, а JSON станет невалидным. Это частая причина ошибок в structured output.
Почему не поставить max tokens очень большим?
Большой лимит может увеличить стоимость, задержку и вероятность лишнего текста. Для production-сценариев лучше ставить лимит по задаче и проверять реальные token usage на тестах.
Чем max tokens отличается от context window?
Context window - это общий объем контекста запроса: вход плюс будущий выход. Max tokens - ограничение только на ответ. Если вход слишком большой, доступное место для ответа уменьшается.
Как подобрать max tokens для агента?
Сначала определите формат ответа: короткая метка, JSON, письмо, отчет или код. Затем прогоните несколько типовых и сложных примеров, посмотрите usage, случаи обрыва и добавьте разумный запас.