←Все статьи блога
урок·8 сентября 2026 г.·6 мин чтения·7 просмотров

Округление НДС вниз: как спасти ИИ-ассистента от склероза в длинном чате и не переписывать код заново

Почему модель забывает имена переменных на десятом сообщении и один файл prompts/context.md спасет ваш проект от скрытых багов.

Округление НДС вниз: как спасти ИИ-ассистента от склероза в длинном чате и не переписывать код заново

Вы пишете фичу оплаты для небольшого сервиса. Вчера вы с Cursor — это нейросеть, встроенная прямо в редактор кода — битый час обсуждали округление налога: копейки всегда отбрасываются, база считается до применения скидки, а возврат дробит сумму по исходным корзинам. Сегодня утром прилетает новая задача: прикрутить тенге. Вы кидаете ассистенту одно сообщение: «Добавь валюту KZT». Модель бодро отвечает, генерирует функцию, тесты зеленые.

А через неделю бухгалтер находит дыру в бюджете. Оказывается, на новой валюте ассистент применил старое правило округления, но перепутал порядок действий. Он помнил, что было какое-то важное соглашение про налог, но точный текст из пятого сообщения давно ушел в архивную выжимку.

Что именно сломалось (и почему модель не тупит)

Модель не забыла математику. У нее закончилась оперативная память окна диалога. Когда чат становится слишком длинным, включается механизм компрессии: старая переписка сжимается в краткую выжимку векторных смыслов. Нейросеть отлично держит общий вектор задачи («мы делаем оплату»), но теряет жесткие факты — конкретные имена переменных, точные строки условий и исключения из десятого сообщения вверх. Это не баг конкретной модели, это физика работы трансформеров. Внутри одного запроса у них есть жесткий предел контекста — объема текста, который они могут держать в голове одновременно. Чтобы продолжить диалог и не зависнуть, система вынуждена выбрасывать детали ради сохранения общей логики.

В нашем примере хрупкое правило «округление НДС всегда вниз» превратилось в размытое «там было какое-то условие про налоги». Ассистент достроил его сам, опираясь на общую статистику обучающих данных, где чаще встречается классическое банковское округление до ближайшего целого. Для машины ваше специфичное бизнес-правило — просто шум, который первым идет под нож при сжатии истории.

Как проверить, что ассистент уже начал додумывать

Не ждите звонка от бухгалтера. Проверить потерю контекста можно за две минуты без написания нового кода:

1. Резкий скачок уверенности. Если три сообщения назад ассистент спрашивал «уточните ставку», а сейчас выдает готовую реализацию сложного условия без единого вопроса — он забыл нюанс и замаскировал пробел галлюцинацией. 2. Смена терминологии. В начале чата вы называли поле paymentIntentId, а в свежем ответе оно внезапно стало intentReference или pay_id. Модель помнит, что нужно передать айдишник платежа, но оригинальный токен вылетел из головы вместе со сжатым контекстом. 3. Тесты-двойники. Запустите поиск по проекту. Если после добавления валюты появились два похожих блока расчета комиссии — старый ручной и новый сгенерированный — значит, ассистент потерял ссылку на договоренность рефакторить существующее, а не писать рядом.

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

Мануал: собираем единый источник правды

Хватит пересказывать правила словами. Завтра же создайте в корне проекта файл prompts/context.md. Это обычный текстовый документ, который станет вашей конституцией для искусственного интеллекта. Перенесите туда все хрупкие договоренности одним маркированным списком. Не пишите эссе, используйте формат «Сущность: жесткое правило»:

- Округление НДС: всегда вниз (отбрасывание копеек), до вычисления скидки. - Валюты: базовая RUB хранится как целое число копеек, любая новая валюта добавляется строго через маппинг multiplier. - Кодировка CSV: только UTF-8 с BOM, разделитель — точка с запятой. - Возвраты: сумма дробится пропорционально исходным позициям корзины, никогда не усредняется.

Файлы самого проекта при этом остаются на своих местах, меняется только способ передачи инструкций машине. Теперь вместо того чтобы в пятнадцатом сообщении напоминать «эй, не забудь про округление вниз», вы делаете одну вещь. В самом начале нового рабочего дня или перед крупной задачей кидайте ассистенту ссылку на этот файл. Можно использовать системное правило репозитория Mention .md files in context — тогда ссылки подтянутся автоматически. Для Cursor достаточно кинуть путь @prompts/context.md прямо в промпт первого сообщения.

Если правил много, разбейте их по тегам внутри файла: #rounding, #encoding, #refunds. Ассистенты умеют искать по заголовкам и быстро подтягивать только нужный кусок памяти, не перегружая окно лишней информацией.

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

Один файл решил проблему исторической амнезии, но открыл новую — риск дублирования истины. Вот протокол, который удержит систему в здравии:

1. Правило золотого источника. Все договоренности живут ТОЛЬКО в context.md. Обсудили новое исключение в чате? Сначала занесли в файл, потом попросили применить. Никаких «запомни, я скажу позже». 2. Версионирование правил. При смене логики не стирайте старую строку. Оставляйте ее в файле с пометкой DEPRECATED [дата] и ссылкой на коммит. Так ассистент поймет, почему старый код выглядит странно, но не потащит мертвое правило в новую фичу. 3. Ревью контекста. Раз в пятницу открывайте context.md и чистите мусор. Если блок не трогали месяц — выносите его в отдельный архивный файл general_archive.md. Чем легче ваш контекст-файл, тем меньше шансов, что модель пропустит важную деталь при внутреннем поиске. 4. Живая проверка. Перед релизом ветки просите ассистента самого процитировать актуальный пункт из файла: «Выпиши сюда дословно правило обработки возвратов из context.md». Если цитата точная — зеленый свет.

Что сделать завтра

Откройте терминал в вашем проекте. Выполните команду touch prompts/context.md. Скопируйте в него те самые три-пять самых болезненных правил, из-за которых вы уже ловили баги — начните с нашего примера про округление НДС вниз и кодировку UTF-8. Закоммитьте файл в основную ветку.

Затем откройте свой самый длинный активный чат с ассистентом. Найдите момент, где он начал переспрашивать очевидное или путать термины. Начните новый диалог: поздоровайтесь, дайте ссылку @prompts/context.md и первую задачу. Попросите его в первом же ответе повторить правила вслух. Разница в точности ответов вы заметите еще до конца первой чашки кофе.