17 августа 2026 г.
Локальную модель можно оборвать посреди размышления: llama-server подставляет ей мысль после N токенов
Два флага llama-server отмеряют размышлению бюджет в токенах и на его исходе подсаживают модели нужную мысль.

Georgi Gerganov
@ggerganov
Приём «inception» оказался очень полезен во многих агентных сценариях. Модель можно заставить перейти к действию, когда она думает слишком долго: после заданного бюджета рассуждений ей подсаживается мысль. Выручает с недоописанными задачами, из-за которых модель рассуждает непозволительно долго.
чтобы ограничить максимальную длину рассуждения, добавьте: ... \ --reasoning-budget 4096 \ --reasoning-budget-message "... I am thinking for too -- let me gather more info about the task." подстройте под свои задачи
Модель получила размытую задачу и ушла думать на тысячи токенов. Автор llama.cpp обрывает её на заданном токене.
Приём Георгий Герганов называет inception: когда бюджет размышления кончился, модели подсаживают готовую мысль, и она идёт делать вместо того, чтобы рассуждать дальше. Помогает в агентных сценариях, где задача описана нечётко.
Два флага. `--reasoning-budget N` задаёт бюджет в токенах: -1 без ограничений (дефолт), 0 обрывает мысль сразу, N больше нуля отмеряет бюджет. `--reasoning-budget-message` держит текст, который вписывается перед закрывающим тегом мысли. Env-аналоги — LLAMA_ARG_THINK_BUDGET и LLAMA_ARG_THINK_BUDGET_MESSAGE.
Текст инъекции токенизируется как есть, и закрывающий тег сервер не дописывает: `</think>` пишется внутри самого сообщения. Оставишь значение пустым — подставится только автодетект-тег, и блок мысли всё равно закроется.
Раньше сервер не вмешивался в длину размышления: модель думала, пока не остановится сама. Теперь бюджет ставится флагом при старте или полем `thinking_budget_tokens` в теле запроса, причём поле срабатывает только при незаданном CLI-бюджете и в документации не описано (обсуждение #21445, 09.04.2026).
Мысль обрывается и вручную по ходу ответа: в исходном запросе ставится `reasoning_control: true`, дальше POST на `/v1/chat/completions/control` с id и `action: reasoning_end`. Запрос обрабатывается параллельно SSE-стриму, в ответ приходит JSON с булевым success.
Слабое место. Сообщение вставляется ровно на токене N, и на завершение мысли у модели остаётся ноль токенов: выходит обрезка. Issue #20632 от 16.03.2026 просит сдвинуть инъекцию до конца бюджета или развести бюджеты на размышление и на заключение.
первоисточник