pi-mnemos
v4.3.0
Published
Mnemos memory & knowledge server — Pi extension. Spawns `mnemos mcp-server` over stdio and exposes every mnemos_* tool as a native Pi tool, plus the mnemos skill pack.
Maintainers
Readme
AI-агенты забывают всё, когда сессия заканчивается. Mnemos даёт им место, куда это можно положить — структурированно, с поиском, по контракту — чтобы то, что агент узнал, не исчезало с закрытием окна.
- Локальность прежде всего. Один процесс на вашей машине. SQLite + встроенная модель эмбеддингов; ничего не покидает хост, без API-ключей, работает офлайн.
- Один сервер, любой харнес. VS Code Copilot, Claude Code, Cursor, OpenCode, Codex, Windsurf, ZCode, pi, Hermes — один и тот же MCP-провод, одна строка на каждого.
- Агент учится этим пользоваться. Не только инструменты: always-on инструкции, пакет скиллов и режим промпта «память прежде всего», разворачиваемые в ваш харнес одной командой.
🚀 Быстрый старт
Три команды от пустой машины до агента, который помнит — и знает, когда заглянуть.
1 · Установите сервер
pip install mnemos-memory-serverВсё в одном пакете: сервер памяти, CLI mnemos, REST API и MCP-сервер, с которым разговаривает
ваш агентский харнес. Модель эмбеддингов встроена — поиск работает полностью офлайн,
без API-ключей и без загрузок.
⚠️ Не перепутайте имя:
pip install mnemos(без-memory-server) — посторонний проект.
2 · Подключите харнес — и научите его пользоваться памятью
mnemos integration setupОдин проход: находит агентские харнесы на вашей машине, регистрирует MCP-сервер Mnemos в каждом
поддерживаемом харнесе (VS Code Copilot, Cursor, ZCode, OpenCode, pi, Hermes и всё, что читает
стандарт ~/.agents, — Claude Code, Codex и друзья) и разворачивает поведенческий пакет —
always-on инструкции и скиллы памяти, чтобы агент вспоминал в начале сессии, делал чекпоинт
до того, как его контекст сожмут, и относился к памяти как к приоритету, а не забывал,
что инструменты существуют.
Харнес, который не читает ничего стандартного? Один блок для копипаста на каждый: Подключите Mnemos к любому харнесу.
3 · Проверьте — и попробуйте
mnemos doctorPASS / WARN / FAIL по каждой проверке: хранилище, конфиг, MCP-транспорт, регистрация харнесов
(--fix чинит типовые предупреждения). Затем дайте ему память:
mnemos add "Первая запись — Mnemos помнит между сессиями" \
--tags project:mnemos,agent:me,mnemos:learning
mnemos search "помнит между сессиями"Это весь цикл: записал, нашёл, не потерял — и агент знает, когда заглянуть в память.
📘 Хотите каждую деталь? Расширенный гид покрывает все варианты установки (
uv tool,pipx, только CLI, внешние LLM-экстры, скрипт-установщик, контейнер), пошаговое подключение каждого харнеса, конфигурацию и разбор неполадок: Начало работы — полное руководство.
✨ Возможности
Один локальный сервер — и подключённый агентский харнес получает полный стек памяти.
| Область | Что даёт |
|---------|----------|
| Универсальное подключение | MCP-сервер (26 инструментов, stdio) + REST API — любой харнесс с поддержкой MCP подключается одной строкой (инструменты · HTTP) |
| Готовые интеграции | VS Code Copilot, Claude Code, Cursor, Codex, Windsurf, OpenCode, ZCode, pi, Hermes Agent — однострочные MCP-пресеты для всех, нативные таргеты развёртывания для большинства, мульти-харнесный доктор (mnemos doctor) |
| Пакет скиллов | 14+ скиллов памяти разворачиваются в ваши харнесы |
| Гибкая память | Гибридный поиск (полнотекстовый + векторный, слияние рангов) поверх встроенной офлайн-модели mnema-embed-v1, контракт тегов, память по агентам и проектам, профили контекстного фильтра, сжатие CCR — экономия 70–90% токенов, оригиналы сохраняются |
| Сборка контекста | assemble_context: поиск → сжатие → фильтр → скан секретов → выравнивание кэша → бюджет токенов, провенанс каждого блока |
| Мост контекста | on_context_rewrite — когда харнес сжимает историю, оригинал без потерь доступен по требованию |
| Хуки жизненного цикла | pre_llm_call — впрыск контекста, on_session_start, post_tool_call — авто-сжатие вывода инструментов |
| Публикация v3.0.0 | Запись видна сразу после сохранения, фоновая дообработка с бесшовной подменой, карантин с нейтральной ретракцией |
| Автозащита | Детекторы инъекций / секретов на входе и на публикации, скан каждого вывода, полный аудит по каждой записи |
| Автоконвейер | Фоновый процессор: кластеризация, дедупликация, гейт качества, публикация |
Автономность для произвольного харнесса и LLM-дообогащение — частично; полная честная карта: docs/ru/features.md.
🧩 Что такое Mnemos
Однотенантный, локально-ориентированный сервер памяти для AI-агентов. Одно ядро in-process, три эквивалентных поверхности управления и слой хранения, который можно прочитать своими глазами.
| | Возможность | Что это даёт |
|---|------------|-------------------|
| 🔎 | Гибридный поиск | Векторная близость + SQLite FTS5 полнотекст по каждой записи |
| 🧪 | Конвейер знаний | Жизненный цикл raw → processing → processed → published с конечным автоматом |
| 🧠 | Recall на агента | Сфокусированная поверхность recall в контексте проекта каждого агента |
| ⚙️ | Движок политик | Планирование и триггеры автоматизации над хранилищем памяти |
| 🧹 | Контекстный фильтр | Пятиступенчатая очистка шума из логов / stdout до того, как что-то попадёт в модель |
| 🗜️ | Обратимое сжатие (CCR) | Сжатие большого контента без потери данных — оригиналы кэшируются в SQLite, извлекаются по хеш-маркеру |
| 🧷 | CacheAligner | Перенос динамического контента (таймстампы, UUID, session id, токены) в хвост, чтобы KV-кэши провайдеров (Anthropic cache_control, OpenAI prefix caching) попадали между запросами |
| 🪶 | Сокращение токенов вывода | Опциональные параметры verbosity / effort на mnemos_add / mnemos_search / mnemos_recall_context управляют стилем вывода вызывающей стороны — обратно совместимо, значения по умолчанию — no-op |
| 📂 | Path-scoped rules | Ингест правил проекта и применение их по пути файла |
| 🗂️ | Obsidian vault | Markdown-зеркало, которое люди могут листать, править и грепать |
SQLite для метаданных, локальный векторный индекс на numpy + SQLite для recall и Obsidian-совместимый vault для людей в контуре.
Куда это движется. Отгруженная и измеренная ступень — хранит и находит. Следующие ступени — свёртка с чеками (синтез сессия → проект → кросс-проект: автоматическая по умолчанию, но никогда безусловная по авторитету — каждый итог возводим к исходникам, ничто не пиннится без оператора) и позже строит понимание — открываются только по мере подтверждения предрегистрированными экспериментами (ADR-0025). Инвариант этого пути — ноль тихих потерь: факт либо сохранён, либо потеря видна. А форма амбиции — нервная система, а не дирижёр: память, которая поднимает нужное в нужный момент, но никогда не дирижирует агентом.
🤝 Подключение любого харнеса
Mnemos работает с любым агентским харнесом с поддержкой MCP. Три уровня интеграции — выбирайте самый сильный из доступных для вашего харнеса:
| Харнесс | Нативная цель | Однострочный MCP-пресет | Шаблон адаптера |
|---------|---------------|-------------------------|-----------------|
| VS Code Copilot | copilot (+ промпты через generic-copilot) | mcp-setup.sh | ✓ |
| Claude Code | через agents | пресет | ✓ |
| Cursor | cursor | пресет | ✓ |
| Codex | через agents | пресет | ✓ |
| Windsurf | — | пресет | ✓ |
| OpenCode | — | пресет | ✓ |
| ZCode | zcode | — | ✓ |
| Любой харнесс стандарта AGENTS.md | agents | — | ✓ |
| pi | pi (бридж-расширение, также на npm как pi-mnemos) | пресет | ✓ |
| Hermes Agent | hermes (нативный in-process плагин MemoryProvider) | — | — |
- Нативные таргеты —
mnemos integration setup --target <имя>разворачивает поведенческий пакет и регистрирует MCP-сервер за один проход (руководство по интеграции). - Однострочные пресеты —
integrations/mcp-presets.md: каждый харнес из таблицы выше, готово к копипасту. - Шаблон адаптера —
integrations/adapter-template.md: Connect / Expose / Configure + чеклист приёмки для любого харнеса, говорящего по MCP stdio. - Hermes Agent запускает Mnemos in-process:
pip install mnemos-memory-serverв Python-окружении Hermes, затемmnemos integration setup --target hermes(подробнее).
Общий контракт — схема тегов — project:<slug>, agent:<slug>
и хотя бы один mnemos:<subtype> — обязательна для каждой записи памяти.
🏗️ Архитектура
flowchart TB
subgraph CLIENTS["Clients"]
C1(["Agent harness\nstdio MCP"])
C2(["CLI — mnemos …"])
C3(["HTTP API client"])
end
subgraph IFACE["Interface Layer"]
MCP["mcp_server.py"]
FAPI["api/main.py · FastAPI"]
TYPER["cli/main.py · Typer"]
end
MGR(["MemoryManager\nmanager.py"])
subgraph PROC["Processing Subsystems"]
CF["Context Filter\nfilter/"]
PP["Knowledge Pipeline\npipeline/"]
RE["Recall Engine\nrecall/"]
PE["Policy Engine\npolicy/"]
end
subgraph BG["Background Services"]
WA["Watchers\nwatchers/"]
AC["Auto-collect\nauto_collect.py"]
end
subgraph STORE["Storage Layer"]
SQ[("SQLite\nFTS5 · traces · projects")]
VS[("Vector Store\nnumpy + SQLite")]
VLT[("Obsidian Vault\nmarkdown mirror")]
end
C1 -->|"stdio"| MCP
C2 --> TYPER
C3 --> FAPI
MCP --> MGR
TYPER --> MGR
FAPI --> MGR
MGR --> CF
MGR --> PP
MGR --> RE
MGR --> SQ
MGR --> VS
MGR --> VLT
CF -.->|"raw + clean"| SQ
PP -->|"status transitions"| SQ
PP -->|"published upsert"| VS
RE -->|"FTS5 MATCH"| SQ
RE -->|"cosine search"| VS
PE -->|"schedule / trigger"| MGR
WA -->|"file events"| MGR
AC -.->|"checkpoint reminder"| MCPБолее глубокий разбор — модель данных, конечные автоматы, границы безопасности, эксплуатационные аспекты — в architecture/overview.md.
🎛️ Три поверхности, одно ядро
Один и тот же MemoryManager питает все три интерфейса. Выберите тот, что подходит вашему клиенту.
| Поверхность | Когда использовать… | Документация |
|---------|--------------|-----------|
| MCP — mnemos mcp-server | Вы — агентский харнес; путь, по которому идёт каждый подключённый агент | mcp-tools.md |
| CLI — mnemos … | Вы живёте в шелле, нужен быстрый ad-hoc add / search или скрипты для cron | cli-reference.md |
| HTTP — mnemos serve | У вас не-MCP клиент — веб-дашборд, мобильное приложение, CI runner | http-api.md |
HTTP-поверхность также открывает A2A Sessions API — постоянный бэкенд для многошаговых разговоров агентов, которые переживают рестарты. См. a2a-sessions.md.
📚 Документация
| Страница | Содержание |
|------|----------------|
| docs/README.md | Главная страница документации — выбор языка (EN / RU) |
| getting-started.md | Первый запуск: установка → первая запись → первый поиск → подключение харнеса |
| mcp-presets.md | Подключение Mnemos к любому харнесу — однострочные MCP-пресеты (VS Code, Claude Code, Cursor, OpenCode, Codex, Windsurf, pi, Hermes) |
| integration-guide.md | Поведенческий пакет: инструкции, скиллы, режим промпта, таргеты развёртывания, wiring агентов, плагин Hermes |
| features.md | Что работает из коробки, что частично, что в планах |
| architecture/overview.md | Устройство системы, модель данных, конечные автоматы, границы безопасности |
| cli-reference.md | Все подкоманды mnemos с флагами, значениями по умолчанию, примерами |
| mcp-tools.md | Все инструменты mnemos_*, доступные агентским харнесам |
| http-api.md | Все HTTP-эндпоинты (CRUD памяти, workflow, хуки, A2A Sessions) |
| tag-contract.md | Схема project: / agent: / mnemos:, обязательная для каждой записи памяти |
| security.md | Модель угроз, SSRF-защита, FTS5 escape, модель аутентификации |
| runbooks/ | Установка, миграция, резервное копирование / восстановление, обновление зависимостей, развёртывание в контейнере |
| adr/ | Архитектурные решения (ADR) — почему за каждым решением в дизайне |
| CHANGELOG.md | Release notes — формат Keep a Changelog |
| CONTRIBUTING.ru.md | Настройка разработки, git-workflow, quality gate |
📖 Легенда
В «Теогонии» Гесиода Мнемосина (Μνημοσύνη) — титанида памяти. Она, от Зевса, родила девять муз и через них сделала возможным воспоминание мира. Её имя — корень слова мнемонический, и к ней обращается каждый певец, поэт и философ, прежде чем начать.
Это программное обеспечение носит её имя, потому что создано для той же задачи: сделать воспоминание возможным для тех, кто мыслит. AI-агенты, не привязанные ни к одному разговору, теряют всё, что было до. Mnemos даёт им место, куда это можно положить — структурированно, с поиском, по контракту — чтобы то, что они узнали, не исчезало с закрытием сессии. Музы, в конце концов, были не для богов. Они были для песен.
⚖️ Лицензия и вклад
Apache-2.0 — см. LICENSE и NOTICE. Исходники: github.com/Korrnals/mnemos.
Вклад приветствуется — в CONTRIBUTING.ru.md: настройка окружения разработки, конвенции веток и коммитов и quality gate, который должно пройти каждое изменение.
