yamem
Навык примитивной универсальной памяти проекта для AI-агентов.
Проект в стадии разработки, все может быть изменено в любой момент без предупреждения, использование на свой страз и риск.
Сейчас очень много различных инструментов для организации долгосрочной памяти на любой вкус, это еще один вариант со своей концепцией.
Изначально это был навык для агента-админа Васяна, который со временем превратился в память программиста Петра, бухгалтера Галины и еще нескольких вполне самостоятельных персонажей.
Основная идея: создаем проект (папку), открываем ее в агенте и начинаем работать по какой-то определенной тематике. Агент накапливает факты и с каждым диалогом задает все меньше вопросов и все больше понимает без лишних слов. При этом сегодня агентом может быть claude code, завтра codex, а послезавтра copilot или боже упаси гигачат. При этом должна быть возможность посмотреть и отрцензировать/отредактировать память своими ручонками.
То есть мы просто решаем текущие задачи с агентом, а он набирается опыта и умнеет не по годам.
Отсюда требования и отличительные особенности:
- Содержимое памяти должно быть доступно и удобно для восприятия и правки не только агентом, но и человеком (только текстовые файлы)
- Память должна работать с любым агентом, умеющим читать/писать файлы (никаких специчических тулов)
- Память должна работать на любой ОС и в любой среде
- Должна быть возможность делиться памятью/опытом с другими людьми и агентами, полностью или частями. Например если агент научился мониторить предложения на авито, то хорошо бы иметь возможность поделиться этим опытом без передачи чувствительной информации
- По мере устаревания данные памяти должны переходить в режим чтения по нобходимости
- Тематическая память должна читаться только при необходимости. Например инфомрация о процедуре согласования заявок должна читаться только при согласовании заявок
Итого: никаких тулов, никаких скриптов, только текст.
Как это работает
- При первом сообщении в чате агент читает главный файл памяти, бэклог (актинвые и запланированные задачи), дневник последние 7 файлов по датам, имена всех топиков и задач
- пытается мягко синхронизировать локальную память и подключённые shared-базы, если это настроено
- при каждом промпте от пользователя смотрит темы и задачи на релевантность и при необходмиости читает их полностью
- при появлении новых фактов, значимого опыта (например смог решить проблему или обойти грабли)
Как устроена память
В .agents/memory/ могут храниться:
- факты и устойчивый контекст проекта;
- краткий дневник содержательной работы;
- активные, отложенные и завершённые задачи;
- тематические заметки, рецепты и уроки;
- артефакты отдельных задач.
Как это работает
При первом сообщении в чате агент:
- читает конфиг памяти, если он есть;
- пытается мягко синхронизировать локальную память и подключённые shared-базы, если это настроено;
- читает основную память, backlog, недавний дневник и названия тем;
- при необходимости предлагает оптимизацию памяти (каждую неделю)
В процессе работы агент:
- добавляет записи в дневник;
- обновляет backlog и archive;
- добавляет устойчивые факты в
MEMORY.md;
- сохраняет тематические знания в
topics/;
- создает папки задач с артефактами в
tasks/.
Shared-память
В .agents/memory/shared/ можно подключать общие базы знаний, например admin-recipes, accounting, 1c-dev.
В shared-память попадают только:
- обезличенные рецепты;
- переиспользуемые инструкции;
- устойчивые уроки, полезные не только для текущего проекта.
В shared нельзя записывать:
- секреты и токены;
- IP-адреса, хосты, логины;
- названия клиентов и другие идентификаторы;
- внутренние URL, домены и чувствительный бизнес-контекст.
Установка
Вариант 1. Положить навык (файл skill.md) в место, где его увидит агент, либо прописать в системный промпт требование всегда читать и исполнять skill.md
Вариант 2. Попросить своего агента на выбор:
Системный промпт
Агенты во многом как люди - в целом по жизни все делают правильно, но игногда что-то забывают, упускают из вида, короче говоря головожопят. В целом ничего страшного, бывает, но можно скоратить такие случаи до минимума, дополнив системный промпт примерно так:
ПАМЯТЬ (yamem):