Perseus Vault 实战:给 Claude Code 装一个持久的加密记忆库,让 Agent 不再”每次重新认识项目”
你有没有遇到过这种情况:Claude Code 刚帮你分析完代码结构,重启会话后它又问你”项目是什么框架的”?或者 Codex 之前记住了一个关键配置,下次运行又得重新解释一遍?
AI 编码 Agent 没有持久记忆——这是它们最大的痛点之一。每次新会话都是一张白纸,之前积累的上下文、用户偏好、项目决策全部丢失。
Perseus Vault 就是来解决这个问题的。它是一个轻量级的本地加密记忆引擎,用 Rust 编写,通过 MCP(Model Context Protocol)为 AI 编码 Agent 提供持久的、可搜索的记忆存储。一个二进制文件,一个 SQLite 数据库文件,无需 Docker,无需云服务,开箱即用。
一句话感受 Perseus Vault
curl -sSf https://raw.githubusercontent.com/Perseus-Computing-LLC/perseus-vault/main/scripts/install.sh | sh perseus-vault serve --db ~/.mimir/data/perseus-vault.db & perseus-vault install-client --hooks --rules --all-detected
三行命令,你的 Claude Code、Codex 和 Cursor 就共享同一个持久记忆库了。以后每次会话开始时,Agent 自动从记忆库中召回相关上下文,结束时会话中的新知识自动保存。
为什么需要专门的记忆引擎?
你可能在想:让 Agent 把笔记写到文件里不就行了?问题在于:
- 缺乏结构化:纯文本笔记难以快速检索关键信息
- 没有语义搜索:Agent 不知道”上次处理的那个用户认证问题”对应的是哪个文件
- 加密缺失:项目配置、API 密钥等敏感信息不该明文存储
- 跨会话共享:不同 Agent(Claude Code、Codex)之间无法共享上下文
Perseus Vault 的混合召回(BM25 全文搜索 + 稠密语义向量 + RRF 融合排序)解决了这些问题。在 LongMemEval 基准测试中达到了 73.8% 的准确率(对比 Zep 的 63.8% 和 Mem0 的 49.0%)。
安装与启动
安装只需要一条命令:
curl -sSf https://raw.githubusercontent.com/Perseus-Computing-LLC/perseus-vault/main/scripts/install.sh | sh
安装后,perseus-vault 被放置到 ~/.local/bin/。启动服务:
perseus-vault serve --db ~/.mimir/data/perseus-vault.db
这会在 stdio 模式下启动 MCP 服务端。如果你想通过 HTTP 访问(或配合 Web 界面),添加 --web --port 8767:
perseus-vault serve --db ~/.mimir/data/perseus-vault.db --web --port 8767
与 Claude Code / Codex / Cursor 集成
一键集成所有已检测到的 Agent:
perseus-vault install-client --hooks --rules --all-detected
这条命令会:
- 自动检测已安装的 Claude Code、Codex、Cursor
- 将 MCP 服务注册写入各 Agent 的配置文件中(不会覆盖已有配置,会生成
.bak-perseus备份) - 注册会话生命周期钩子(会话开始时自动召回记忆,结束时自动保存)
- 将记忆使用规则追加到
CLAUDE.md或AGENTS.md
如果你只想集成某个特定的 Agent:
perseus-vault install-client --client claude-code --hooks --rules
也可以通过标准 MCP 配置手动连接:
{
"mcpServers": {
"perseus-vault": {
"command": "perseus-vault",
"args": ["serve", "--db", "~/.mimir/data/perseus-vault.db"]
}
}
}
核心操作:记和查
Perseus Vault 提供 55+ 个 MCP 工具,最核心的是这两个:
记记忆:mimir_remember
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"mimir_remember","arguments":{"category":"project_config","key":"framework","body_json":"{\"framework\":\"Next.js 14\",\"router\":\"App Router\",\"auth\":\"NextAuth.js\"}"}}}' | perseus-vault serve --db memory.db
查记忆:mimir_recall
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"mimir_recall","arguments":{"query":"项目使用什么框架"}}}' | perseus-vault serve --db memory.db
mimir_recall 默认使用混合检索模式——同时进行 BM25 关键词匹配和稠密语义搜索,然后通过 RRF(Reciprocal Rank Fusion)对结果排序。如果数据库中没有向量索引,会自动降级到纯 FTS5 关键词搜索。
实战场景:用记忆让 Agent 越用越懂你
场景一:项目配置持久化
每次启动 Claude Code 做重构前,先让它查阅记忆库中的项目配置:
// Agent 自动从 Perseus Vault 召回了: // - 项目使用 Next.js 14、App Router、Prisma ORM // - 认证使用 NextAuth.js // - 测试框架是 Vitest // - 代码风格是 Tailwind + shadcn/ui
Agent 不再需要你重复告知这些信息,可以直接进入工作状态。
场景二:关键决策追踪
你在重构中做了一个重要决策——”支付模块拆分为独立服务,使用 Stripe Connect”。把这个决策记入记忆:
mimir_remember(category="decision", key="payment-refactor-2026-07",
body={"decision": "支付模块迁移到独立服务", "reason": "降低核心服务耦合度", "date": "2026-07-15"})
下次 Agent 处理相关代码时,会自动检索到这个决策上下文,避免产生矛盾的代码。
场景三:跨 Agent 共享上下文
你同时使用 Claude Code(写后端)和 Cursor(写前端),两个 Agent 共享同一个 Perseus Vault 数据库文件。前端的 Cursor 记录了 API 接口规范,后端的 Claude Code 自动感知这些约定——不需要你手动同步。
高级功能
加密存储:Perseus Vault 使用 AES-256-GCM 对记忆数据加密。通过 --encryption-key 参数指定密钥文件:
perseus-vault keygen --key-file ~/.mimir/secret.key perseus-vault serve --db memory.db --encryption-key ~/.mimir/secret.key
生命周期的自动衰减:不常用的记忆会随时间衰减。通过 perseus-vault decay 命令手动触发衰减,或通过 perseus-vault prune 清理低价值记忆:
perseus-vault prune --db memory.db --category junk --min-decay 0.1 --dry-run
语义搜索:Perseus Vault 内置了量化版 all-MiniLM-L6-v2 模型(384 维),无需任何外部依赖即可进行语义搜索。如果你想使用 Ollama 或其他嵌入服务,指定 --llm-endpoint 即可覆盖。
Obsidian 同步:如果你使用 Obsidian 做知识管理,可以用 obsidian-sync 命令将记忆一键导出到 Obsidian 库:
perseus-vault obsidian-sync ~/obsidian-vault/Perseus/ --watch
总结
Perseus Vault 解决了一个简单但关键的问题:AI 编码 Agent 什么都不记得。一个 Rust 二进制文件(无外部依赖)、一个 SQLite 数据库文件、55+ 个 MCP 工具,让你和你的 Agent 共享一个持久的、可搜索的、加密的记忆空间。
安装试一下,从下次 Claude Code 会话开始,你会注意到它的不同——Agent 不再问”这个项目是什么?”,而是直接说”我看到了你上次做的那个决策,我继续推进”。