К содержанию
Выпуск №81 · 28 августа 2026 / Новости

Одна динамическая строка может обнулить кеш: системный промпт пора тестировать как инфраструктуру

На живых вызовах перенос времени внутри промпта изменил результат с нулевого кеша до 1152 закешированных токенов из 1180. Для бизнеса это означает простую вещь: цена модели ничего не говорит о счете, пока вы не измеряете фактический cache hit rate.

Редакция 28 августа 2026 г., 12:20 MSK

В Telegram

Системный промпт уже нельзя считать просто текстом, который иногда редактирует продакт. Это часть инфраструктуры: одна динамическая строка в начале запроса способна отключить кеш для всего стабильного контекста. В результате команда платит полную цену за токены, которые не менялись вообще.

Что произошло

Автор Habr проверил поведение на живых вызовах DeepSeek. Агенту задавали одни и те же четыре вопроса в течение одной минуты, менялось только расположение строки со временем. В одном варианте попаданий в кеш не было, в другом провайдер прочитал из кеша 1152 токена из 1180, то есть почти 98% входа.

Причина в устройстве prompt caching, которое описывает автор: провайдер хранит префиксное дерево токенов и использует его только до первого расхождения с предыдущим запросом. Если системный промпт начинается со строки Current time: {datetime.now()}, значение меняется уже на четвертом слове. Следующие две тысячи токенов политик и базы знаний могут оставаться идентичными, но оплачиваются заново.

Разница не косметическая. По приведенным на Habr тарифам миллион входных токенов DeepSeek стоит $0,44 без кеша и $0,014 при чтении из кеша. У OpenAI соотношение составляет $4 против $0,40. В этих примерах закешированный токен дешевле обычного в 10–31 раз.

Автор также направил профайлер на 97 877 собственных вызовов Claude Code. Из 32,5 млрд входных токенов 98% пришли из кеша. Это полезный масштаб для понимания проблемы: кеш здесь не небольшая оптимизация после запуска, а механизм, который способен определять экономику всего харнесса.

Похожий промпт не значит закешированный

Главная ловушка в том, что человек смотрит на два запроса и видит почти одинаковый текст. Провайдер видит последовательность токенов и первое расхождение. Совпадение на 96% не помогает, если несовпадающие 4% стоят в начале.

По той же причине кеш могут ломать изменения, которых никто не вносил руками. В материале Habr среди примеров есть схемы инструментов, собранные из словаря с плавающим порядком ключей, и база знаний, сформированная через set(). Содержание вроде бы то же, сериализованный префикс уже другой. Инженер ищет регрессию в модели, хотя ее создал код подготовки запроса.

Это и есть граница между особенностью конкретного кейса и универсальным выводом. Точные тарифы и измерения относятся к названным провайдерам и вызовам автора. Но правило префикса требует одинаковой инженерной реакции: все стабильное должно идти раньше динамического, а порядок сообщений, инструментов и фрагментов контекста должен быть воспроизводимым.

Что проверить в продакшене

Первым делом стоит вынести время, идентификаторы сессии и другие меняющиеся значения за пределы стабильного начала промпта. Затем зафиксировать полностью сериализованный запрос, включая порядок сообщений, схем инструментов и базу знаний. Сравнивать нужно не исходники шаблонов, а именно тот текст и порядок данных, которые получает провайдер.

После этого нужны повторные вызовы одного сценария и три показателя: доля токенов из кеша, доля обычных входных токенов и стоимость запроса. Cache hit rate стоит добавить в мониторинг рядом с расходами, а стабильность префикса включить в регрессионные тесты. Иначе очередной безобидный datetime.now() пройдет ревью как строка текста, а в счете окажется инфраструктурным изменением.

С задержкой вывод аккуратнее: кейс на Habr не приводит ее замеров. Поэтому обещать ускорение после фикса нельзя, его нужно проверить на собственных вызовах. Зато влияние на оплачиваемые входные токены показано прямо.

Для проверки доступен открытый инструмент prefixcash, который автор опубликовал на GitHub. В нем предусмотрен и отрицательный контроль: сценарий, где исправление ничего не дает, а профайлер сообщает об этом вместо красивой экономии на бумаге.

Конкретный маркер на ближайшем прогоне прост: после стабилизации начала запроса доля токенов из кеша должна резко вырасти, а доля оплачиваемого полного входа снизиться. Если этого не произошло, проблема не в динамической строке или кеш для этого сценария не сработал. Но пока команда не видит эти числа, заявленная цена модели остается скорее тарифом, чем бюджетом.

Как процитировать

«Одна динамическая строка может обнулить кеш: системный промпт пора тестировать как инфраструктуру». hegai.media, 28 августа 2026 г.. https://hegai.media/novosti/odna-dinamicheskaya-stroka-mozhet-obnulit-kesh-sistemnyy-prompt-pora-t--ee9a708b-e536-4fc9-b802-0bab54805492

так материал выглядит в мессенджере