OmniMem
официальныйСамостоятельно размещаемый MCP-сервер, который предоставляет AI-агентам постоянную память между сессиями, проектами и машинами.
Что можно делать с OmniMem MCP?
Предоставьте вашему ИИ-агенту постоянную, самостоятельно размещаемую память между сессиями, проектами и машинами — попросите его «проверить кладбище, прежде чем предлагать библиотеку, которая уже провалилась».
- Брифинг сессии — Запросите
briefing, чтобы получить контекст проекта, статистику опыта, устаревшие воспоминания, новые статьи и предложения по навыкам одним вызовом. - Избегайте прошлых тупиков — Попросите агента проверить кладбище, прежде чем предлагать библиотеку или шаблон, который ранее не сработал.
- Вспоминайте прошлые решения — Используйте
recall, чтобы выявить решения, исправления и шаблоны из более ранних сессий в разных проектах. - Фиксируйте ценный опыт — Записывайте исправление с помощью
record_experience, чтобы уроки, потребовавшие реальных усилий, всплывали легче в следующий раз. - Дедуплицируйте воспоминания — Запустите
find_duplicates, чтобы пометить и массово очистить почти идентичные сохранённые воспоминания. - Резервное копирование памяти — Экспортируйте всё в JSON-файл, которым вы владеете, с помощью
dump_to_file.
Документация
Self-hosted семантическая память для AI-агентов. Постоянные сессии, оценка опыта и кладбище тупиков, подкреплённые знаниями, полученными из читаемых вами RSS-лент и хранящимися в векторном поиске Valkey, а затем предоставляемые через MCP-сервер. https://omnimem.org
<OmniMem>omnimem.org
Разработка ведётся на Codeberg — пожалуйста, создавайте там issues и PR.
Хватит проживать одну и ту же сессию дважды.
Каждая сессия Claude Code начинается с нуля. Никакой памяти о вашем проекте. Никакой памяти о том, что провалилось на прошлой неделе. Никакой памяти о том, что вы потратили три часа во вторник, выясняя, почему onnxruntime взрывается на Alpine, прежде чем нашли решение, которое действительно работает.
Поэтому вы снова объясняете проект. Claude снова предлагает ту же сломанную библиотеку. Тот же сигнал тревоги. Та же песня. Вы — Билл Мюррей, а Claude — Панксатонский Фил.
OmniMem это исправляет. Это self-hosted MCP-сервер, который даёт вашему AI-агенту постоянную память между сессиями, проектами и машинами. Он работает на вашем собственном оборудовании и бесплатен навсегда.
claude> use onnxruntime for the embeddings
⚠ WARNING: previously abandoned approach
onnxruntime — SIGILL crash on Alpine musl libc (effort: 4/5)
→ switched to sentence-transformers instead
Это предупреждение пришло из памяти, а не по воле случая. Ошибка, за которую вы уже заплатили, не должна взимать с вас плату дважды.
Быстрый старт
Совет
Одна команда поднимает весь стек из предварительно собранных образов Docker Hub:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bashЗатем укажите вашему агенту на него — быстрый старт проведёт вас по остальным шагам, или перейдите к более полному разделу быстрого старта ниже.
Что он запоминает
Пять видов памяти, все ищутся вместе при извлечении:
- Эпизодическая — решения, которые вы приняли, баги, которые вы исправили, паттерны, которые вы обнаружили. То, что потребовало реальных усилий для изучения и не должно переучиваться каждое утро.
- Контекст проекта — ваш стек, цели и текущее состояние. Агент приходит на каждую сессию уже проинструктированным, а не начинает с холодного старта.
- Знания — RSS-ленты, которые вы настраиваете, загружаются по расписанию, обобщаются Claude Haiku, встраиваются и сохраняются. Когда на прошлой неделе вышла релевантная статья, она всплывает как отправная точка, которую стоит прочитать.
- Предпочтения — предписывающие правила о том, как вы хотите работать («всегда обновляй README после выхода функции»), автоматически извлекаются из ваших разговоров и всплывают, когда они применимы.
- Навыки — документы SKILL.md, скомпилированные из вашего накопленного опыта в определённой области, чтобы агент работал по-вашему с первого промпта. Производятся из других пространств имён, никогда не редактируются вручную, и каждое изменение проходит через ваше ревью. См. компилятор навыков.
Лучший результат поиска может оказаться решением шестимесячной давности из другого проекта, вчерашним решением или статьёй, опубликованной во вторник вечером. Неважно, откуда он взялся, если он полезен.
Что делает его особенным
Это не просто хранилище ключ-значение с MCP-обёрткой. OmniMem моделирует то, как память работает на самом деле: вещи со временем угасают, иногда противоречат друг другу, а труднодобытые знания заслуживают своё место.
- The Graveyard — каждый тупик фиксируется с указанием того, что вы пробовали, почему это не сработало и сколько времени вы потратили. Агент проверяет его, прежде чем предлагать библиотеку или паттерн.
- Experience scoring — то, что потребовало четырёх попыток и странного обходного решения для платформы, — на вес золота. Чем труднее было достичь, тем охотнее оно всплывает в следующий раз.
- Memory lifecycle —
ACTIVE → DEPRIORITISED → ARCHIVED → DELETED. «Забудь об X» обычно означает «перестань упоминать», а не «сотри из существования». Пониженные в приоритете воспоминания могут вернуть себе место. - Contradiction detection — если новое воспоминание противоречит чему-то сохранённому, OmniMem это обнаруживает. Быстрая эвристика при каждой записи, опциональный более глубокий анализ через Claude Haiku.
- Semantic deduplication — почти идентичные воспоминания помечаются при записи и массово очищаются с помощью
find_duplicates(). - One-call briefing — один вызов
briefing()возвращает контекст проекта, статистику опыта, устаревшие воспоминания, новые статьи, предупреждения о противоречиях и предложения навыков. Никакой трёхэтапной разминки. - The skill compiler — превращает закреплённые уроки и тупики в загружаемые навыки, за шлюзом «предложить и принять», чтобы плохие уроки не могли молча стать политикой.
- Auto-maintenance — дубликаты архивируются, противоречия помечаются, устаревшие знания очищаются — всё в фоновом режиме.
- Web UI — просматривайте, ищите и управляйте всем через htmx-дашборд, с телеметрией и Prometheus-эндпоинтом
/metrics.
Формула ранжирования, стоящая за каждым поиском:
score = similarity x surface_score x recency x experience_weight
Четыре фактора определяют, что вернётся. Одной семантической схожести недостаточно — состояние жизненного цикла, возраст и то, насколько трудно было усвоить урок, — всё играет роль.
Работает с любым MCP-агентом
Один слой памяти для всех: claude.ai, Claude Code, Claude Desktop, Cursor, GitHub Copilot, GitLab Duo, AWS Kiro, OpenCode, OpenAI Codex CLI и Open Design.
Архитектура
Четыре контейнера. Ничего не покидает вашу машину. Локальные эмбеддинги через sentence-transformers, хранилище в Valkey с векторным поиском, и обе входные двери используют один и тот же движок памяти.
flowchart TB
agent["AI agent<br/>Claude Code · claude.ai · Cursor · Copilot · ..."]
browser["Browser"]
agent -- "MCP · Streamable HTTP / SSE · :8765" --> mcp
browser -- "HTTP · :8080" --> webui
subgraph stack["Docker Compose stack"]
mcp["MCP server<br/>Python · FastMCP<br/><i>remember · recall · briefing<br/>compile_skill · record_experience</i>"]
webui["Web UI<br/>Starlette · htmx · Jinja2<br/><i>dashboard · search · skills<br/>projects · backups · /metrics</i>"]
rss["RSS worker<br/>feedparser · APScheduler<br/>Claude Haiku summaries"]
valkey[("Valkey + valkey-search<br/>HNSW vector indexes<br/><i>idx:episodic · idx:project · idx:knowledge<br/>idx:preference · idx:skill</i>")]
mcp <--> valkey
webui <--> valkey
rss --> valkey
end
Полная картина — конвейер поиска, модель хранения и проектные решения — в docs/architecture.md.
Самостоятельный хостинг, открытый исходный код, всё ваше
Никакого SaaS. Никакой привязки к вендору. Никакого контекста, отправляемого на чужие серверы.
- Valkey — это форк Redis с открытым исходным кодом. Все ваши данные остаются в именованном Docker-томе на вашей собственной машине.
- Мультиархитектурные Docker-образы для amd64 и arm64. Работает на Raspberry Pi, AWS Graviton или Apple Silicon так же хорошо, как и на x86.
- sentence-transformers выполняет эмбеддинги локально без API-вызовов.
- Лицензия MIT означает: форкайте, расширяйте, запускайте где угодно.
- Одна команда резервного копирования вызывает
dump_to_file()и экспортирует всё в JSON-файл, который принадлежит вам.
Откройте MCP-порт через ваш обратный прокси, и каждая машина, с которой вы работаете, будет использовать одну и ту же память. Одно развёртывание — везде: см. docs/remote-access.md.
Быстрый старт
Установщик проверяет, что Docker установлен, генерирует надёжные пароли, записывает разумный .env и запускает всё из готовых образов Docker Hub:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash
Или соберите из исходников:
git clone https://codeberg.org/ric_harvey/omnimem.git && cd omnimem
cp .env.example .env
# Set VALKEY_PASSWORD and ANTHROPIC_API_KEY in .env
docker compose up -d
Затем подключите вашего агента — Claude Code (~/.claude.json):
{
"mcpServers": {
"omnimem": {
"type": "sse",
"url": "http://localhost:8765/sse"
}
}
}
Сервер автоматически передаёт руководство по использованию любому подключающемуся агенту через поле MCP instructions — файл конфигурации не нужен. Веб-дашборд доступен по адресу http://localhost:8080.
Полное руководство, включая токены аутентификации, настройки разрешений и других агентов, — в docs/quick-start.md.
Документация
| Quick start | Установщик, сборка из исходников, подключение агента |
| Features in depth | Жизненный цикл, кладбище, оценка опыта, дедупликация, противоречия, брифинг |
| The skill compiler | Компиляция опыта в загружаемые навыки |
| MCP tool reference | Все 30+ инструментов |
| Configuration reference | Каждая переменная окружения |
| RSS & knowledge | Пассивное поглощение и продвижение знаний |
| Multiple machines | Обратный прокси, OAuth 2.1 для claude.ai, устранение неполадок |
| Web UI | Панель управления и метрики Prometheus |
| Architecture | Контейнеры, конвейер поиска, проектные решения |
| Memory type specs | Модель хранения, поле за полем |
| Connection guides | Настройка для каждого агента |
| Руководства по развёртыванию | macOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel |
Спецификации хранилища по пространствам имён, если вы хотите точно знать, что и кем записывается в Valkey: overview · episodic · project · knowledge · preference · skill
Участие в разработке
Приветствуются issues и PR. Разработка ведётся на Codeberg — пожалуйста, оставляйте issues и PR там. OmniMem спроектирован для расширения, а конвейер оценки структурирован так, что новые множители можно добавлять, не затрагивая ядро. Новые MCP-инструменты, дополнительные типы пространств имён и альтернативные бэкенды эмбеддингов — всё это разумные направления.
Лицензия
MIT. Свободно используйте, форкайте и модифицируйте. Никакого корпоративного тарифа, никакой хостинг-версии, никаких условий.
Создано Риком Харви @ SquareCows Ltd, консалтинговая компания по ИИ и автоматизации для тех, кто предпочитает владеть своими инструментами.