最近被 RAG 折腾得够呛。
向量数据库要部署,Embedding 服务要维护,元数据还得找个地方存。三套东西,光运维就头大。
然后在 GitHub 上刷到这个项目,思路有点意思——干脆把所有东西打包成一个文件得了。
它干了什么
Memvid 用 Rust 写的,做的事情很简单:
一个 .mv2 文件 = 原始数据 + 向量索引 + 全文索引 + 元数据
不用装数据库,不用起服务。这个文件你想 git commit 就 commit,想 scp 到服务器就 scp,随便折腾。
和传统方案比一下
传统 RAG Memvid
┌────────────┐ ┌────────────┐
│ Vector DB │ │ │
├────────────┤ │ 一个 .mv2 │
│ Embedding │ → │ 文件 │
├────────────┤ │ │
│ Metadata │ └────────────┘
└────────────┘
仨服务 零依赖
设计上有个亮点:Append-Only 的不可变帧结构。说白了就是只往后追加,不改已有的数据。好处是并发写入不打架,程序崩了数据也能恢复。
技术栈
| 组件 |
实现 |
| 语言 |
Rust |
| 全文检索 |
BM25 |
| 向量搜索 |
HNSW |
| 特点 |
Feature Flags 按需编译 |
对 Rust 感兴趣的话,云栈社区( https://yunpan.plus )整理过一份学习资料,可以翻翻。
代码长这样
use memvid_core::{Memvid, SearchRequest};
// 建个记忆文件
let mut mem = Memvid::create("knowledge.mv2")?;
// 塞点数据进去
mem.put_bytes(b"Q4 季度会议纪要...")?;
mem.commit()?;
// 搜一下
let results = mem.search(SearchRequest {
query: "会议".into(),
top_k: 10,
..Default::default()
})?;
除了 Rust,Python 和 Node.js 的 SDK 也有。
选择 Memvid 对应语言的 SDK
| 类型 |
安装命令 |
来源 |
| CLI |
npm install -g memvid-cli |
npm |
| Node.js SDK |
npm install @memvid/sdk |
npm |
| Python SDK |
pip install memvid-sdk |
PyPI |
| Rust |
cargo add memvid-core |
Crates.io |
什么场景能用
合适的:
- Agent 需要长期记忆
- 离线跑的 AI 应用
- 边缘设备上部署
- 需要留痕审计的场景
不太行的:
说到底,这东西就是拿文件系统换掉数据库。小项目省心,大项目还是老老实实上分布式。
最后
方案不复杂,胜在简单。中小规模的 AI 应用,少一套服务就少一份运维负担。
云栈社区后面会继续分享后端和中间件相关的开源项目,感兴趣可以关注下。
📦 Github 仓库 github.com/memvid/memvid
📖 项目官网 www.memvid.com
🎬 从 RAG 到 Agent 应用课程 https://yunpan.plus/t/615
🎬 DeepSeek 搭建 RAG 知识库 https://yunpan.plus/t/634
关注《云栈后端架构》,获取更多后端技术栈、中间件、架构设计相关的开源动态。
标签: #Memvid #GitHub #Rust #RAG #AIAgent