
Агент, пишущий код, за одну сессию узнаёт о проекте очень много: почему выбрана конкретная библиотека, где однажды сломался деплой, какой обходной путь оказался рабочим, какими командами реально выпускается релиз и какие ограничения нельзя нарушать.
Беда в том, что почти всё это знание живёт только в текущем контексте. Новая сессия снова исследует код, повторяет старые ошибки и задаёт вопросы, на которые вчера уже был найден ответ.
EchoVault сохраняет не весь разговор, а рабочие выводы: JWT выбрали из-за ставки на API без состояния; эта ошибка появляется после ротации токена; релиз делается только из чистого рабочего дерева; до миграции нельзя удалять старый эндпоинт.
Автор проекта отдельно подчёркивает мотив local-first: ему нужна была память, которая не требует держать решения по клиентским кодовым базам в чужом облаке и не занимает оперативку тяжёлым фоновым процессом между сессиями. Из этого выросла вся конструкция - и дальше разберём её по частям.
Что такое EchoVault и что здесь сделано иначе
EchoVault - локальная система долговременной памяти для агентов, работающих с кодом. Она подключается к агенту по MCP и даёт три основные операции: сохранить память, найти память и получить контекст проекта перед началом работы.
Версия 0.5.0 называет себя уже не просто постоянной памятью, а непрерывно поддерживаемой рабочей моделью проекта. Сдвиг важный: память должна не бесконечно расти, а оставаться актуальной, проверяемой и достаточно компактной, чтобы поиск по ней приносил пользу.
Многие системы памяти устроены так: текст, эмбеддинг, векторная база, похожие фрагменты. У EchoVault цепочка другая: читаемый Markdown, индекс SQLite с полнотекстовым и векторным поиском, контекст под текущую задачу, обслуживание жизненного цикла записей. Практически это даёт несколько полезных свойств: память можно открыть вообще без EchoVault; поиск по словам работает без эмбеддингов; смысловой поиск включается отдельно; обязательного облачного хранилища нет; агент получает не просто top-k, а набор контекста с приоритетами; качество поиска можно измерять на своём наборе вопросов; старые записи можно просматривать, архивировать и помечать как замещённые.