К содержимому
Claude Code с 0:полный курс
Уровень 1 · Разговор и управление ответом 4 мин

max_tokens и обрыв ответа

max_tokens задаёт потолок длины ответа. Слишком мало — текст обрывается; распознаём это по stop_reason.

В этом уроке нет практического задания — просто прочитай и ответь на вопросы.

Что такое max_tokens

max_tokensобязательный параметр: верхний предел того, сколько токенов модель сгенерирует в ответе. Это не «сколько надо», а «не больше чем». Поставишь слишком мало — Claude не успеет договорить, и ответ оборвётся на полуслове.

Представь: ты просишь модель выгрузить 50 заказов в JSON, но ставишь max_tokens: 50. Ответ обрежется где-то на третьем заказе, JSON будет невалидным.

Как понять, что ответ оборвался

Смотри на поле stop_reason в ответе:

{
  "content": [{"type": "text", "text": "[{\"id\": 1, \"sum\": ..."}],
  "stop_reason": "max_tokens",
  "usage": {"input_tokens": 120, "output_tokens": 50}
}
  • end_turn — модель закончила сама, всё в порядке.
  • max_tokens — упёрлась в потолок, ответ неполный. Увеличь max_tokens и повтори.

Сколько ставить

resp = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=16000,
    messages=[{"role": "user", "content": "Выгрузи заказы в JSON"}],
)
if resp.stop_reason == "max_tokens":
    print("Ответ обрезан — нужно больше токенов")

Для обычных задач разумно ставить около 16000. Если ждёшь длинный ответ, переходи на стриминг и поднимай потолок (до 64000 и выше) — иначе долгий ответ упрётся в таймаут запроса.

Большой max_tokens сам по себе денег не стоит — платишь за реально сгенерированные output_tokens. Но и обрезанный ответ не бесплатен: токены до обрыва уже потрачены.

Проверь себя

Отвечено 0/3
Режим:

Что означает stop_reason: "max_tokens" в ответе?

Обязателен ли параметр max_tokens?

Почему для длинного ответа советуют стриминг и высокий max_tokens?

Выполни задание в терминале и ответь на вопросы, чтобы завершить урок.

📝 Мои заметки

Сохраняется автоматически в этом браузере · видно на странице «Заметки».

Листай уроки клавишами · поиск по ⌘K