快速对比
| 模式 | 密文存放位置 | 谁可以解密 | 适用场景 |
|---|---|---|---|
Cloud 托管模式 cloud | XMemo 托管的数据平面,并通过访问控制、应用层作用域授权和审计保护。数据库 RLS 是否生效取决于具体部署验证。 | XMemo 服务端可以处理记忆内容,用于召回、搜索、排序和可支持的导出。 | 最快完成设置,保留完整托管召回能力,不需要你管理设备或恢复密钥。 |
Keyguard 模式 keyguard | XMemo 托管的 Postgres,但 envelope key 绑定到你的租户 KMS / HSM。 | 只有当你的 KMS grant 允许 unwrap 操作时,服务端才可以解密。 | 需要托管召回,同时要求客户自主管理密钥的企业团队。 |
Vault 模式 vault | XMemo 托管的 Postgres 只保存不透明密文和 envelope metadata。 | 只有已登记设备或恢复包可以解密;XMemo 无法恢复明文。 | 零知识托管;丢失所有设备和恢复材料就意味着永久丢失。 |
XMemo 会存储什么
- 记忆记录:记忆文本或密文、元数据、所有权、时间戳,以及召回所需的向量检索数据。
- 账号设置状态:选择的安全模式、设置完成状态、模式切换次数,以及 KMS binding id 或 vault recovery marker 等 preflight 证明。
- 访问与审计记录:会话、哈希或 scoped credential、身份链接,以及 setup_state_transition 等审计事件。
XMemo 公共页面不会要求你粘贴 API key。Agent 和 MCP 配置应引用环境变量或使用官方客户端配置入口。
Cloud 托管模式
记忆数据保存在 XMemo 托管数据平面中。服务端会为了召回、搜索、排序和导出处理记忆内容。
- XMemo 服务端可以为了服务端语义召回、排序和导出处理记忆内容。
- 这是最方便的模式,但不是零知识模式。
- 删除会移除记忆行和相关元数据;DSAR 导出可以包含明文。
Keyguard 模式
Keyguard 保留 XMemo 的托管召回体验,同时把 envelope 操作绑定到你的组织控制的 Azure Key Vault、AWS KMS、GCP KMS、KMIP 或类似 provider。
- 向导会保存 KMS binding,并提交 personal_default_mode = keyguard。
- 召回要求你的 KMS grant 持续有效;撤销 grant 会阻止之后的 decrypt/unwrap。
- XMemo 删除自己的密文和元数据;KMS key 的轮换或销毁由你的租户负责。
Vault 模式
Vault 是零知识选项。浏览器或设备会在数据离开设备前加密,服务端只保存密文、路由信息和 envelope metadata。
- XMemo 不能解密 vault memory,不能重置 vault key,也不能在所有设备和恢复包丢失后恢复数据。
- Vault 数据的 DSAR 导出包含密文和 envelope metadata,需要你在本地用设备或恢复包解密。
- 托管语义能力可能受限,除非该功能可基于客户端提供或隐私保护表示运行。
生产数据边界
XMemo 生产架构以 operator-managed Postgres、TLS 校验和应用层作用域授权为边界。数据库 RLS/runtime context 是否生效取决于具体部署验证。Supabase 仅作为开发和兼容后端,不是这些托管声明支持的生产底座。
- Managed Postgres:账号、记忆、向量、设置和审计记录的生产存储边界。
- 数据库 RLS/runtime context:属于部署特定控制;必须在目标环境验证 runtime role、migration ledger、runtime-context flag 和 owner/team CRUD matrix。
- Supabase compatibility:适合本地或 OSS 采用,但 service-role 行为不等价于生产加固。
如何验证当前模式
- 打开 Memory Console -> Settings -> Security mode,确认页面显示的模式。
- 调用 GET /api/v1/me/setup/state;完成设置的账号应显示 setup_state = setup_completed 和预期 selected_mode。
- 调用 GET /api/v1/me/security-mode;posture 应包含 verified_effective_mode、new_write_mode、pending_write_mode、legacy_read_mode 和 migration_status。
- Keyguard:把页面显示的 key binding id 与你的 KMS 审计日志对齐。Vault:确认写入请求只含不透明密文,没有可识别的明文片段。