Skip to content
本页内容由 AI 辅助生成与翻译,如有不当之处,欢迎协助改进。 在 GitHub 上编辑

存储后端

PRX-Memory 支持多种存储后端用于持久化记忆及其向量嵌入。prx-memory-storage crate 提供所有后端都实现的统一接口。

可用后端

后端配置值向量支持持久化方式最适合
JSONjson内嵌在条目中基于文件开发、小数据集
SQLitesqlite内置向量列基于文件生产、中等数据集
LanceDBlancedb原生向量索引基于目录大数据集、快速 ANN 搜索

默认后端

默认后端是 JSON(PRX_MEMORY_BACKEND=json),无需额外设置。生产部署推荐使用 SQLite。

JSON 后端

最简单的后端将所有记忆存储在单个 JSON 文件中。适合开发、测试和小型记忆集(10,000 条以下)。

bash
PRX_MEMORY_BACKEND=json
PRX_MEMORY_DB=./data/memory-db.json

优势:

  • 零设置——只需指定文件路径。
  • 人类可读——可以用任何文本编辑器查看和编辑。
  • 可移植——复制文件即可迁移整个记忆数据库。

局限:

  • 启动时将整个文件加载到内存中。
  • 写操作重写整个文件。
  • 无索引向量搜索——暴力扫描进行相似度计算。

SQLite 后端

SQLite 提供 ACID 事务、索引查询和内置向量列支持,实现高效的相似度搜索。

bash
PRX_MEMORY_BACKEND=sqlite
PRX_MEMORY_DB=./data/memory.db

详见 SQLite 存储 了解详细配置。

LanceDB 后端(可选)

LanceDB 提供原生的近似最近邻(ANN)向量搜索和列式存储。使用 lancedb-backend 特性标志启用:

bash
cargo build --release -p prx-memory-mcp --bin prx-memoryd --features lancedb-backend
bash
PRX_MEMORY_BACKEND=lancedb
PRX_MEMORY_DB=./data/lancedb

需要特性标志

LanceDB 支持未包含在默认构建中。你必须在编译时启用 lancedb-backend 特性标志。

选择后端

场景推荐后端
本地开发JSON
生产环境,<100k 条目SQLite
生产环境,>100k 条目LanceDB
需要人类可读的存储JSON
需要 ACID 事务SQLite
需要快速 ANN 向量搜索LanceDB

存储操作

PRX-Memory 提供存储维护工具:

工具说明
memory_export将所有记忆导出为可移植格式
memory_import从导出数据导入记忆
memory_migrate在存储后端之间迁移
memory_compact优化存储并回收空间
memory_reembed使用新模型重新嵌入所有记忆

下一步

Released under the Apache-2.0 License.