SodaMem MCP
Долговременная память для агентов: новые факты вытесняют старые, у каждого ответа есть источник, а поиск идет без вызовов LLM
- 203 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Хуки `sodamem install` отправляют реплики сессии на извлечение фактов выбранному провайдеру модели, так что содержимое переписки уходит за пределы машины
- Записывающие инструменты, включаемые переменной `SODAMEM_MCP_ALLOW_WRITE=true`, дают агенту менять и удалять сохраненные факты
Установка
- Работает в
Ручная установка
pip install "sodamem[chroma,llm]"Python-путь из README. Для MCP-сервера нужен еще дополнительный пакет `mcp`, для TypeScript есть `npm i sodamem`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Хуки `sodamem install` отправляют реплики сессии на извлечение фактов выбранному провайдеру модели, так что содержимое переписки уходит за пределы машины
- Записывающие инструменты, включаемые переменной `SODAMEM_MCP_ALLOW_WRITE=true`, дают агенту менять и удалять сохраненные факты
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
SodaMem хранит факты из разговоров агента и отдает их обратно готовым блоком контекста. Если пользователь сообщил, что переехал с Кауаи на Оаху, старый факт помечается замененным, а не затирается. Профили сущностей пересобираются по запросу, и каждая строка ответа ссылается на реплику, из которой взята. Поиск по памяти не вызывает языковую модель, поэтому один и тот же вопрос дает один и тот же ответ. Модель нужна только при записи: она извлекает факты из реплик. К агентам память подключается по-разному. MCP-сервер дает восемь инструментов, шесть из них только читают, среди них `entity_timeline` с историей одной сущности. Два записывающих, `add_memories` и `delete_memory`, появляются при `SODAMEM_MCP_ALLOW_WRITE=true`. Для Claude Code, GitHub Copilot CLI, Cursor и Codex CLI команда `sodamem install` добавляет еще и хуки, чтобы память подставлялась без решения модели.
Для кого. Разработчикам агентов и тем, кто часто работает в Claude Code и Cursor, кому нужна память между сессиями с проверяемым источником каждого факта.
Подходит, если
- Агент забывает договоренности между сессиями, и их нужно подставлять в начало работы автоматически
- Данные меняются: пользователь переехал или сменил стек, и старый факт не должен всплывать в ответе
- Ответ агента надо проверить: каждая строка контекста ведет к реплике-источнику
- Одна память нужна нескольким редакторам, и ее держит единый фоновый процесс `sodamem daemon`
Не подходит, если
- Достаточно файла `CLAUDE.md` с заметками: отдельный демон и извлечение фактов будут лишними
- Нет ключа к модели для извлечения фактов: поиск работает без него, а запись фактов нет
- Нужна память, полностью лежащая на стороне вендора агента, без своего процесса и хранилища
- Нужна автоматическая запись всех реплик в Cursor или Codex CLI: там хуки дают только сводку проекта при старте сессии
Пример запроса к агенту
Вспомни, какой пакетный менеджер мы выбрали для этого репозитория и почему, и покажи реплику, из которой это взято.MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Переменные окружения
SODAMEM_LLM_API_KEYсекрет- Ключ провайдера модели, который нужен при записи фактов. Для поиска не требуется.
SODAMEM_MCP_ALLOW_WRITE- Значение `true` включает записывающие инструменты `add_memories` и `delete_memory`. Установщик задает его в конфигурации клиента.
SODAMEM_API_KEYсекрет- Ключ HTTP-сервиса при самостоятельном запуске через Docker Compose.
Ограничения
Записывать факты может только процесс с ключом к языковой модели, поиск без ключа работает. Хранилища пользователей на SQLite без WAL открывает один процесс, поэтому клиенты ходят через общий `sodamem daemon`, а режим `--local-store` блокирует второго клиента.
Хуки полноценные только у Claude Code и GitHub Copilot CLI. Cursor и Codex CLI получают сводку проекта при старте сессии и пишут через `add_memories`, остальные клиенты работают только через инструменты MCP. Цифры на LongMemEval и LoCoMo в README измерены самим автором на `deepseek-v4-flash`.
Как отключить. Остановите демон командой `sodamem daemon` с подкомандой остановки из справки CLI и уберите блок `sodamem` из конфигурации клиента. Перед первой правкой файла установщик оставляет рядом копию `.sodamem-backup`, ее можно вернуть на место.
Частые вопросы
Как подключить SodaMem к Claude Code?
Запустите `sodamem daemon ensure`, затем `sodamem install claude-code`. Установщик добавит MCP-инструменты и хуки, существующую конфигурацию он объединяет с новой и оставляет резервную копию. Команда `--dry-run` сначала покажет, что изменится.
Нужен ли ключ к модели?
Для чтения нет: поиск и сборка контекста идут без вызовов LLM. Для записи нужен ключ в переменных вроде `SODAMEM_LLM_API_KEY`, и `sodamem daemon ensure` сообщает об этом сразу, а не после неудачной записи.
Какие инструменты видит агент через MCP?
Восемь инструментов. Шесть читают, включая `entity_timeline` и `explore_memory`. Записывающие `add_memories` и `delete_memory` включаются переменной `SODAMEM_MCP_ALLOW_WRITE=true`, которую `sodamem install` записывает в конфигурацию клиента.
Чем SodaMem отличается от basic-memory?
basic-memory хранит заметки в Markdown-файлах. SodaMem извлекает из реплик факты, хранит их в SQLite, помечает устаревшие как замененные и к каждому ответу прикладывает ссылку на исходную реплику.
Можно ли развернуть общий сервис для команды?
Да. В репозитории есть HTTP-сервис и веб-консоль в образе, запуск: `cp .env.example .env`, задать `SODAMEM_API_KEY` и выполнить `docker compose up -d`. Для TypeScript есть клиент `npm i sodamem`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыДолговременная память для агентов: удаленный MCP-сервер, плагины для Claude Code, Cursor и Codex и API для своих приложений
Общая локальная память для ИИ-агентов: Claude Code, Codex, Cursor и другие находят в ней договоренности прошлых сессий и записывают новые
Постоянная память агента на графе связей: решения и ошибки переживают сессию, без векторной базы и платных вызовов API
Двойная память для агентов: граф знаний на вашей машине, поиск по запросу и подсказки до запроса, сквозные между сессиями.
MCP-сервер долговременной памяти для ИИ-агентов: факты стареют по кривой забывания, связанные записи сжимаются в сводку
Membase хранит одну общую память для ИИ-агентов, и Claude Code, Cursor и Codex читают ее через MCP, SDK или команду membase
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| SodaMem (эта карточка) | да | не нужна | 203 | |
| Basic Memory | нет | не нужна | 4 566 | заметки в Markdown-файлах с графом связей, без замены устаревших фактов и ссылок на исходную реплику |
| MCP Memory Service | нет | не нужна | 2 117 | самостоятельно размещаемая память с семантическим поиском и автоконсолидацией, без пометки замененных фактов |
Коротко о README
README открывается таблицей интеграций: Hermes Agent, DeepSeek Harness, любой MCP-клиент, адаптеры LangGraph, CrewAI и OpenAI Agents SDK, Vercel AI SDK. Дальше идут бенчмарки: 92,8 процента на LongMemEval с опубликованными ответами и 86,88 процента на LoCoMo без ответов по вопросам, затем быстрый старт на Python и самостоятельный запуск через Docker.