Раздутая память

Также известен как

Bloated CLAUDE.md, over-specified memory file, память-свалка.

Контекст

Команда месяцами пополняет файл памяти проекта: каждое происшествие с агентом рождает новое правило, каждый онбординг — новый раздел. Файл растёт и никогда не сокращается.

Проблема

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

Почему так делают

  • Добавить безопасно, удалить страшно: каждое правило когда-то было нужно, и никто не помнит, можно ли его трогать.
  • Иллюзия управления: кажется, что больше правил — послушнее агент. На деле наоборот: раздутые файлы памяти заставляют агента игнорировать сами инструкции.
  • Память используется как склад: туда сваливают описание архитектуры, списки зависимостей и многошаговые процедуры — всё, чему там не место.
  • Файл никому не принадлежит: пополняют все, чистит никто.

Последствия

  • ➖ Агент нарушает записанные правила: правило есть, но оно потерялось в шуме — самый частый симптом.
  • ➖ Каждая строка оплачивается токенами в каждой сессии каждого разработчика — раздутая память дорожает пропорционально команде.
  • ➖ Противоречивые правила разрешаются произвольно: сегодня агент выбрал одно, завтра другое.
  • ➖ Файл перестают читать и люди: новый коллега, открыв четыреста строк, закрывает их.

Признаки

  • Файл памяти — сотни строк, и он только растёт.
  • Агент делает то, что памятью прямо запрещено.
  • В файле есть структура каталогов, список зависимостей, обзор архитектуры — то, что агент видит в коде сам.
  • Есть правила, которые агент выполняет и без инструкции.
  • Никто не может сказать, зачем нужна половина строк.

Как лучше

Вернуть памяти дисциплину из одноимённого паттерна: к каждой строке — вопрос «если удалить, начнёт ли агент ошибаться?», и если нет — удалить. Производное из кода — вон целиком. Многошаговые процедуры — в скилы: они грузятся по требованию и не стоят ничего, пока не вызваны. Правила, нужные только части кодовой базы, — в модульные файлы с привязкой к путям. Жёсткие запреты — в хуки: механика надёжнее пожеланий. И чистка по расписанию — как обновление зависимостей.

Пример

Было:

CLAUDE.md на 420 строк: обзор архитектуры на три экрана, список всех пакетов, стайлгайд, скопированный из документации линтера, процедура релиза на 30 шагов и правило «не трогать папку legacy» на строке 287 — которое агент вчера нарушил.

Стало:

CLAUDE.md на 60 строк: команды, которых нет в Makefile, соглашения, расходящиеся с дефолтами, и жёсткие границы. Процедура релиза — скил /release. Правила фронтенда — в .claude/rules/ с привязкой к путям. «Не трогать legacy» — PreToolUse-хук, который просто не даёт писать в папку.

Связанные паттерны и анти-паттерны

  • Память проекта — паттерн, вырождением которого является раздутая память; там же — дисциплина, которая её лечит.
  • Скилы — главный разгрузочный клапан: процедуры уходят из памяти в файлы по требованию.
  • Инженерия контекста — объясняет механизм вреда: бюджет внимания конечен, и каждая лишняя строка платит из него.
  • Преждевременная спецификация — родственная иллюзия контроля: там детализируют задачу, здесь — правила.

results matching ""

    No results matching ""