Skip to content

Что такое engram? ​

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

engram даёт агенту память. Он хранит то, что помнил бы коллега, и не трогает то, что и так видно из кода:

  • решения и их обоснование, включая отвергнутые варианты и причины отказа;
  • грабли: ошибки, за которые уже заплатили, и способы их избежать;
  • принципы, то есть правила кодовой базы («никаких ORM в горячем пути»);
  • сессии: на чём остановилась прошлая работа и что дальше;
  • факты, заметки и обсуждения, которые стоит сохранить.

Записи связываются в граф (supersedes, rejected_because, caused_by, depends_on и другие), ищутся на любом языке и отдаются агентам через Model Context Protocol.

Как этим пользоваться ​

  1. Один раз запустите npx @vefimov/engram init в репозитории.
  2. Скажите агенту: «используй engram».
  3. Дальше агент должен:
    • начинать задачу с короткого брифинга: принципы, подходящие решения, известные грабли, где вы остановились;
    • напоминать о прошлых решениях, когда они важны («три недели назад мы отказались от Redis из-за X»);
    • сверять план со старыми граблями до написания кода;
    • записывать новые решения и грабли по мере появления;
    • отвечать на «где мы обсуждали авторизацию?» по записи, даже если это было сорок диалогов назад.

Чем это отличается от остального ​

Существующий подходЧего не хватаетengram
Простые memory-плагиныПлоский список заметокГраф с историей: замещённые и отвергнутые записи сохраняются
Встроенная память ассистентаПривязана к одному инструменту и одному пользователюЛокально, открытый формат, любой MCP-клиент
Память на одну сессиюТеряется при смене инструментаОдно хранилище для всех клиентов проекта
ADR, написанные вручнуюЛюди забывают их писатьАгент пишет их по ходу работы, а уже существующие engram импортирует
Один большой CLAUDE.mdВсегда в контексте, устаревает, не хранит историюДостаётся по запросу в рамках бюджета токенов

Принципы ​

  • Память лежит в .engram/ вашего репозитория. Нет сервера, аккаунта и телеметрии.
  • Источник истины, отсортированный JSONL, можно читать, сравнивать, ревьюить и коммитить.
  • Используется встроенный в Node node:sqlite с FTS5, поэтому компилировать ничего не нужно и npx работает.
  • Сервер говорит на стандартном MCP. Skills и prompts объясняют агенту, когда читать и писать.
  • Если вы передумали, решение замещается. Старое остаётся в истории.

Дальше: быстрый старт.

Released under the MIT License.