Память для ИИ-агентов: как не пересказывать проект Claude Code и Codex

При работе с ИИ-агентами быстро возникает одна и та же проблема: каждую новую сессию приходится заново объяснять проект, принятые решения и ограничения. Агент может повторно предложить уже отвергнутый подход, спросить о договорённости из вчерашнего разговора или потерять важную деталь после сжатия контекста.
Команда Lamantin AI столкнулась с этим в собственных проектах и разработала kaeru — локальный MCP-сервер для долговременной памяти ИИ-агентов. Он подключается к Claude Code, Codex, Cursor, OpenCode и другим клиентам, а данные сохраняет на машине пользователя. Для команд предусмотрен отдельный сервер, который можно развернуть в своей инфраструктуре.
Почему одного файла с правилами недостаточно
Обычно контекст проекта хранят в CLAUDE.md, AGENTS.md, .cursorrules или обычной заметке. Такой файл подходит для устойчивых правил, которые проходят ревью и живут вместе с кодом. Однако рабочие знания часто появляются между коммитами: результаты проверок, временные ограничения, гипотезы, особенности стенда и причины отказа от конкретного решения.
У текстового файла есть несколько ограничений. Его вспоминают обновлять спустя несколько дней, он постепенно разрастается, а устаревшие пункты могут оставаться рядом с актуальными. Кроме того, в нём обычно фиксируют, что делать, но не объясняют, почему это правило появилось. Архитектурные решения и трекеры задач закрывают часть проблемы, но не сохраняют весь промежуточный контекст работы.
Память в виде графа
В kaeru память представлена графом записей. В него можно добавлять наблюдения, решения, задачи со сроками, гипотезы с результатом проверки и документы. Отдельные записи могут быть правилами проекта или напоминаниями, которые должны появиться в сводке только с определённой даты.
Записи связываются друг с другом типизированными отношениями: одна запись может вырасти из другой, заменить её, подтвердить или опровергнуть гипотезу, заблокировать действие либо быть частью более крупного решения. Благодаря этому сохраняется не только итог, но и путь от наблюдения к выводу. У записей есть история изменений, поэтому прежнюю формулировку можно восстановить и понять, на какой версии основывалось решение.
Как память используется в течение дня
При открытии проекта агент или клиент запрашивает сводку. В неё попадают действующие правила, задачи, напоминания, просроченные дела и сохранённые цепочки рассуждений. В описанном сценарии это делает хук, который определяет проект по рабочей папке и передаёт контекст агенту до постановки первой задачи.
Во время работы агент самостоятельно решает, что стоит сохранить. Результат проверки можно записать как наблюдение или гипотезу, договорённость — как документ, а дело на будущее — как задачу со сроком. Особенно полезны отрицательные результаты: если гипотеза о причине сбоя не подтвердилась, следующий агент сможет не повторять уже проведённую проверку.
Когда новое знание уточняет старое, его можно отредактировать. Если правило больше не действует, новая запись явно заменяет прежнюю, а старая остаётся в истории. При этом автоматической гарантии нет: агент должен вызвать соответствующую операцию. Иначе две противоречащие записи могут некоторое время существовать одновременно.
Хуки против повторных вопросов и потери контекста
Для Claude Code и Codex предусмотрен хук kaeru-first. Перед тем как передать вопрос человеку, он может проверить, не работал ли агент уже с похожей темой, и предложить прочитать найденные записи. Поиск по словам не гарантирует наличие ответа, поэтому при отсутствии подходящей информации вопрос всё равно передаётся пользователю.
Отдельные хуки помогают пережить сжатие длинного диалога. В Claude Code перед сжатием можно сохранить список уже записанных сведений и отдельно отметить то, что ещё нужно вынести в память. После сжатия эта сводка сохраняется в слое Cold. В Codex используется локальный снимок конца разговора, а при наличии готовой сводки в память отправляется она. Это позволяет продолжить работу даже после потери части исходного диалога.
Задачи, напоминания и несколько агентов
Задачи в kaeru имеют статус и срок, а в проекте доступна доска с открытыми, активными и завершёнными делами. Просроченные задачи поднимаются в сводке как приоритетные. Напоминания работают иначе: запись становится видимой только с указанной даты и затем показывается в течение заданного периода. Отсчёт начинается с первого показа, поэтому напоминание не пропадёт из-за отпуска или длительного перерыва между сессиями.
К одному локальному серверу могут подключаться разные сессии и агенты. Например, один агент может обсуждать идеи и формировать задачи, а другой — брать их из памяти, выполнять и закрывать после проверки. В команде знания можно переносить архивом между рабочими окружениями или использовать общий сервер kaeru-cloud, развёрнутый в собственной инфраструктуре.
По умолчанию проекты на общем сервере закрыты, а перед отправкой записей система проверяет их на признаки API-ключей, токенов и приватных ключей. При этом общий сервер рассчитан на доверенную команду: сейчас в нём используется единое пространство с разделением по проектам, а полноценная изоляция пользователей и организаций относится к планам развития.
Таким образом, kaeru не заменяет файлы правил, архитектурные документы и трекеры. Он закрывает другой слой — рабочую память между сессиями: что уже проверяли, почему приняли конкретное решение, какие ограничения действуют сейчас и какие вопросы нужно будет поднять позже. За счёт этого новому агенту не приходится начинать работу с пересказа всего проекта, а команде проще сохранять контекст при смене инструментов и участников.


