Skip to main content
Glama

Perseus Vault

Постоянная зашифрованная память для AI-агентов. Один Rust-бинарник, один файл, никакого облака.

Build and Test License: MIT Release Glama MCP Marketplace LangGraph CrewAI AutoGen

Опубликован в 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 doctor

perseus-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_desktop_config.json

Claude Code / Hermes

.mcp.json / config.yaml

Cursor

.cursor/mcp.json

Windsurf

mcp_config.json

VS Code + Continue.dev

config.json

Zed

settings.json

Codex CLI

~/.codex/config.toml

Фрагменты конфигурации копипастой для каждого: 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 (valid_at)

"что было истинно в мире в момент T"

10

10

transaction-time (as_of)

"во что мы верили в момент T"

1

1

bi-temporal (bitemporal)

"согласно мнению на момент 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-агентов:

Фреймворк

Интеграция

Тип

LangGraph

PerseusVaultStore

реализация BaseStore

CrewAI

PerseusVaultMemoryTool

инструмент агента

AutoGen

PerseusVaultMemory

реализация Memory

Каждый адаптер:

  • Подключается через подпроцесс 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 (устаревшая env PERSEUS_VAULT_TOOL_ALIASES также учитывается; PERSEUS_VAULT_ имеет приоритет).

Совместимость клиентов (#633). Клиенты, которые проверяют рекламируемый список — они проверяют tools/list перед вызовом и пропускают инструменты, которых не видят — будут молча пропускать устаревшие вызовы perseus_vault_* к хранилищу версии 2.x, хотя сам вызов был бы успешным. Известный случай: CLI perseus ≤ 1.0.22 жёстко кодирует perseus_vault_recall и деградирует до пустого локального извлечения. Исправление с любой стороны: обновите CLI до ≥ 1.0.23 (вызывает канонические имена с динамическим запасным вариантом) или установите PERSEUS_VAULT_TOOL_ALIASES=all на хранилище в качестве моста, пока старые клиенты остаются развёрнутыми.

Области инструментов (уровни рекламы, #1051)

По умолчанию tools/list рекламирует все канонические инструменты. Установите PERSEUS_VAULT_TOOL_SCOPE, чтобы сузить рекламируемую поверхность для клиентов-агентов, ограниченных по токенам и вниманию:

Настройка

Рекламируемая поверхность

Количество

full (по умолчанию)

всё

150

ops

поверхность агента + операционная чистка, обслуживание, управление, экспорт

140

agent

повседневная память + поверхность координации (извлечение/запоминание/контекст/передачи/состояние, плюс вызовы 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 сущностей

Инструмент

Описание

perseus_vault_remember

Сохранить/обновить сущность. Идемпотентна по (category, key); изменение содержимого сохраняет снимок предыдущей версии в историю.

perseus_vault_recall

Поиск в режимах FTS5/dense/hybrid, фильтры, расширение по стеммингу. Контракт запроса (#562): query="" — перечисление всех записей (путь «список всех»); "*" и другие подстановочные знаки являются литеральными терминами FTS5, не глобами — "*" ничего не находит.

perseus_vault_scan

Детерминированное постраничное перечисление категории или всего хранилища (#562): неизменяемые страницы keyset с id ASC и контрактом next_cursor/has_more, благодаря чему вызывающие export/sync/reset могут обойти каждую сущность ровно один раз. Только чтение — без побочных эффектов подсчёта обращений/затухания, без ограничения по offset.

perseus_vault_hygiene

Отчёт по гигиене стартовой памяти только для чтения (#675): оценивает активные воспоминания по «применимости» (конкретные якоря — ключи issue, #refs, пути, URL, решения — против расплывчатых/только с датой/коротких) и перечисляет худших нарушителей с причинами для курирования архивации/консолидации.

perseus_vault_recall_layer

Извлечение из конкретного биомиметического слоя (world, episodic, semantic).

perseus_vault_recall_when

Проактивное извлечение точно вовремя: показывать сущности, у которых срабатывают триггеры recall_when.

perseus_vault_get_entity

Получить одну сущность по ID с полным body_json.

perseus_vault_as_of

Транзакционное путешествие во времени: версия факта (category + key), которая считалась верной в прошлый момент времени.

perseus_vault_valid_at

Поиск по времени действия: версия, которая фактически была истинной в мире в момент времени, согласно текущим знаниям (SQL:2011 APPLICATION_TIME).

perseus_vault_bitemporal

Полный двуосевой битемпоральный запрос: «по состоянию на транзакционное время T, что мы считали истинным в действительное время V» — точная ячейка прямоугольника.

perseus_vault_history

Список заменённых версий факта (category + key), сначала новые — постранично (limit по умолчанию 20, плюс offset); total сообщает полный размер истории (дополнение к perseus_vault_as_of).

perseus_vault_forget

Мягкое удаление (archived=1).

Поиск и RAG

Инструмент

Описание

perseus_vault_ask

RAG: извлечь контекст, запросить LLM, вернуть обоснованный ответ с источниками.

perseus_vault_embed

Генерировать плотные векторы с помощью встроенной модели, Ollama или endpoint, совместимого с OpenAI.

perseus_vault_semantic_search

Ярлык семантического поиска только по плотным векторам — находить сущности по смыслу, ранжированные исключительно по схожести эмбеддингов (без запасного поиска по ключевым словам).

perseus_vault_context

Предварительно отформатированный markdown-блок для инъекции в сессию. По умолчанию сначала извлечение: передайте query (текущую задачу/сообщение), и будут внедрены только тематически релевантные сущности, ограниченные бюджетом на модель; прежняя безусловная выгрузка требует mode: "always_inject".

perseus_vault_ingest

Запускать синхронизацию коннекторов (GitHub, file watcher); неизменённое содержимое пропускается через повторное воспроизведение контейнеров (#1050).

perseus_vault_span_audit

Сеть потерь при извлечении (#1048): сохранять предложения, пропущенные экстрактором, как остаточные spans, дословно с указанием происхождения.

perseus_vault_report_refusal

Сеть потерь при извлечении (#1048): отказ как сигнал — заново оценивать spans относительно запроса, возвращать полезную нагрузку для повторной попытки, помечать потерянные единицы.

perseus_vault_report_success

Сеть потерь при извлечении (#1048): подтвердить повторную попытку — прикрепить предварительный ключ запроса, чтобы идентичный повторный запрос использовал первый проход.

perseus_vault_ingest_file

Локально извлекать текст документа (plaintext/markdown всегда; DOCX/PDF с функцией multimodal) и сохранять его как сущность, доступную для извлечения.

perseus_vault_extract

Локальное, детерминированное, основанное на правилах извлечение знаний (факты / предпочтения / временные события / эпизоды) из текста или сохранённой сущности. Только чтение.

perseus_vault_capture

Опциональный захват в рамках сессии (#520): извлекать из полезной нагрузки транскрипта/инсайта (текст, markdown или JSONL) долговечные сущности (root-cause / pitfall / decision / pattern / takeaway) в момент решения проблемы. По умолчанию локальный дистиллятор на основе правил, опционально llm: true с корректным откатом; объединение почти дубликатов остаётся включённым, плюс лимит на один вызов (анти-флуд). Также CLI-команда: perseus-vault capture.

perseus_vault_memories

Файловый интерфейс, совместимый с memory-tool Anthropic (view/create/str_replace/insert/delete/rename в /memories), на основе сущностей хранилища.

📖 docs/retrieval-modes.md — единый перечисленный справочник для каждого режима поиска (keyword · dense · hybrid · graph · GraphRAG · проактивный recall_when · темпоральный as_of): механизм, когда использовать, вызов и примеры.

Граф

Инструмент

Описание

perseus_vault_link

Создание типизированных реляционных связей между сущностями.

perseus_vault_unlink

Удаление связей сущностей.

perseus_vault_traverse

Обход графа связей сущностей до настраиваемой глубины.

perseus_vault_communities

Обнаружение сообществ GraphRAG по графу связей (детерминированная маркировка распространения или жадная модульная «лувенская»; чистый Rust, офлайн).

perseus_vault_community_summary

Экстрактивное (опционально доработанное LLM) резюме одного сообщества, материализованное как сущность со связями evidence_for с участниками.

perseus_vault_global_recall

Глобальный поиск GraphRAG: обзор по сводкам сообществ, затем углубление в участников лучших сообществ — целостные ответы по кластерам.

perseus_vault_graph_drift

Отчет о расхождениях графа/сущностей/индексов/квитанций только для чтения (#869): неподтвержденные, висячие, заархивированные/с истекшим сроком действия и межрабочие ребра, устаревшие членства в сообществах, расхождения FTS, ссылки журнала на отсутствующие сущности.

perseus_vault_graph_attest

Простановка идентификатора сущности с исходной стороны как якоря подтверждения на устаревших ребрах, чтобы они стали доступны для механизмов извлечения графа (#869); предварительный просмотр в режиме dry-run, с журналированием.

Журнал

Инструмент

Описание

perseus_vault_journal

Добавление структурированного события с указанием автора.

perseus_vault_check_failure_pattern

Защита от повторения ошибок: проверка действия на предмет ранее зафиксированных сбоев (журнал + сущности сбоев/ловушек) перед повторной попыткой. Только чтение.

perseus_vault_timeline

Запрос журнала по временному диапазону с фильтрами.

Состояние

Инструмент

Описание

perseus_vault_state_set

Установка состояния ключ-значение с опциональным TTL.

perseus_vault_state_get

Получение значения состояния. Возвращает null, если истекло.

perseus_vault_state_delete

Удаление записи состояния.

perseus_vault_state_list

Список ключей состояния, опционально отфильтрованных по префиксу.

Жизненный цикл

Инструмент

Описание

perseus_vault_decay

Пересчет оценок затухания по кривой Эббингауза (пакетные транзакции по 1000 сущностей).

perseus_vault_prune

Массовое архивирование по категории, порогу затухания или возрасту.

perseus_vault_purge

Безвозвратное удаление заархивированных сущностей + VACUUM. Разрушительная операция.

perseus_vault_expire

Очистка жизненного цикла по времени: сущности, у которых expires_at в теле наступило, переводятся в статус 'expired' (содержимое сохраняется, поддерживается dry-run).

perseus_vault_redact

Редактирование содержимого: замена тела сущности в рамках рабочего пространства на маркер только с хешем, удаление истории + текста FTS, сохранение метаданных (повторная загрузка разрешена). Требует явного workspace_hash.

perseus_vault_erase

Физическое удаление сущности в рамках рабочего пространства из ВСЕХ производных слоев (FTS, история, сообщества, связи, журнал) + постоянное подавление повторной загрузки. Требует явного workspace_hash; поддерживается dry-run.

perseus_vault_cohere

Автономный проход по приведению к согласованности — продвижение, затухание, связывание, архивирование.

perseus_vault_autocohere

Полная атомарная обработка: согласование → затухание → уплотнение за один проход (поддерживает dry-run).

perseus_vault_compact

Архивирование сущностей ниже порога затухания.

perseus_vault_reindex

Перестроение поискового индекса FTS5 из таблицы сущностей.

perseus_vault_consolidate

Объединение перекрывающихся/дублирующихся сущностей в категории в устойчивые наблюдения с отслеживанием доказательств (зеркальное отражение perseus_vault_conflicts).

perseus_vault_dream

Консолидация LLM в режиме сна: анализ кластеров связанных эпизодических воспоминаний через настроенную LLM и запись устойчивых семантических выводов с привязкой к каждому источнику. Идемпотентность (хеш набора доказательств), учет противоречий, ограниченность; требуется --llm-endpoint.

Качество

Инструмент

Описание

perseus_vault_score

Назначение оценки качества (0.0-1.0).

perseus_vault_conflicts

Обнаружение конфликтующих сущностей через триграммное сходство; опциональный resolve=true переводит сторону с меньшей достоверностью в историю (обратимо, по умолчанию dry-run).

perseus_vault_correct

Фиксация структурированных исправлений для обучения на ошибках.

perseus_vault_supersede

Отметка нового факта как заменяющего старый (устанавливает старой сущности статус deprecated).

perseus_vault_follow

Запись, была ли сущность фактически ВЫПОЛНЕНА или ПРОПУЩЕНА — сигнал эффективности отслеживания, который влияет как на оценку затухания, так и на ранжирование извлечения с учетом результатов (#681).

Ключевые камни (правила политики)

Инструтор

Описание

perseus_vault_keystone_set

Создание Ключевого камня — обязательного правила политики, которое сохраняется при уплотнении контекста (#683). Область действия (арендатор/флот/агент), ранжирование по весу, крипто-цепочка при каждом изменении; создание ограничено уровнем доверия.

perseus_vault_keystone_get

Получение объединенных Ключевых камней для области, отсортированных по весу (сначала наибольший), затем по специфичности области — детерминированный аналог извлечения для начала сессии. Рендерер вставляет их перед всем остальным контекстом.

perseus_vault_agent

Регистрация/обновление или поиск агента в реестре мультиагентов (#684): идентификатор + уровень доверия (0-3) + флот. Уровень доверия ограничивает чувствительные операции (например, создание ключевых камней требует уровня ≥ 2) и управляет контролем видимости при извлечении.

Хранилище и Федерация

Инструмент

Описание

perseus_vault_vault_export

Экспорт сущностей в .md файлы с YAML frontmatter.

perseus_vault_vault_import

Импорт из .md директории хранилища (идемпотентный).

perseus_vault_federate

Копирование сущностей между рабочими пространствами. Это локальный экспорт / переименование рабочего пространства / повторный импорт (на основе файлов, без сетевых пиров); путь по умолчанию, безопасный для Windows, отслеживается в #704.

perseus_vault_share

Поделиться одной сущностью (по категории + ключу) в другое рабочее пространство, сохраняя содержимое.

perseus_vault_workspace_list

Список всех различных категорий сущностей.

Метрики и операции

Инструмент

Описание

perseus_vault_stats

Полная статистика БД по всем таблицам.

perseus_vault_health

Проверка работоспособности сервера и БД.

perseus_vault_bench

Отслеживание бенчмарков производительности.

perseus_vault_maintenance

Обслуживание БД: дедупликация, обнаружение сирот, VACUUM, переиндексация FTS5 (поддерживает пробный запуск).

perseus_vault_synthesize

Синтез сессий LLM — извлечение уроков из транскриптов.

perseus_vault_migrate

Миграция БД v0.1.x на текущую схему.

Инструменты по задачам (шпаргалка агента)

Не перечисление категорий — а перечисление задач. Выберите строку в соответствии с тем, что пытается сделать агент:

Задача

Инструменты

Запомнить долговечный факт / решение / исправление

remember, capture, journal, correct

Вспомнить перед планированием

recall, recall_batch, recall_when, context, ask

Реконструировать историю разработки (цепочка намерений, следующая работа)

handoff_packinclude_intent_trail / include_next_work), delegation_brief, timeline, traverse

Решения: замена и полномочия

supersede, history, authority_get, action_receipt_get, keystone_get

Спросить "во что мы тогда верили?"

as_of, valid_at, bitemporal, history

Исправить запись / выявить противоречия

correct, supersede, conflicts, reject_value

Политика, переживающая уплотнение

keystone_get, keystone_set

Операции, доверие и область видимости

health, stats, agent, workspace_status, doctor (CLI)

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-индекс.

Флаги

Флаг

Описание

--db

Путь к базе данных SQLite (по умолчанию: ~/.perseus-vault/data/perseus-vault.db)

--web

Запустить веб-панель

--port

Порт панели (по умолчанию: 8767)

--web-bind

Адрес привязки панели (по умолчанию: 127.0.0.1)

--transport

Транспорт MCP: stdio (по умолчанию), sse или http

--mcp-token

Bearer-токен для аутентификации транспорта SSE/HTTP

--encryption-key

Путь к файлу ключа AES-256-GCM

--llm-endpoint

Конечная точка API LLM для perseus_vault_ask и эмбеддингов

--llm-model

Имя модели LLM (по умолчанию: llama3)

--llm-api-key

Ключ API для конечных точек LLM (OpenAI, Azure и т.д.)

--embedding-endpoint

Конечная точка эмбеддингов, совместимая с OpenAI

--connectors-config

Путь к connectors.yaml

Расположение базы данных

Канонический путь к базе данных:

~/.perseus-vault/data/perseus-vault.db

Всегда передавайте --db (или устанавливайте $PERSEUS_VAULT_DB_PATH) в скриптах, конфигурациях MCP-хоста и заданиях cron/harvest, чтобы каждый вызов указывал на один и тот же файл. Если не задано ни то, ни другое, Perseus Vault разрешает путь по умолчанию в следующем порядке и использует первый, который уже существует (чтобы пользователи, выполняющие обновление, и устаревшие однопользовательские установки были подхвачены вместо того, чтобы молча начинать с пустой БД):

  1. ~/.perseus-vault/data/perseus-vault.db — канонический (текущее имя)

  2. ~/.perseus-vault/data/perseus-vault.db — до переименования

  3. ~/.perseus-vault/data/perseus-vault.db — до переименования

  4. ~/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

perseus-vault obsidian-sync <хранилище> — WikiLinks разрешаются в представлении графа из коробки.

Logseq

Укажите obsidian-sync на директорию графа Logseq. Logseq читает тот же синтаксис [[WikiLink]] и Markdown frontmatter.

Notion

Запустите perseus-vault vault-export, затем используйте Импорт → Markdown & CSV в 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-in

RAG и эмбеддинги

  • 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 освобождает место от архивированных строк.

  • Автоматическое резервное копирование вне машины не выполняется.

Контакты

Верификация релизов

Бинарные файлы релизов собираются из помеченных коммитов через GitHub Actions. Каждый релиз включает:

Артефакт

Описание

Верификация

perseus-vault-<target>.tar.gz

Полная сборка (встроенные эмбеддинги, glibc)

Контрольная сумма SHA-256 в файле .sha256

perseus-vault-lite-<target>.tar.gz

Лёгкая сборка (--no-default-features, musl/static)

Контрольная сумма SHA-256 в файле .sha256

Аттестация происхождения SLSA

Происхождение сборки, подписанное Sigstore

gh attestation verify <archive> --repo Perseus-Computing-LLC/perseus-vault

Проверка бинарного файла релиза

# 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.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
2hResponse time
1dRelease cycle
39Releases (12mo)
Commit activity
Issues opened vs closed

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

  • F
    license
    A
    quality
    B
    maintenance
    Self-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.
    14
    8
  • A
    license
    Not graded
    quality
    B
    maintenance
    An 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.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Persistent 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.
    45
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP 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.
    1
    Apache 2.0

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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