feat: 导入 MemRelay 初始源码

This commit is contained in:
Nixevol
2026-09-23 21:40:46 +08:00
commit 0ade3bb318
167 changed files with 53511 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# 阶段零验证报告
验证日期:2026-08-02
## Basic Memory
- 固定源码:`v0.22.1`,提交 `232f4690656d7c93f39fc0cb13b0826243f2e0da`。
- 固定 FastMCP:`3.3.1`;Streamable HTTP 路径为 `/mcp`。
- 实际枚举 23 个 MCP 工具;MemRelay 所需的写入、读取、全文搜索、移动、删除和目录读取工具均存在。
- 自定义 frontmatter 可以保存稳定 ID、范围、revision、状态和标签;中文 Markdown 往返无损。
- AMD64 与真实 ARM64 均通过写入、读取、全文搜索、5 路并发写入、移动归档和归档后读取。
- 本地模型 `sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2` 输出 384 维向量,中英文凭证查询可以将中文目标记忆排在第一位。
- AMD64 与真实 ARM64 均在断网容器中通过语义检索,证明运行期不依赖外部嵌入 API。
- 定制镜像使用 Python 3.12 和 Streamable HTTP,构建时预载模型;全新 `/data` 卷首次启动会生成约 241 MB 的持久模型缓存。
## Bitwarden CLI
- 固定 CLI:`@bitwarden/cli@2026.7.0`,运行时为 Node.js 22。
- AMD64 与真实 ARM64 均通过版本加载。
- 使用隔离的临时 Vaultwarden `1.37.1` 和一次性测试账号完成真实协议验证。
- AMD64 与真实 ARM64 均通过账号密码登录、同步、创建 TOTP 项、5 路并发读取、锁定后重新解锁和再次同步。
- 停止临时 TLS 入口后,AMD64 与真实 ARM64 均可使用持久化的加密 CLI 状态离线解锁并读取最后同步缓存。
- 测试使用 Caddy 内部测试证书并只在测试 CLI 中关闭证书校验;正式实现不得关闭 TLS 证书验证。
## 代表性结果
- Docker Desktop AMD64:Basic Memory 完整 MCP 回归约 5 秒。
- 真实 ARM64 设备:非语义 MCP 回归约 55 秒,语义 MCP 回归约 75 秒。
- 上述时间只用于后续优化和发布说明,不是通用硬件门槛。
## 实现约束
- 正式构建和测试目标为 `linux/amd64`、`linux/arm64`。
- Basic Memory 的 OpenAI/LiteLLM 包是上游强依赖,但 MemRelay 固定 `fastembed` 本地提供者,不配置外部嵌入服务。
- Docker 主机级代理可能自动注入容器并污染内部服务通信;Compose 必须为内部通信清空代理变量或配置完整 `NO_PROXY`。
- Bitwarden CLI 登录要求 HTTPS;局域网 HTTP 只适用于 MemRelay 自身,不代表外部密码库连接可以绕过 CLI 的 HTTPS 要求。