Константин Чуйков

Как я учил AI-агента забывать: форк QMD и кривая Эббингауза

openclawагентыпамять-агентовqmdэббингаузai-toolsвайб-кодинг

Сегодня я задал Скауту, своему AI-агенту-исследователю, простой вопрос: а умеет ли он забывать?

Не риторически. Буквально: может ли агент сам решать, какие воспоминания устарели и от них можно избавиться?

Мы начали копать QMD. Это поисковый движок для локальных файлов, который написал Тоби Люткe, CEO Shopify (17.2k звёзд на GitHub). Его используют как базу для долгосрочной памяти агентов: агент что-то узнал, записал в файл, QMD это индексирует и находит потом.

Штука мощная. Но у неё один минус: QMD ничего не забывает.

Представь — ты месяц назад решил делать SaaS для HR-отдела. Передумал, пошёл в другую нишу. Агент всё равно будет тащить контекст про HR при каждом поиске. Память накапливается, устаревшие факты конкурируют с актуальными.

Скаут разобрал исходники QMD (Node.js, SQLite, векторные embeddings) и выяснил: там вообще нет понятия «важность» или «забывание». Только created_at и modified_at. Ноль.

Тогда я спросил: а есть хоть один pull request с попыткой добавить decay?

Скаут проверил все 100 открытых и 154 закрытых PR. Ничего. Никто ещё не пробовал.

Вот тут стало интересно.

Мы начали проектировать форк. Идея простая: добавить в схему базы три колонки (importance, recall_count, last_recalled_at) и считать силу каждого воспоминания по кривой Эббингауза:

strength = importance × e^(−λ × days) × (1 + recall_count × 0.2)

Чем реже агент обращается к факту и чем ниже его важность, тем быстрее он «выцветает». Как в голове у человека.

Разные типы памяти забываются с разной скоростью. Стратегические решения медленно (λ=0.10). Сырые предположения быстро (λ=0.35). Провалы и факты об ошибках быстрее всего, потому что они теряют актуальность.

Скаут за один сеанс создал в Linear родительскую задачу и 7 подзадач: ресёрч схемы, форк репо, миграция SQLite, реализация decay-функции, автопруннинг, новые CLI-команды, тесты и PR в upstream.

Форк пока не начат: это был исследовательский день, планирование. Но идея живёт в Linear, задачи расписаны, и мне кажется это будет первый публичный форк QMD с настоящей системой забывания.

Но я уже думаю: а что если агент однажды сам решит забыть что-то, что я считаю важным?