Раздутая память
Также известен как
Bloated AGENTS.md, over-specified memory file, память-свалка.
Контекст
Команда месяцами пополняет файл памяти проекта. После каждого происшествия с агентом разработчики добавляют правило, но редко проверяют, осталось ли оно нужным. Файл растёт и никогда не сокращается.
Проблема
В файле памяти накапливаются сотни строк с дублями, противоречиями и пересказом кода. Агенту труднее выделить применимые инструкции среди остальных, поэтому даже записанное правило может остаться без внимания.
Почему так делают
- Каждое правило когда-то было нужно, и разработчики боятся удалить его без знания исходной причины.
- Команда рассчитывает, что дополнительные инструкции сделают поведение агента предсказуемее, и не проверяет эффект от их накопления.
- Разработчики помещают в память описание архитектуры и длинные процедуры, которым удобнее выделить отдельные документы.
- Файл пополняет вся команда, но за его пересмотр никто не отвечает.
Последствия
- ➖ Агент пропускает нужную инструкцию среди множества остальных.
- ➖ Каждая лишняя строка расходует токены во всех сессиях, которые загружают файл.
- ➖ При противоречии инструкций агент может выбирать разные правила в разных сессиях.
- ➖ Новым коллегам приходится разбирать длинный файл, чтобы найти нужное соглашение.
Признаки
- Файл содержит сотни строк и продолжает расти.
- Агент делает то, что памятью прямо запрещено.
- Файл пересказывает структуру каталогов и зависимости, которые агент может прочитать в репозитории.
- Есть правила, которые агент выполняет и без инструкции.
- Никто не может сказать, зачем нужна половина строк.
Как лучше
Пересматривайте память по правилу из одноимённого паттерна. Для каждой строки выясняйте, какую ошибку она предотвращает. Если агент получает те же сведения из кода или выполняет правило без напоминания, строку можно удалить. Длинные процедуры вынесите в скиллы, которые загружаются по требованию. После сокращения файла проверьте на реальных задачах, сохранилось ли нужное поведение.
Пример
Было
В AGENTS.md накопилось 420 строк. Большую часть занимают обзор архитектуры, список пакетов и скопированные правила линтера. Среди них на строке 287 стоит запрет менять legacy, который агент вчера нарушил.
На схеме вы удаляете 265 строк, которые повторяют код и настройки линтера. Процедуру релиза из 95 строк переносите в скилл, правила фронтенда из 30 строк — в src/frontend/AGENTS.md, а запрет менять legacy из пяти строк — в обязательную проверку CI. В корне остаются 25 строк команд, соглашений и указателей на инструкции областей.
Стало
В AGENTS.md осталось 25 строк. Процедуру релиза агент получает из скилла
/release, а перед работой с фронтендом читает src/frontend/AGENTS.md. Обязательная проверка CI отклоняет изменения в legacy.
Связанные паттерны и антипаттерны
- Память проекта задаёт правила отбора и пересмотра постоянных инструкций.
- Скиллы позволяют загружать процедуры по требованию.
- Инженерия контекста объясняет, как лишний текст мешает использовать нужные сведения.
- Преждевременная спецификация описывает сходную попытку получить контроль через избыточные инструкции.
- Плановое обслуживание не даёт памяти разрастись: ежемесячный проход убирает дубли и правила, которые ничего не меняют.