开发与工程 mcp-serveragent-memoryencryptionlocal-firstvector-databasesemantic-searchprivacypython

Compartment

为 AI 代理提供加密、完全离线的本地长期记忆:单一加密保险库,多代理共享,运行时零网络、零遥测。

FollowAgents 评估 · FARS-2.1
推荐
76/ 100 五分制 3.8 / 5
1 2 3 4 5 6
1信任安全22 / 29 · 3.8/5

加密、离线、按记录密钥、命名空间ACL、审计链、pack签名验证、memory_unlock默认禁用、hook安装前备份settings.且有--no-hooks与uninstall路径,敏感数据处理证据充分。扣分点:--caller身份是声明式的(SECURITY.md自认),PostToolUse hook会修改编辑器配置,依赖均只给版本区间无锁定摘要。

2可靠稳定11 / 14 · 3.9/5

pyproject注释显示mcp 1.x/2.x双版本兼容处理、VaultStaleError等具体错误、CI覆盖三平台。扣分:一致性声明(如12ms、99%召回)仅有文字断言,本次静态审查无法执行验证。

3适用触发14 / 18 · 3.9/5

文档明确多OS差异(Linux窗口化、Windows无AF_UNIX的处理)、多agent共享、锁定vault的迁移路径。扣分:触发精度与能力边界主要靠文档描述,未见针对宿主模型覆盖工具指令的对抗性场景测试文件。

4规范维护14 / 18 · 3.9/5

安装说明详尽(一键安装、CLI整合命令)、命名稳定性处理出色(保留engram别名)、known_limitations诚实(无法保护场景清单)、Apache-2.0完整。扣分:无可见FAQ/示例文件、无CHANGELOG文件(仅有releases链接)、维护者文档口吻为单人('I'),无治理或协作者信息。

5有效结果10 / 13 · 3.8/5

定位清晰(离线加密记忆),与竞品对比表提供边际价值论证,检索数学透明。扣分:70MB共享进程与约6700条参考事实的默认占用量、加密开销对成本的影响只在SECURITY.md间接提及。

6证据核验5 / 8 · 3.1/5

关键论断指向具体文件(SECURITY.md、docs/COMPARISON.md、ranking.py),CI的--assert-offline为离线声明提供可执行证明路径。扣分:多数性能/安全结论为自称('best security of any vector memory'),静态审查无法核实测量,且部分历史叙述(2026日期)超出可核对范围。

证据充分度: 评估于 2026年9月7日 审查版本 2686197034ed
使用前请注意
  • 静态审查,未执行任何代码;所有性能与安全声明均为文档自称,置信度低。
  • --caller 身份是声明式的,恶意宿主可冒名获取其命名空间授权;严格隔离需每宿主单独运行一个 serve 实例。
  • PostToolUse hook 会修改 Claude Code 的 settings.;虽然先备份且可卸载,使用前请自行核对 diff。
  • 安装会引入约 70MB 常驻嵌入进程与约 6,665 条参考事实;不需要时用开关关闭。
  • 忘记口令即永久不可恢复(设计如此);如担心弱口令,启用 2fa keyfile。
  • 发布者为未验证身份的个人维护者,无组织治理;企业采用前建议独立复核依赖与加密实现。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Compartment(GitHub: MaxFreedomPollard/Compartment,Apache-2.0)是一个完全离线、加密的 AI 代理记忆系统,以 MCP 服务器形式运行,通过 stdio 提供服务。所有数据——包括嵌入向量——都以 XChaCha20-Poly1305 加密存放在本机的一个 vault 文件中,只有用户口令能解锁。检索采用混合式向量与关键词搜索,官方实测中位延迟约 11.6 毫秒。它内置本地 ONNX 嵌入模型,无 LLM 依赖、无 API key、无账户,并有运行时断网守卫(--assert-offline)由 CI 强制执行。配套提供菜单栏/托盘应用、浏览器仪表盘(仅 127.0.0.1)、关系图、签名记忆包和命令行工具,适配 Claude Code、Claude Desktop、Hermes Agent、OpenClaw、Cursor、VS Code 等 28 个 MCP 客户端。

compartment serve 作为 MCP 服务器运行,暴露 memory_search、memory_store、memory_store_many、memory_get、memory_forget、memory_link、memory_relations、memory_status 等工具。每条记忆是一条不超过 200 字符的断言,必须带 source 和 discovered 日期,可设 expires 过期;意见(opinion)通过 supersedes 替换旧记录。检索时对长文本按 448 token 窗口(步长 384)分窗嵌入取最大余弦,与基于自信息权重的关键词通道按软 OR 融合,再乘以重要度与新鲜度权重。compartment integrate claude|hermes|openclaw 一键接线对应代理,Claude Code 还会安装 PostToolUse 捕获钩子、导入已有记忆文件并安装 /compartmentalize 技能。桌面应用负责解锁、加锁、改口令和自动锁定;compartment dash 在本机浏览器只读展示整个保险库。

  1. 使用 Claude Code 或 Cursor 的开发者,希望代理跨会话、跨项目记住决策、凭据位置和偏好,而不把数据发给任何云端记忆服务。
  2. 处理敏感客户信息的咨询者或机构,需要合规级别的本地加密记忆(XChaCha20-Poly1305、Argon2id、2FA 密钥文件)。
  3. 在同一台机器上运行多个代理(Claude、Hermes、OpenClaw、CLI)的团队,希望它们共享一个保险库,用命名空间和 rw/ro 权限隔离。
  4. 需要在无网络的气隙机器上运行代理的用户,可用 compartment setup airgap-bundle 准备离线安装。
  5. 想给代理预置领域知识的维护者,可用签名只读记忆包(compartment pack build/install)分发策划好的记忆。
  6. 在意事实可追溯的用户:每条记忆带来源与日期、可过期、有哈希链审计日志(compartment audit verify)。

这个 Agent 有哪些优点和局限?

优点
  • 离线保证由 CI 强制执行:全部测试套件在 --assert-offline 运行时守卫下于三大平台通过,运行时无网络调用。
  • 加密彻底:嵌入向量也加密(向量可被反推回文本),支持每记录密钥的 --shred 彻底销毁、Argon2id 密钥槽和可选 2FA。
  • 检索实测性能好:8 GB 笔记本上混合搜索中位 11.6 ms(p95 14.7 ms),20k 记录 HNSW 向量搜索 p95 0.68 ms。
  • 多代理共享零成本:所有代理共用一个嵌入进程(约 68 MB),文件锁串行化写入,各代理有独立命名空间与权限。
  • 排序数学透明:全部评分逻辑集中在 src/compartment/ranking.py,官方给出文档化对比表(docs/COMPARISON.md)并欢迎纠错。
局限
  • 嵌入模型固定为内置的 384 维 ONNX 模型,每个保险库只允许一个嵌入模型,换模型需 compartment reindex --re-embed 重建。
  • pip 安装需要 Python 3.11+;Windows 应用依赖 Microsoft Visual C++ 运行时;macOS 应用要求 13+。
  • 每条记忆限 200 字符(max_memory_chars),超长会话需依赖 compartment atomize 或 memory_store_many 拆分,对习惯整段存日志的用户是流程改变。
  • memory_unlock 工具默认关闭(口令会进入模型上下文),代理无法自行解锁,自动化场景需要脚本或 CI 中用 COMPARTMENT_PASSPHRASE。
  • 官方对比表标注日期为 2026 年 9 月 2 日,竞品能力描述可能随时间过时。

如何安装或部署这个 Agent?

免命令行:在 macOS 下载最新 release 中的 Compartment.pkg 并打开,它会引导设置口令、创建保险库并装入菜单栏。命令行方式(任一系统):pip install compartment && compartment init(需 Python 3.11+),或 pipx install compartment / uv tool install compartment 后执行 compartment init。Claude Code 插件方式:先 pip 安装并 init,再执行 /plugin marketplace add MaxFreedomPollard/Compartment/plugin install compartment@maxfreedompollard。Docker:从源码检出目录运行 docker build -t compartment .init 会要求设置口令、创建保险库、载入约 6,700 条参考事实并自动接线已安装的代理。

如何使用这个 Agent?

接线代理:compartment integrate claude(或 hermes、openclaw),其他 MCP 客户端在其配置中加入 {"mcpServers":{"compartment":{"command":"compartment","args":["serve"]}}},或运行 compartment integrate --list 查看支持的 28 个客户端。常用命令:compartment unlock/lock 开关保险库;compartment statusselftestverify 查看状态与完整性;store/get/forget/search/recent 手动管理记忆;compartment dash 在浏览器查看仪表盘;compartment 2fa enable 启用密钥文件第二因子;compartment export --plaintext / import 实现无锁定迁移;lock --sign 生成 Ed25519 签名清单以便跨机器拷贝。任何 MCP 客户端重启后即可读写记忆。

这个 Agent 与同类方案有什么区别?

官方 docs/COMPARISON.md 将其与 @modelcontextprotocol/server-memory(明文 JSONL、无加密)、mem0、Graphiti (Zep)/Letta、claude-mem、basic-memory、Hindsight、Supermemory、Cognee、MemOS 对比:Compartment 是表中唯一静态加密(含向量)、无账户/API key 且运行时零网络的方案;多数竞品依赖 LLM 调用且默认开启遥测。

常见问题

需要联网或付费账户吗?
不需要。无 API key、无账户、无遥测,运行时零网络由 --assert-offline 守卫和 CI 强制;嵌入模型包含在约 30 MB 的 wheel 中。
口令丢了怎么办?
Compartment 从不生成恢复短语,且重启后保险库自动锁定(解锁凭据绑定内核内存中的每次开机随机密钥)。新版本保险库不含恢复短语机制,丢失口令即无法打开,务必妥善保存。
多个代理同时使用会冲突吗?
写入由文件锁串行化,各进程会感知他人写入并重载;每个代理有独立命名空间,可在设置文件中授予 rw/ro/none 权限。
如何迁移到新机器?
锁定保险库(可加 --sign 生成 Ed25519 签名清单),拷贝 ~/.compartment/memory.vault 到新机,安装 Compartment 后用口令解锁。也可用 export --plaintext 导出 JSONL 以彻底避免锁定。
它自己会用 LLM 决定记什么吗?
不会。Compartment 内无 LLM,嵌入在本地 ONNX 进程完成;由宿主模型决定存储与遗忘内容,Compartment 只负责捕获、加密与检索,这保证了离线属性和可复现性。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents