mimir
Perseus Vault
Постоянная зашифрованная память для AI-агентов. Один Rust-бинарник, один файл, никакого облака.
Опубликован в Official MCP Registry · Glama · mcpservers.org · Lulu MCPs · Docker (GHCR)
Дайте вашим агентам память, которая переживает сессию, чтобы они перестали заново выводить то, что уже узнали, и перестали повторять прошлые ошибки. Гибридный поиск (BM25 + плотный + RRF), битемпоральная история и AES-256-GCM в покое, представленные как 168 канонических MCP-инструментов, которые работают с любым хостом. Устаревшие псевдонимы mimir_*/mneme_* были удалены в мажорном релизе 2026-27 и не учитываются отдельно. 73.8% на официальном стенде LongMemEval (против Zep 63.8%, Mem0 49.0%).
Один бинарник. Один файл. Без Docker. Без Postgres. Без облака. Локально, готово к воздушному зазору, MIT.
Установка в одну строку
curl -sSf https://raw.githubusercontent.com/Perseus-Computing-LLC/perseus-vault/main/scripts/install.sh | shВот и всё. Perseus Vault устанавливается в ~/.local/bin/perseus-vault. Запустите его:
perseus-vault serve --db ~/.perseus-vault/data/perseus-vault.dbШифрование включается автоматически для установки по умолчанию. При первом запуске создается
~/.perseus-vault/secret.keyс правами только для владельца и зашифрованный канарейка базы данных. Сделайте резервную копию этого ключа: его невозможно восстановить. Явные пути--encryption-keyпо-прежнему поддерживаются, а существующие базы данных в открытом виде сохраняются для миграции с помощьюperseus-vault init --rekey. Используйтеdoctorдля проверки фактического состояния на диске.
Примечание для macOS (Apple Silicon). Свежесобранный или скопированный бинарник при первом запуске получает SIGKILL (
Killed: 9, без другого вывода) из-за политики ОС в отношении бинарников — даже без атрибута карантина. Установщик в одну строку и установщик сборки из исходниковbootstrap.shвыполняют ad-hoc подпись кода Perseus Vault за вас. Если вы собираете бинарник самостоятельно, подпишите его один раз после каждой пересборки:cargo build --release cp target/release/perseus-vault ~/.local/bin/perseus-vault codesign --force --sign - ~/.local/bin/perseus-vault # required on Apple Silicon; fixes "Killed: 9"
--forceпереподписывает уже подписанный бинарник (нужно после каждой пересборки); этот шаг безвреден на Intel macOS и не нужен на Linux/Windows.
Затем подключите ваши MCP-клиенты — и полный цикл припоминания/захвата — одной командой:
perseus-vault install-client --hooks --rulesЭто автоматически обнаруживает Claude Code / Codex / Cursor (передайте --client <name> для
claude-desktop, hermes, windsurf, vscode, zed или generic; --all-detected
подключает каждый обнаруженный клиент), объединяет регистрацию MCP-сервера в
конфиг клиента без повреждения чего-либо (сначала создается резервная копия .bak-perseus),
направляет каждый клиент на одну общую базу данных памяти,
регистрирует хуки жизненного цикла сессии (внедрение припоминания при SessionStart,
гигиена при завершении сессии — контракт docs/lifecycle-hooks.md) и добавляет
правила использования памяти в CLAUDE.md/AGENTS.md. Повторный запуск — холостой; добавьте
--dry-run для предварительного просмотра каждого файла, к которому он прикоснется.
Или подключите любой MCP-хост вручную (Claude Desktop, Cursor, Hermes Agent, Perseus и т.д.):
{
"mcpServers": {
"perseus-vault": {
"command": "perseus-vault",
"args": ["serve", "--db", "~/.perseus-vault/data/perseus-vault.db"]
}
}
}Related MCP server: GroundMemory
Для Агентов: Подключение через MCP
Когда основным потребителем является агент, интерфейсом является MCP — агент принимает Vault через своего MCP-клиента, и установка CLI на машине не требуется, кроме запуска самого сервера:
# 1. Run the server (one line)
perseus-vault serve --db ~/.perseus-vault/data/perseus-vault.db &
# 2. Register it in the agent's MCP client config
# { "mcpServers": { "perseus-vault": {
# "command": "perseus-vault",
# "args": ["serve", "--db", "~/.perseus-vault/data/perseus-vault.db"] } } }
# 3. Verify the agent-facing surface
perseus-vault doctorperseus-vault install-client --hooks --rules настраивает весь цикл
припоминания/захвата для Claude Code / Codex / Cursor / Hermes одной командой.
Для карты возможностей, ориентированной на агента — какой инструмент какую работу выполняет и шаблон
границ планирования — см.
docs/integration/agent-adoption.md.
Быстрый старт за 30 секунд
# Start Perseus Vault
perseus-vault serve --db memory.db &
sleep 1
# Remember a fact (via MCP JSON-RPC on stdio)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"perseus_vault_remember","arguments":{"category":"demo","key":"hello","body_json":"{\"text\":\"Hello from Perseus Vault!\"}"}}}' | perseus-vault serve --db memory.db
# Search for it
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"perseus_vault_recall","arguments":{"query":"Hello"}}}' | perseus-vault serve --db memory.dbМодель памяти и операционные границы
Perseus Vault держит три плоскости раздельными:
Неявный рабочий контекст — это текущее приглашение хоста, транскрипт и любой блок контекста, который клиент решает внедрить. Он эфемерен и принадлежит хосту; он не сохраняется только потому, что Vault его вернул.
Явная долговременная память записывается явной операцией
perseus_vault_remember,perseus_vault_capture,writeилиcapture. Сервер Vault владеет записью SQLite, историей, журналом, затуханием, архивом и жизненным циклом очистки.Производные проекции включают консолидированные или синтезированные записи и экспортированный Markdown. Они несут происхождение, но не являются заменой исходных долговременных записей и могут потребовать отдельной очистки.
perseus-vault prepare и perseus_vault_context читают долговременные записи для
создания ограниченного, релевантного задаче активного рабочего контекста. Это скользящий
снимок, а не фоновая запись или обещание, что клиент его сохранит:
обновляйте его при изменении задачи и не рассматривайте текст приглашения как долговременную память,
если только явная операция захвата/записи не завершилась успешно. Вывод с приоритетом припоминания
ограничен по бюджету (1500 символов по умолчанию, 6000 для хостов с большим окном или явный
max_context_chars); набор always_on ограничен пятью. См.
семантику хранения и контекста.
Хуки жизненного цикла и установщики клиентов являются необязательной оркестровкой. Они запрашивают принадлежащую серверу работу по припоминанию, захвату, обслуживанию и обновлению; они не становятся вторым хранилищем и не изменяют политику хранения. Если сервер или хук недоступны, продолжите задачу без внедренной памяти и сообщите о деградированном состоянии. Интеграция хоста может иметь явно настроенное локальное резервное решение, но это резервное решение должно быть помечено как локальное и не должно представляться как долговременное припоминание Vault; неудачная явная запись никогда не должна сообщаться как сохраненная. Для шагов обновления/восстановления используйте руководство по обновлению и миграции.
Работает с Любым MCP-Клиентом
Perseus Vault — это стандартный MCP-сервер stdio — та же команда perseus-vault serve работает
везде. Запустите perseus-vault doctor, чтобы проверить вашу установку и вывести эту матрицу локально.
Клиент | Статус | Конфигурация |
Claude Desktop | ✅ |
|
Claude Code / Hermes | ✅ |
|
Cursor | ✅ |
|
Windsurf | ✅ |
|
VS Code + Continue.dev | ✅ |
|
Zed | ✅ |
|
Codex CLI | ✅ |
|
Фрагменты конфигурации копипастой для каждого: docs/clients/.
Затем подключите цикл припоминание → работа → захват → консолидация к событиям сессии вашего клиента (хуки SessionStart/Stop для Claude Code, Codex и Cursor, плюс портативное резервное решение AGENTS.md): docs/lifecycle-hooks.md.
Композиция с очистителем памяти (CoalWash) и уплотнителем вывода времени выполнения (Noisegate) для сквозного контроля бюджета контекста: docs/integration/context-budget-stack.md.
Аудит того, что Vault помнит, откуда и под чьей властью: docs/evidence-chain-guidance.md — цепочки доказательств, теги происхождения во время записи и непрерывная аттестация для долговременной памяти.
Банки памяти (изоляция на клиента, один профиль)
Агентство запускает 50 клиентов с одним и тем же сценарием? Не дублируйте профили — назначьте банк памяти для каждого проекта и храните один профиль Hermes, один Vault и одну общую библиотеку навыков:
# .hermes.md
memory_bank: acme-seo # name → deterministic workspace hash
memory_bank_workspace: <64-hex> # optional explicit workspace overrideПровайдер памяти Hermes
(hermes plugins install Perseus-Computing-LLC/hermes-plugin-perseus-vault)
разрешает банк один раз за сессию и ограничивает каждое чтение и запись Vault —
предварительное припоминание, perseus_recall / perseus_remember / perseus_forget,
захват в конце сессии — выделенным рабочим пространством. Имена банков сопоставляются
детерминированно (sha256("memory-bank:" + name)), поэтому каждый экземпляр,
указывающий на одно и то же имя, обращается к тому же рабочему пространству без необходимости
поддерживать реестр. Рабочие пространства являются первоклассными на сервере: ограниченное
обслуживание, изоляция дедупликации между банками и манифесты полномочий для каждого рабочего
пространства. Обнаружение отражает правила контекста проекта Hermes (побеждает ближайший
.hermes.md, ограничен корнем git); файл контекста без директивы означает отсутствие банка —
настроенное рабочее пространство остается в силе.
Почему Perseus Vault
Perseus Vault — это единственный движок памяти, который одновременно является MCP-нативным, локальным, не имеющим зависимостей И ориентированным на агентов.
LongMemEval QA (официальный стенд)
Качество припоминания, измеренное на официальном стенде LongMemEval, а не на самодельном скрипте:
Движок памяти | Точность QA |
Perseus Vault | 73.8% |
Zep | 63.8% (опубликовано) |
Mem0 | 49.0% (опубликовано) |
longmemeval_s (500 вопросов), отвечающий gpt-4o-2024-08-06 + официальный судья LongMemEval; цифры конкурентов — их опубликованные значения. 73.8% Perseus Vault — это простое среднее 3 запусков; 79.0% с официальным CoT. Методология и результаты с хешированием содержимого (sha256) →
LOCOMO (собственный стенд mem0)
Измерено на собственном стенде LOCOMO от mem0 (наш форк), а не нашем — категории 1–4, 1540 вопросов, топ-200, отвечающий и судья gpt-5:
Движок | В целом | Одиночная | Временная | Множественная | Открытый домен |
Perseus Vault 2.20.2 | 87.9% | 89.1 | 92.2 | 85.1 | 70.8 |
Mem0 Platform Starter | 82.2% | 85.0 | 82.9 | 78.0 | 67.7 |
Zep Cloud Flex | 33.8% | 36.9 | 6.9 | 50.0 | 49.0 |
Категория 5 состязательная (446 вопросов): Perseus 63.5, Mem0 55.6, Zep 49.8. Наше измерение Mem0 на 9.4 пункта ниже их опубликованного файла (дрейф судьи/платформы — раскрыто). Полная таблица лидеров →
Битемпоральное путешествие во времени (три оси)
Наш самый сильный структурный дифференциатор — полная битемпоральная история SQL:2011 (время транзакции и действительное время) — измеренная на воспроизводимом, полностью офлайн испытании. Он управляет реальным поставляемым бинарником через MCP stdio через сложные случаи, с которыми одноосевые конкуренты ошибаются (ретроактивные исправления, упреждающие факты с датой в будущем, поступление не по порядку, расхождение убеждения и истины, закрытые периоды):
Ось | На какой вопрос отвечает | Проверки | Пройдено |
valid-time ( | "что было истинно в мире в момент T" | 10 | 10 |
transaction-time ( | "во что мы верили в момент T" | 1 | 1 |
bi-temporal ( | "согласно мнению на момент T, что было истинно в V" | 2 | 2 |
Total | 13 | 13 (100%) |
Воспроизведение одной командой (без API-ключа, без сети, без LLM):
cargo build --release
python benchmark/temporal/gauntlet.py --bin target/release/perseus-vaultВердикты PASS/FAIL детерминированы (отметки времени стенных часов варьируются, вердикты — нет), поэтому правильная сборка повторно запускается до идентичного signature_sha256. Зафиксированный gauntlet_report.json является эталоном. Методология и набор данных →
Сравнительная матрица
Perseus Vault | Mem0 | Letta | Zep | |
Развёртывание | Один бинарник | Облако + самостоятельное размещение | Docker/Postgres | Docker/Neo4j |
Зависимости | Нет (встроенный SQLite) | Python + векторная БД | Postgres + Python | Neo4j + Go (Graphiti) |
MCP-нативный | ✅ 157 канонических инструментов | ❌ Не MCP-нативный | ❌ Не MCP-нативный | ❌ Не MCP-нативный |
Офлайн/Локально | ✅ Полностью локально | Зависит от облака | Требуется Docker | Требуется Docker |
Шифрование | AES-256-GCM ✅ | ❌ | ❌ | ❌ |
Гибридный поиск | BM25 + Плотные вектора + RRF | Только вектора | Только вектора | Вектора + Граф |
Жизненный цикл сущностей | Затухание + Продвижение + Архивация | ❌ | ❌ | ❌ |
Граф сущностей | Связь + Обход | ❌ | ❌ | ✅ |
Журнал аудита | ✅ Неизменяемый | ❌ | ❌ | ❌ |
Управление состоянием | ✅ Ключ-значение + TTL | ❌ | ❌ | ❌ |
MCP-инструменты | 103 канонических | 5 | 8 | 0 |
Лицензия | MIT | Apache 2.0 | Apache 2.0 | Apache 2.0 |
Полное сравнение: Perseus Vault vs Mem0 → vs Letta → vs Zep →
Стресс-тест: 100K сущностей
Perseus Vault справляется с производственными нагрузками на скромном оборудовании. Цифры ниже взяты из зафиксированного артефакта benchmark/scale/report.json: реальный релизный бинарник, управляемый через MCP stdio (один постоянный процесс на размер корпуса), AMD64 16-ядерный, Windows 11, каждая запись устойчива перед отправкой следующей.
Метрика | 10K | 100K |
Пропускная способность записи, устойчивая (MCP stdio) | 479 док/с | 40 док/с |
Гибридное извлечение p50 | 19.03 мс | 79.73 мс |
Извлечение FTS5 p50 | 3.14 мс | 15.67 мс |
Полные перцентили, точечные запросы as_of, временное извлечение и показатели холодного старта находятся в benchmark/scale/.
Запустите сами: python benchmark/scale/run.py
Точность извлечения в масштабе: ключевые слова падают, гибрид держится
Скорость — это лишь входной билет; вопрос, который имеет значение для памяти агента: действительно ли нужная память всплывает? Измерено на корпусах с различным содержимым (собственные, воспроизводимые; см. benchmark/lambda/), recall@k по режиму:
100 000 сущностей (1×H100, nomic-embed-text на Ollama):
извлечение@k | ключевые слова (BM25/FTS5) | плотные | гибрид (RRF) |
@1 | 0.003 | 0.680 | 0.785 |
@5 | 0.015 | 0.859 | 1.000 |
@10 | 0.029 | 0.899 | 1.000 |
При 100K сущностях гибридное извлечение идеально на @5, в то время как поиск по ключевым словам попадает только ~1,5% времени — разрыв ~66×. И он увеличивается с масштабом: при 10K сущностях извлечение по ключевым словам @5 было 0,008, а гибрид уже 1,000; память только на ключевых словах молча ухудшается по мере накопления истории агентом, гибрид (BM25 + плотные вектора + слияние взаимных рангов) — нет. Это ключевой аргумент в пользу гибридного поиска Perseus Vault.
Сравнение один на один, та же машина, тот же корпус, всё полностью локально (1×H100, Ollama — одинаковый набор фактов, запросов и оценщик подстрок для каждой системы):
Система | Точность извлечения | Задержка p50 | Примечания |
Perseus Vault (гибрид) | 1.00 | 35.6 мс | один самодостаточный бинарник, внутри процесса |
Letta (архивный / pgvector) | 1.00 | 135.5 мс | сервер + Postgres/pgvector |
Mem0 (вектора) | 0.60 | 37.9 мс | Python + векторная БД |
Zep (Graphiti временной KG) | 0.20 | 49.7 мс | сервер + Neo4j; граф извлечён локальной моделью |
Каждый конкурент был развёрнут и запущен вживую на той же машине против того же локального Ollama (qwen2.5:14b-instruct + nomic-embed-text) — никакого облака, никаких выдуманных цифр. Letta работал как сервер letta/letta (встроенный Postgres/pgvector) и достиг 1.00, как и Perseus Vault. Самостоятельно размещаемый сервер Community Edition от Zep устарел, и его API памяти zep_python теперь доступен только в Zep Cloud, поэтому мы измерили фактический OSS-движок Zep — временной граф знаний Graphiti на Neo4j — с извлечением сущностей/связей и эмбеддингами на том же локальном Ollama. Его 0.20 отражает реальную стоимость построения графа знаний с помощью локальной модели (структурированное извлечение с потерями: 5 сущностей / 2 ребра из 6 фактов) — а не Zep Cloud, который использует передовые модели. Полный артефакт + методология: benchmark/lambda/results/competitors.json.
Холодный старт: голая машина с GPU выдает первый обоснованный RAG-ответ за 3.3 с (модели размещены на диске).
Воспроизведение: benchmark/lambda/scale_bench.py и competitors_bench.py.
Развёртывание рядом с сервером моделей на GPU-хосте (vLLM на MI300X/H100)? См. справочник по развёртыванию на AMD MI300X — измеренные показатели совместного размещения, а также подводные камни /dev/shm, PID-1 и фиксации версий, которые ломают эти стеки на практике.
Интеграции с фреймворками
Готовые к использованию адаптеры, которые делают Perseus Vault стандартным бэкендом памяти для популярных фреймворков AI-агентов:
Фреймворк | Интеграция | Тип |
| реализация | |
| инструмент агента | |
| реализация |
Каждый адаптер:
Подключается через подпроцесс MCP stdio (постоянная сессия)
Отображает интерфейс памяти фреймворка на инструменты Perseus Vault
Поставляется с быстрым стартом в README (5 минут до работы)
Имеет проходящие тесты с имитированным MCP-транспортом
Любой MCP-совместимый фреймворк работает с Perseus Vault напрямую. См. Интеграции MCP-клиентов и фреймворков для полного списка.
150 канонических MCP-инструментов
Канонические названия продуктов и инструментов. Perseus Vault — это название продукта, и интеграции используют канонические инструменты
perseus_vault_*(например,perseus_vault_remember). Устаревшие названияmimir_*/mneme_*/plutus_*были удалены в мажорном релизе 2026-27 годов — канонические названия являются единственным интерфейсом. Количество — это число уникальных канонических инструментов в исходном реестре. Совместимые псевдонимы вызываемы, но не учитываются отдельно. Устаревшие названияperseus_vault_*иperseus_vault_*остаются полностью вызываемыми — каждый префикс направляется к тому же обработчику — они просто больше не рекламируются вtools/list. Это позволяет сохранить рекламируемый манифест как одно имя на инструмент вместо его утроения (3× раздувание псевдонимов), поэтому подключённые клиенты не перезагружают утроенную полезную нагрузку схемы инструментов при каждом запросе. Чтобы восстановить историческое поведение рекламирования всех трёх префиксов, установитеPERSEUS_VAULT_TOOL_ALIASES=all(устаревшая envPERSEUS_VAULT_TOOL_ALIASESтакже учитывается;PERSEUS_VAULT_имеет приоритет).Совместимость клиентов (#633). Клиенты, которые проверяют рекламируемый список — они проверяют
tools/listперед вызовом и пропускают инструменты, которых не видят — будут молча пропускать устаревшие вызовыperseus_vault_*к хранилищу версии 2.x, хотя сам вызов был бы успешным. Известный случай: CLIperseus≤ 1.0.22 жёстко кодируетperseus_vault_recallи деградирует до пустого локального извлечения. Исправление с любой стороны: обновите CLI до ≥ 1.0.23 (вызывает канонические имена с динамическим запасным вариантом) или установитеPERSEUS_VAULT_TOOL_ALIASES=allна хранилище в качестве моста, пока старые клиенты остаются развёрнутыми.
Области инструментов (уровни рекламы, #1051)
По умолчанию tools/list рекламирует все канонические инструменты. Установите PERSEUS_VAULT_TOOL_SCOPE, чтобы сузить рекламируемую поверхность для клиентов-агентов, ограниченных по токенам и вниманию:
Настройка | Рекламируемая поверхность | Количество |
| всё | 150 |
| поверхность агента + операционная чистка, обслуживание, управление, экспорт | 140 |
| повседневная память + поверхность координации (извлечение/запоминание/контекст/передачи/состояние, плюс вызовы AAR на стороне агента) | 48 |
Области предназначены только для рекламы: скрытый инструмент остаётся полностью вызываемым через tools/call, а авторизация остаётся за привязкой к рабочему пространству и манифестам полномочий. Классификация уровней представляет собой вспомогательную таблицу 1:1 (TOOL_SCOPES в src/mcp.rs), принудительно применяемую CI с помощью scripts/registry_metadata_check.py — каждый новый инструмент должен быть классифицирован. Инструменты уровня admin (migrate, purge, erase, vault_import, authority_set / authority_revoke / authority_set_signed) никогда не появляются в списке с областью.
CRUD сущностей
Инструмент | Описание |
| Сохранить/обновить сущность. Идемпотентна по (category, key); изменение содержимого сохраняет снимок предыдущей версии в историю. |
| Поиск в режимах FTS5/dense/hybrid, фильтры, расширение по стеммингу. Контракт запроса (#562): |
| Детерминированное постраничное перечисление категории или всего хранилища (#562): неизменяемые страницы keyset с |
| Отчёт по гигиене стартовой памяти только для чтения (#675): оценивает активные воспоминания по «применимости» (конкретные якоря — ключи issue, #refs, пути, URL, решения — против расплывчатых/только с датой/коротких) и перечисляет худших нарушителей с причинами для курирования архивации/консолидации. |
| Извлечение из конкретного биомиметического слоя (world, episodic, semantic). |
| Проактивное извлечение точно вовремя: показывать сущности, у которых срабатывают триггеры |
| Получить одну сущность по ID с полным |
| Транзакционное путешествие во времени: версия факта (category + key), которая считалась верной в прошлый момент времени. |
| Поиск по времени действия: версия, которая фактически была истинной в мире в момент времени, согласно текущим знаниям (SQL:2011 APPLICATION_TIME). |
| Полный двуосевой битемпоральный запрос: «по состоянию на транзакционное время T, что мы считали истинным в действительное время V» — точная ячейка прямоугольника. |
| Список заменённых версий факта (category + key), сначала новые — постранично ( |
| Мягкое удаление (archived=1). |
Поиск и RAG
Инструмент | Описание |
| RAG: извлечь контекст, запросить LLM, вернуть обоснованный ответ с источниками. |
| Генерировать плотные векторы с помощью встроенной модели, Ollama или endpoint, совместимого с OpenAI. |
| Ярлык семантического поиска только по плотным векторам — находить сущности по смыслу, ранжированные исключительно по схожести эмбеддингов (без запасного поиска по ключевым словам). |
| Предварительно отформатированный markdown-блок для инъекции в сессию. По умолчанию сначала извлечение: передайте |
| Запускать синхронизацию коннекторов (GitHub, file watcher); неизменённое содержимое пропускается через повторное воспроизведение контейнеров (#1050). |
| Сеть потерь при извлечении (#1048): сохранять предложения, пропущенные экстрактором, как остаточные spans, дословно с указанием происхождения. |
| Сеть потерь при извлечении (#1048): отказ как сигнал — заново оценивать spans относительно запроса, возвращать полезную нагрузку для повторной попытки, помечать потерянные единицы. |
| Сеть потерь при извлечении (#1048): подтвердить повторную попытку — прикрепить предварительный ключ запроса, чтобы идентичный повторный запрос использовал первый проход. |
| Локально извлекать текст документа (plaintext/markdown всегда; DOCX/PDF с функцией |
| Локальное, детерминированное, основанное на правилах извлечение знаний (факты / предпочтения / временные события / эпизоды) из текста или сохранённой сущности. Только чтение. |
| Опциональный захват в рамках сессии (#520): извлекать из полезной нагрузки транскрипта/инсайта (текст, markdown или JSONL) долговечные сущности (root-cause / pitfall / decision / pattern / takeaway) в момент решения проблемы. По умолчанию локальный дистиллятор на основе правил, опционально |
| Файловый интерфейс, совместимый с memory-tool Anthropic ( |
📖 docs/retrieval-modes.md — единый перечисленный справочник для каждого режима поиска (keyword · dense · hybrid · graph · GraphRAG · проактивный
recall_when· темпоральныйas_of): механизм, когда использовать, вызов и примеры.
Граф
Инструмент | Описание |
| Создание типизированных реляционных связей между сущностями. |
| Удаление связей сущностей. |
| Обход графа связей сущностей до настраиваемой глубины. |
| Обнаружение сообществ GraphRAG по графу связей (детерминированная маркировка распространения или жадная модульная «лувенская»; чистый Rust, офлайн). |
| Экстрактивное (опционально доработанное LLM) резюме одного сообщества, материализованное как сущность со связями |
| Глобальный поиск GraphRAG: обзор по сводкам сообществ, затем углубление в участников лучших сообществ — целостные ответы по кластерам. |
| Отчет о расхождениях графа/сущностей/индексов/квитанций только для чтения (#869): неподтвержденные, висячие, заархивированные/с истекшим сроком действия и межрабочие ребра, устаревшие членства в сообществах, расхождения FTS, ссылки журнала на отсутствующие сущности. |
| Простановка идентификатора сущности с исходной стороны как якоря подтверждения на устаревших ребрах, чтобы они стали доступны для механизмов извлечения графа (#869); предварительный просмотр в режиме dry-run, с журналированием. |
Журнал
Инструмент | Описание |
| Добавление структурированного события с указанием автора. |
| Защита от повторения ошибок: проверка действия на предмет ранее зафиксированных сбоев (журнал + сущности сбоев/ловушек) перед повторной попыткой. Только чтение. |
| Запрос журнала по временному диапазону с фильтрами. |
Состояние
Инструмент | Описание |
| Установка состояния ключ-значение с опциональным TTL. |
| Получение значения состояния. Возвращает null, если истекло. |
| Удаление записи состояния. |
| Список ключей состояния, опционально отфильтрованных по префиксу. |
Жизненный цикл
Инструмент | Описание |
| Пересчет оценок затухания по кривой Эббингауза (пакетные транзакции по 1000 сущностей). |
| Массовое архивирование по категории, порогу затухания или возрасту. |
| Безвозвратное удаление заархивированных сущностей + VACUUM. Разрушительная операция. |
| Очистка жизненного цикла по времени: сущности, у которых |
| Редактирование содержимого: замена тела сущности в рамках рабочего пространства на маркер только с хешем, удаление истории + текста FTS, сохранение метаданных (повторная загрузка разрешена). Требует явного |
| Физическое удаление сущности в рамках рабочего пространства из ВСЕХ производных слоев (FTS, история, сообщества, связи, журнал) + постоянное подавление повторной загрузки. Требует явного |
| Автономный проход по приведению к согласованности — продвижение, затухание, связывание, архивирование. |
| Полная атомарная обработка: согласование → затухание → уплотнение за один проход (поддерживает dry-run). |
| Архивирование сущностей ниже порога затухания. |
| Перестроение поискового индекса FTS5 из таблицы сущностей. |
| Объединение перекрывающихся/дублирующихся сущностей в категории в устойчивые наблюдения с отслеживанием доказательств (зеркальное отражение |
| Консолидация LLM в режиме сна: анализ кластеров связанных эпизодических воспоминаний через настроенную LLM и запись устойчивых семантических выводов с привязкой к каждому источнику. Идемпотентность (хеш набора доказательств), учет противоречий, ограниченность; требуется |
Качество
Инструмент | Описание |
| Назначение оценки качества (0.0-1.0). |
| Обнаружение конфликтующих сущностей через триграммное сходство; опциональный |
| Фиксация структурированных исправлений для обучения на ошибках. |
| Отметка нового факта как заменяющего старый (устанавливает старой сущности статус |
| Запись, была ли сущность фактически ВЫПОЛНЕНА или ПРОПУЩЕНА — сигнал эффективности отслеживания, который влияет как на оценку затухания, так и на ранжирование извлечения с учетом результатов (#681). |
Ключевые камни (правила политики)
Инструтор | Описание |
| Создание Ключевого камня — обязательного правила политики, которое сохраняется при уплотнении контекста (#683). Область действия (арендатор/флот/агент), ранжирование по весу, крипто-цепочка при каждом изменении; создание ограничено уровнем доверия. |
| Получение объединенных Ключевых камней для области, отсортированных по весу (сначала наибольший), затем по специфичности области — детерминированный аналог извлечения для начала сессии. Рендерер вставляет их перед всем остальным контекстом. |
| Регистрация/обновление или поиск агента в реестре мультиагентов (#684): идентификатор + уровень доверия (0-3) + флот. Уровень доверия ограничивает чувствительные операции (например, создание ключевых камней требует уровня ≥ 2) и управляет контролем видимости при извлечении. |
Хранилище и Федерация
Инструмент | Описание |
| Экспорт сущностей в .md файлы с YAML frontmatter. |
| Импорт из .md директории хранилища (идемпотентный). |
| Копирование сущностей между рабочими пространствами. Это локальный экспорт / переименование рабочего пространства / повторный импорт (на основе файлов, без сетевых пиров); путь по умолчанию, безопасный для Windows, отслеживается в #704. |
| Поделиться одной сущностью (по категории + ключу) в другое рабочее пространство, сохраняя содержимое. |
| Список всех различных категорий сущностей. |
Метрики и операции
Инструмент | Описание |
| Полная статистика БД по всем таблицам. |
| Проверка работоспособности сервера и БД. |
| Отслеживание бенчмарков производительности. |
| Обслуживание БД: дедупликация, обнаружение сирот, VACUUM, переиндексация FTS5 (поддерживает пробный запуск). |
| Синтез сессий LLM — извлечение уроков из транскриптов. |
| Миграция БД v0.1.x на текущую схему. |
Инструменты по задачам (шпаргалка агента)
Не перечисление категорий — а перечисление задач. Выберите строку в соответствии с тем, что пытается сделать агент:
Задача | Инструменты |
Запомнить долговечный факт / решение / исправление |
|
Вспомнить перед планированием |
|
Реконструировать историю разработки (цепочка намерений, следующая работа) |
|
Решения: замена и полномочия |
|
Спросить "во что мы тогда верили?" |
|
Исправить запись / выявить противоречия |
|
Политика, переживающая уплотнение |
|
Операции, доверие и область видимости |
|
CLI
# Server
perseus-vault serve --db /data/perseus-vault.db
perseus-vault serve --web --port 8767 --encryption-key ~/.perseus-vault/secret.key
perseus-vault serve --llm-endpoint http://localhost:11434/api/generate --llm-model llama3
perseus-vault serve --transport sse --port 8787 --mcp-token my-secret-token
# Maintenance (operate directly on DB, no server needed)
perseus-vault stats --db /data/perseus-vault.db
perseus-vault forget --db /data/perseus-vault.db --category decision --key stale-choice --reason "superseded"
perseus-vault prune --db /data/perseus-vault.db --category junk --min-decay 0.1 --dry-run
perseus-vault purge --db /data/perseus-vault.db --dry-run
perseus-vault decay --db /data/perseus-vault.db
perseus-vault reindex --db /data/perseus-vault.db
perseus-vault vault-export --db /data/perseus-vault.db --vault-dir ./export/
perseus-vault vault-import --db /data/perseus-vault.db --vault-dir ./export/
perseus-vault obsidian-sync ~/obsidian-vault/Perseus Vault/ # one-shot export to an Obsidian vault
perseus-vault obsidian-sync ~/obsidian-vault/Perseus Vault/ --watch # continuous sync on every memory change
# Key management
perseus-vault keygen --key-file ~/.perseus-vault/secret.key
# #918: read-only TUI inspector (retrieval telemetry, claim cards, entity
# state, decay, bi-temporal history). Never writes; repairs go through the
# governed MCP tools. Requires the default `tui` feature.
perseus-vault inspect --db /data/perseus-vault.db --key-file ~/.perseus-vault/secret.keyЖивые обновления без перезапуска сессии
perseus-vault serve обнаруживает, когда его собственный бинарный файл заменяется на диске
в середине сессии (обычный процесс cargo build / переустановки) и отказывается обслуживать
результаты из устаревшего образа процесса — каждый инструмент отвечает громкой, явной
ошибкой вместо деградации до пустых результатов (#858, #1045). Два пути
восстановления, оба по тому же stdio-соединению (без перезапуска клиента):
Явный: вызовите
perseus_vault_handoff_restart {"confirm": true}— процесс горячо заменяется на новый бинарный файл, и сессия продолжается без проблем, с сохранением состояния сессии MCP (инициализация + идентичность агента).Автоматический (опциональный): запустите сервер с
PERSEUS_VAULT_AUTO_HANDOFF=1, и замена происходит прозрачно при следующем вызове инструмента, на который новый бинарный файл отвечает напрямую.
На macOS/Linux замена — это настоящий exec (тот же PID, те же каналы). Windows
блокирует запущенный исполняемый файл, поэтому замена в середине сессии там невозможна;
обновляйте между сессиями. Полный контракт и рабочий процесс локальной разработки:
docs/specs/live-update-handoff.md.
Ручные правки БД. Глаголы обслуживания выше и обычный путь записи MCP автоматически синхронизируют индекс FTS5. Редактирование таблицы
entitiesнапрямую с помощьюsqlite3(ручнойDELETE/UPDATE) обходит эту синхронизацию и может оставить осиротевшие строки индекса — "призрачные" попадания при поиске для контента, которого уже нет. После любого прямого SQL-редактирования запуститеperseus-vault maintain --db <путь>(илиperseus-vault reindex), чтобы согласовать FTS-индекс.
Флаги
Флаг | Описание |
| Путь к базе данных SQLite (по умолчанию: |
| Запустить веб-панель |
| Порт панели (по умолчанию: 8767) |
| Адрес привязки панели (по умолчанию: 127.0.0.1) |
| Транспорт MCP: |
| Bearer-токен для аутентификации транспорта SSE/HTTP |
| Путь к файлу ключа AES-256-GCM |
| Конечная точка API LLM для |
| Имя модели LLM (по умолчанию: llama3) |
| Ключ API для конечных точек LLM (OpenAI, Azure и т.д.) |
| Конечная точка эмбеддингов, совместимая с OpenAI |
| Путь к connectors.yaml |
Расположение базы данных
Канонический путь к базе данных:
~/.perseus-vault/data/perseus-vault.dbВсегда передавайте --db (или устанавливайте $PERSEUS_VAULT_DB_PATH) в скриптах, конфигурациях MCP-хоста и
заданиях cron/harvest, чтобы каждый вызов указывал на один и тот же файл. Если не задано ни то, ни другое,
Perseus Vault разрешает путь по умолчанию в следующем порядке и использует первый, который уже существует
(чтобы пользователи, выполняющие обновление, и устаревшие однопользовательские установки были подхвачены
вместо того, чтобы молча начинать с пустой БД):
~/.perseus-vault/data/perseus-vault.db— канонический (текущее имя)~/.perseus-vault/data/perseus-vault.db— до переименования~/.perseus-vault/data/perseus-vault.db— до переименования~/perseus-vault.db— устаревшее расположение однопользовательской установки
Если ни одного не существует, он создает ~/.perseus-vault/data/perseus-vault.db. Если более одного
из них существует, и вы не передали --db/$PERSEUS_VAULT_DB_PATH, Perseus Vault
выводит предупреждение в stderr с именем выбранного файла и других, которые он проигнорировал, чтобы
неоднозначное состояние с несколькими базами данных было видимым, а не молчаливым. Явная установка --db или
$PERSEUS_VAULT_DB_PATH всегда имеет приоритет и подавляет предупреждение.
Ваша AI-память в Obsidian
Perseus Vault — это долговременная память вашего AI-агента — и она также служит вашим вторым мозгом. Каждая сущность, которую запоминает ваш агент, экспортируется в простую заметку Markdown с YAML frontmatter, так что память вашего AI становится навигационной базой личных знаний внутри инструментов, которые вы уже используете: Obsidian, Logseq или Notion.
# Export your entire memory to an Obsidian vault as linked Markdown notes
perseus-vault obsidian-sync ~/obsidian-vault/Perseus Vault/
# Keep it live — re-export automatically on every memory change
perseus-vault obsidian-sync ~/obsidian-vault/Perseus Vault/ --watchОткройте хранилище в Obsidian, и вы получите граф знаний вашего агента.
Обратные ссылки WikiLink. Когда одна сущность ссылается на другую (через perseus_vault_link или
отношение depends_on / implements / references), экспортированная заметка получает
раздел ## Links с обратными ссылками [[WikiLink]], которые нативно разрешаются
в представлении графа Obsidian:
---
id: cli-de8dfb8364b6
category: architecture
key: api
type: insight
decay_score: 0.5000
---
{"content":"axum service"}
## Links
- [[cli-99756b494c7d|database]] (depends_on)Ссылки разрешаются по идентификатору сущности (заметки записываются как <id>.md), поэтому они никогда
не ломаются, и Obsidian показывает читаемый человеком key в качестве метки ссылки. Откройте
представление графа, и архитектура вашего агента, решения и инсайты станут
интерактивной картой знаний.
--watch опрашивает дешевый, детерминированный дайджест состояния Perseus Vault с интервалом и
повторно экспортирует только тогда, когда память действительно изменилась. Он естественным образом перехватывает
каждую запись perseus_vault_remember без зависимости от файлового наблюдателя и без привязки к
серверу. Настройте интервал с помощью PERSEUS_VAULT_SYNC_INTERVAL_SECS (по умолчанию: 2с).
Другие инструменты PKM
Инструмент | Как |
Obsidian |
|
Logseq | Укажите |
Notion | Запустите |
В отличие от облачных инструментов "второго мозга", Perseus Vault работает на 100% локально, написан на Rust, шифрует в состоянии покоя с помощью AES-256-GCM и применяет оценку устаревания, так что устаревшие воспоминания исчезают — ваша база знаний остается вашей и остается свежей.
Возможности
Семантический поиск (включен по умолчанию)
Встроенные внутрипроцессные эмбеддинги — квантованная модель all-MiniLM-L6-v2 (384-мерная) скомпилирована в бинарный файл, поэтому плотный/семантический поиск работает без настройки и без сети: не нужен Ollama, API-ключ или загрузка модели. Это сборка по умолчанию (функция
bundled-embeddings).Автоматическое встраивание при записи (#271) —
perseus_vault_rememberвстраивает каждую новую (или изменённую по содержимому) сущность синхронно при записи, используя встроенную модель. Встраивание одной сущности детерминировано и кэшируется по LRU, поэтому оно дёшево и не добавляет фоновых задач. Сбои встраивания не являются фатальными (логируются в stderr); запись всегда выполняется успешно.Гибридный режим по умолчанию (#271) —
perseus_vault_recall(query=...)без флагаmodeавтоматически выбирает гибридный (плотный + ключевой, объединённый через RRF) при наличии эмбеддингов и прозрачно переключается на ключевой поиск fts5, если их нет. Никакого ручного шагаperseus_vault_embed, никаких флагов для запоминания.perseus_vault_semantic_search(query, limit)— сокращение одним инструментом для чистого плотного поиска по смыслу (без запасного ключевого варианта), когда нужно просто «найти похожее».Опциональный альтернативный встраиватель — чтобы использовать Ollama или любой совместимый с OpenAI эндпоинт
/v1/embeddingsвместо встроенной модели, укажите--llm-endpoint(и при необходимости--embedding-endpoint/--llm-api-key). Это полностью опционально; по умолчанию используется встроенная модель.Соберите лёгкий бинарный файл без встроенных эмбеддингов с помощью
cargo build --no-default-features— тогда поиск по умолчанию будет ключевым, если не настроен удалённый встраиватель.
Внутреннее устройство гибридного поиска
Ключевой поиск FTS5 с запасным вариантом LIKE и расширением стеммингом Портера
Плотный векторный поиск через косинусное сходство по сохранённым эмбеддингам
Reciprocal Rank Fusion (RRF) — объединение результатов ключевого и векторного поиска
Расширение запроса — автоматические варианты стемминга для более широкого поиска
Жизненный цикл памяти
Perseus Vault моделирует память с помощью трёх биомиметических слоёв, вдохновлённых путями человеческой памяти:
Мир (Ядро): Медленно затухающие, глобальные факты об окружении.
Эпизодический (Буфер): Быстро затухающая история взаимодействий, специфичная для сессии.
Семантический (Рабочий): Средне затухающие, общие знания и изученные концепции.
Вы можете напрямую взаимодействовать с этими слоями с помощью инструмента perseus_vault_recall_layer или указав параметр layer в perseus_vault_remember.
Забывание по Эббингаузу — воспоминания естественным образом исчезают, если их не извлекать (обновление при доступе)
Повышение слоя — буфер → рабочий → ядро на основе частоты доступа
Автоматическое архивирование — устаревшие сущности архивируются; очистка для окончательного удаления + VACUUM
Постоянно активные сущности — закрепление критически важных для идентичности воспоминаний для внедрения в сессию (жёсткое ограничение при приоритете извлечения; предпочтительнее триггеры
recall_when)Проспективные подсказки запросов (#919) — опциональные 1–3 формулировки на естественном языке для каждой сущности (
hintsвperseus_vault_remember), которые индексируются в FTS5 вместе с телом, устраняя разрывы в словаре между запросами на простом языке и сохранёнными формулировками. Отключено по умолчанию (PERSEUS_VAULT_HINTS_ENABLED=1); отклоняется, пока не включено. См. docs/specs/prospective-query-hints.md.
Внедрение контекста с приоритетом извлечения
Хранилище — это слой запросов: оно извлекает несколько фактов, необходимых для текущего шага, вместо того чтобы передавать хосту постоянный блок для вставки в каждый системный промпт. perseus_vault_context и perseus-vault prepare по умолчанию работают с приоритетом извлечения:
Фильтрация по релевантности — передаётся
query(текущая задача/сообщение), и внедряются только те сущности, чьи триггерыrecall_whenили индексированное содержимое совпадают с ним. Нет запроса — нет тематического внедрения: блок представляет собой компактный указатель для извлечения, стабильный по байтам при несвязанных записях в хранилище (дружественный к префиксному кэшу).Бюджет извлечения для каждой модели — вывод ограничивается символьным бюджетом, определённым из модели хоста: профиль по умолчанию/лёгкий — 1500 символов; профиль с большим окном («opus») — 6000 символов;
max_context_charsпереопределяет оба.Ограниченное постоянное включение —
always_on: trueпо-прежнему работает для критически важных для идентичности фактов, но набор с приоритетом извлечения имеет жёсткое ограничение (первые 5), а при переполнении выдаётся предупреждение, направляющее вас к триггерамrecall_when.Устаревший вариант — старый безусловный дамп первых N записей по-прежнему доступен с
mode: "always_inject"(--legacy-contextдляprepare), без ограничений, если не передан бюджет.
perseus-vault prepare --task "deploying the payments service" --model claude-sonnet-4-6
perseus-vault prepare --task "..." --max-context-chars 800 # explicit budget
perseus-vault prepare --task "..." --legacy-context # old dump, opt-inRAG и эмбеддинги
perseus_vault_ask— вопросы и ответы на естественном языке по сохранённым воспоминаниям через любую LLM (Ollama, OpenAI и т.д.)perseus_vault_embed— генерация и сохранение плотных векторов через Ollama или совместимый с OpenAI эндпоинт/v1/embeddingsПоддерживает встраивание одной сущности и пакетное встраивание по категориям
Шифрование
AES-256-GCM прозрачное шифрование для
body_jsonсущностиВключено по умолчанию для новых установок — стандартный ключ автоматически генерируется в
~/.perseus-vault/secret.keyпри первой записиФлаг
--encryption-keyдля явного указания ключей;perseus-vault keygenдля генерации собственного ключаСуществующие базы данных в открытом виде закрываются с путём миграции
init --rekey(или явнымPERSEUS_VAULT_ALLOW_PLAINTEXT=1)Индекс FTS5 остаётся в открытом виде для поиска
Веб-панель управления
Встроенный HTTP-сервер Axum (
perseus-vault serve --web --port 8767)Панель управления в тёмной теме с поиском, таблицей сущностей, графом vis.js, временной шкалой
Привязка по умолчанию:
127.0.0.1(используйте--web-bind 0.0.0.0для открытия доступа)Отдельное подключение SQLite в режиме WAL для параллельного чтения
Внешние коннекторы
Коннектор задач GitHub — импорт задач/PR по репозиториям, с учётом ограничения скорости
Наблюдатель файлов — сканирование каталогов на наличие файлов
.md/.txt/.jsonс дедупликацией по хешу содержимогоКонфигурация коннекторов на основе YAML через
--connectors-config
Мультитранспорт
stdio (по умолчанию) — без настройки, работает с любым MCP-хостом
SSE — Server-Sent Events для HTTP-клиентов MCP
HTTP — REST-подобный эндпоинт MCP
Аутентификация по Bearer-токену — для транспортов SSE/HTTP
Интеграция с Perseus
Perseus Vault — это бэкенд памяти по умолчанию для Perseus:
perseus_vault:
enabled: true
transport: "stdio"
command: ["perseus-vault", "serve", "--db", "~/.perseus-vault/data/perseus-vault.db"]
timeout_s: 30.0
merge_strategy: "local_first"
fallback_to_local: true
context_categories: ["decision", "architecture", "convention"]
context_limit: 10Государственные и федеральные закупки
Perseus Vault создан для государственного развёртывания с нуля.
Возможность | Статус |
Лицензия | MIT — без копилефта, без GPL/AGPL |
SBOM | Опубликован — минимальные элементы NTIA |
Автономность | Полностью офлайн — без телеметрии, без API-вызовов, без сети по умолчанию |
Шифрование в покое | AES-256-GCM для тел, включено по умолчанию для новых установок |
Журнал аудита | Неизменяемый журнал с цепочкой хранения |
Цепочка поставок | Аттестация SLSA в процессе |
Для федеральных покупателей: См. docs/federal-buyers.md для информации о закупках, статусе соответствия и моделях развёртывания (автономные, локальные, закрытые среды).
Perseus Computing LLC — это малый бизнес, принадлежащий США. Регистрация в SAM.gov в процессе. NAICS: 541715, 541511, 541512.
Политика конфиденциальности
Perseus Vault — это локальный MCP-сервер — он полностью работает на вашем компьютере.
Сбор данных
Сбор данных отсутствует. Perseus Vault не собирает, не передаёт и не отправляет домой никакие пользовательские данные, статистику использования или телеметрию.
Все данные остаются в вашем локальном файле базы данных SQLite.
Использование и хранение данных
Все сущности памяти, записи журнала и состояние хранятся локально в базе данных SQLite по пути, указанному через
--db.Доступно опциональное шифрование в покое AES-256-GCM — при включении тела сущностей шифруются перед сохранением.
Никакие данные не передаются Perseus Computing LLC или третьим лицам.
Передача третьим лицам
Отсутствует. Perseus Vault полностью автономен по умолчанию. Никаких API-вызовов, облачных сервисов или внешних сетевых запросов.
Опциональная функция плотных векторных эмбеддингов использует локально скомпилированную модель — никакой внешний API эмбеддингов не вызывается.
Хранение данных
Вы управляете хранением с помощью четырёх различных операций жизненного цикла (см.
docs/specs/data-boundaries-retention-lifecycle.md): мягкое удаление (perseus_vault_forget, содержимое восстанавливаемо), истечение срока (perseus_vault_expire, временноеstatus='expired'с сохранением содержимого), редактирование (perseus_vault_redact, содержимое заменяется только хешем, метаданные сохраняются) и физическое стирание (perseus_vault_erase, удаление из всех производных слоёв с постоянным подавлением повторного импорта).perseus_vault_purgeосвобождает место от архивированных строк.Автоматическое резервное копирование вне машины не выполняется.
Контакты
Email: privacy@perseus.observer
Верификация релизов
Бинарные файлы релизов собираются из помеченных коммитов через GitHub Actions. Каждый релиз включает:
Артефакт | Описание | Верификация |
| Полная сборка (встроенные эмбеддинги, glibc) | Контрольная сумма SHA-256 в файле |
| Лёгкая сборка ( | Контрольная сумма SHA-256 в файле |
Аттестация происхождения SLSA | Происхождение сборки, подписанное Sigstore |
|
Проверка бинарного файла релиза
# 1. Verify SHA-256 checksum
sha256sum -c perseus-vault-lite-x86_64-unknown-linux-musl.tar.gz.sha256
# 2. Verify SLSA build provenance (requires gh CLI + OIDC session)
gh attestation verify perseus-vault-lite-x86_64-unknown-linux-musl.tar.gz \
--repo Perseus-Computing-LLC/perseus-vault
# 3. Confirm the binary identity
./perseus-vault --version
# Should show both the release version AND the git commit hash, e.g.:
# perseus-vault 2.20.2 (v2.20.2-0-gabcdef1)
# 4. Confirm the doctor reports the same identity
./perseus-vault doctor --db /tmp/test.db | head -1
# perseus-vault doctor — v2.20.2 (v2.20.2-0-gabcdef1)Воспроизводимая сборка из исходников
# The exact same binary (bit-for-bit) requires matching:
# - Rust toolchain version (see rust-toolchain.toml)
# - Locked dependencies: `cargo build --locked`
# - Build flags: `--release` for release builds
cargo build --locked --release
./target/release/perseus-vault --versionЛицензия
MIT — см. LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
FlicenseAqualityBmaintenanceSelf-hosted MCP-native agent memory server. Gives AI agents persistent, decay-weighted memory via 83 MCP tools — no cloud, full control. RocksDB+HNSW backend. Works with Claude Code, Cursor, and any MCP-compatible agent.148- AlicenseNot gradedqualityBmaintenanceAn MCP-native, local-first memory server that gives AI agents persistent, structured memory across sessions and tools, enabling them to maintain identity and context without reconfiguration.3MIT
- AlicenseNot gradedqualityCmaintenancePersistent memory for AI coding agents. Enables agents to save and recall decisions, patterns, bugs, and context across sessions via an MCP server with local SQLite storage.452MIT
- AlicenseNot gradedqualityAmaintenanceMCP server providing persistent AI memory with four-tier retrieval (SQLite FTS5, graph, vector, LLM agent) to give AI assistants structured, long-term memory without RAG.1Apache 2.0
Related MCP Connectors
Persistent memory for AI agents — verbatim conversations, searchable by meaning.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Perseus-Computing-LLC/perseus-vault'
If you have feedback or need assistance with the MCP directory API, please join our Discord server