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

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

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

Контекст

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

Проблема

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

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

  • Каждое правило когда-то было нужно, и разработчики боятся удалить его без знания исходной причины.
  • Команда рассчитывает, что дополнительные инструкции сделают поведение агента предсказуемее, и не проверяет эффект от их накопления.
  • Разработчики помещают в память описание архитектуры и длинные процедуры, которым удобнее выделить отдельные документы.
  • Файл пополняет вся команда, но за его пересмотр никто не отвечает.

Последствия

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

Признаки

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

Как лучше

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

Пример

Было

В AGENTS.md накопилось 420 строк. Большую часть занимают обзор архитектуры, список пакетов и скопированные правила линтера. Среди них на строке 287 стоит запрет менять legacy, который агент вчера нарушил.

Architecture overview 120Deleted 265Package list 60Linter style guide 85Release procedure 95Skill /release 95Frontend rules 30src/frontend/AGENTS.md 30Legacy ban 5Required CI check 5Commands and conventions 25AGENTS.md (stays) 25
Architecture overview 120Deleted 265Package list 60Linter style guide 85Release procedure 95Skill /release 95Frontend rules 30src/frontend/AGENTS.md 30Legacy ban 5Required CI check 5Commands and conventions 25AGENTS.md (stays) 25

На схеме вы удаляете 265 строк, которые повторяют код и настройки линтера. Процедуру релиза из 95 строк переносите в скилл, правила фронтенда из 30 строк — в src/frontend/AGENTS.md, а запрет менять legacy из пяти строк — в обязательную проверку CI. В корне остаются 25 строк команд, соглашений и указателей на инструкции областей.

Стало

В AGENTS.md осталось 25 строк. Процедуру релиза агент получает из скилла /release, а перед работой с фронтендом читает src/frontend/AGENTS.md. Обязательная проверка CI отклоняет изменения в legacy.

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

results matching ""

    No results matching ""