15.3K+ star 的 单文件 AI 记忆层:让 Agent 拥有持久记忆

原创 开源项目精选集

开源项目精选集 开源项目精选集 2026-05-06 09:00

AI Agent 越来越强,但它们的「记忆」却一直是个痛点。

15.3K+ Star、+35% 精度、0.025ms 检索

——这不是某款新型向量数据库的营销数字,而是 Memvid 交出的真实答卷。传统 RAG 需要向量数据库、分块策略、Embedding 管道,每次查询还得烧 token。而 Memvid 只用一个 .mv2

文件,把所有问题打包带走。

这就是今天要聊的 Memvid:

用 Rust 写的单文件记忆层,让 AI Agent 真正拥有持久、可追忆、零基础设施的记忆能力。

![项目首页](7c01aa446006a28584aabf65ddfb58e8.)

01 它是什么?

Memvid 是一款 Rust 编写的便携式 AI 记忆系统

,核心思想很直接——把数据、嵌入向量、搜索结构、元数据全部打包进一个 .mv2 文件

不再需要:

  • 运维向量数据库
  • 配置复杂的 Embedding 服务
  • 管理分块重叠策略

只需一个文件,AI Agent 就能随时读取历史记忆、跨会话持久化、进行时间旅行调试。模型无关、多模态支持、完全离线运行。

02 核心原理/亮点

Memvid 的设计灵感来自视频编码

,但不是存视频,而是把 AI 记忆组织成可追加、不可变的 Smart Frames 序列

┌────────────────────────────┐│ Header (4KB)               │  Magic, version, capacity├────────────────────────────┤│ Embedded WAL (1-64MB)      │  Crash recovery├────────────────────────────┤│ Data Segments              │  Compressed frames├────────────────────────────┤│ Lex Index                  │  Tantivy full-text├────────────────────────────┤│ Vec Index                  │  HNSW vectors├────────────────────────────┤│ Time Index                 │  Chronological ordering├────────────────────────────┤│ TOC (Footer)               │  Segment offsets└────────────────────────────┘

一个 .mv2

文件内部结构如上,无任何 .wal、.lock、.shm 等副产品文件

Smart Frames 的核心特性:

  • 不可变单元:

每帧含内容、时间戳、校验和、基础元数据,追加写入不破坏已有数据

  • 时间线可回溯:

支持 Rewind、Replay、Branch 任一历史状态

  • 崩溃安全:

已提交的帧永不损坏

  • 高效压缩:

借鉴视频编码的压缩技术

  • 多模态支持:

内置 PDF 解析、CLIP 视觉嵌入、Whisper 音频转写

通过 Feature Flags 按需开启能力:

<table><thead><tr><th style="border-bottom:1px solid #e5e7eb;padding:10px 12px;text-align:left;color:#0f172a;font-weight:800;"><section><span leaf="">Feature</span></section></th><th style="border-bottom:1px solid #e5e7eb;padding:10px 12px;text-align:left;color:#0f172a;font-weight:800;"><section><span leaf="">说明</span></section></th></tr></thead><tbody><tr style="background:#ffffff;text-align:left;"><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><code style="font-size:13px;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,&#34;Liberation Mono&#34;,&#34;Courier New&#34;,monospace;"><span leaf="">lex</span></code></td><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><section><span leaf="">BM25 全文搜索(Tantivy)</span></section></td></tr><tr style="background:#ffffff;text-align:left;"><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><code style="font-size:13px;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,&#34;Liberation Mono&#34;,&#34;Courier New&#34;,monospace;"><span leaf="">vec</span></code></td><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><section><span leaf="">HNSW 向量相似度搜索</span></section></td></tr><tr style="background:#ffffff;text-align:left;"><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><code style="font-size:13px;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,&#34;Liberation Mono&#34;,&#34;Courier New&#34;,monospace;"><span leaf="">pdf_extract</span></code></td><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><section><span leaf="">纯 Rust PDF 文本提取</span></section></td></tr><tr style="background:#ffffff;text-align:left;"><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><code style="font-size:13px;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,&#34;Liberation Mono&#34;,&#34;Courier New&#34;,monospace;"><span leaf="">clip</span></code></td><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><section><span leaf="">CLIP 图像语义搜索</span></section></td></tr><tr style="background:#ffffff;text-align:left;"><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><code style="font-size:13px;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,&#34;Liberation Mono&#34;,&#34;Courier New&#34;,monospace;"><span leaf="">whisper</span></code></td><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><section><span leaf="">Whisper 音频转写</span></section></td></tr><tr style="background:#ffffff;text-align:left;"><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><code style="font-size:13px;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,&#34;Liberation Mono&#34;,&#34;Courier New&#34;,monospace;"><span leaf="">encryption</span></code></td><td style="border-bottom:1px solid #eef2f7;padding:10px 12px;color:#0f172a;text-align:left;"><section><span leaf="">加密胶囊(.mv2e)</span></section></td></tr></tbody></table>

Memvid 采用 Rust 实现,内存安全、零依赖部署。

03 应用场景

Memvid 的设计决定了它天然适合这些场景:

  • 长期运行的 AI Agent:

跨会话记忆不断,无需每次重建上下文

  • 企业知识库:

单文件可分发,审计追溯简单

  • 离线优先 AI 系统:

完全本地运行,不依赖云服务

  • 代码库理解:

索引项目历史,支持时间旅行 Debug

  • 可审计 AI 工作流:

记忆不可篡改,每一步可回溯

  • 医疗、法律、金融 Agent:

合规要求高,需持久化记忆

▶️ 想要快速体验?可以访问 Memvid Sandbox(https://sandbox.memvid.com) 线上试用。

04 快速上手

多语言 SDK 已就绪,5 分钟跑通第一个记忆示例。

Rust

cargo add memvid-core
use memvid_core::{Memvid, PutOptions, SearchRequest};fn main() -> memvid_core::Result<()> {    let mut mem = Memvid::create("knowledge.mv2")?;    let opts = PutOptions::builder()        .title("Meeting Notes")        .uri("mv2://meetings/2024-01-15")        .tag("project", "alpha")        .build();    mem.put_bytes_with_options(b"Q4 planning discussion...", opts)?;    mem.commit()?;    let response = mem.search(SearchRequest {        query: "planning".into(),        top_k: 10,        snippet_chars: 200,        ..Default::default()    })?;    for hit in response.hits {        println!("{}: {}", hit.title.unwrap_or_default(), hit.text);    }    Ok(())}

Python

pip install memvid-sdk

Node.js

npm install @memvid/sdk

CLI

npm install -g memvid-cli

完整示例、PDF 解析、CLIP 图像搜索等进阶用法,见 官方文档(https://docs.memvid.com)。

写在最后

当 RAG 越来越臃肿、向量数据库越来越重,Memvid 给了另一种思路:把记忆还给它真正的主人——Agent 本身

单文件、轻量、持久、可追溯。Rust 写的,够快。15K+ Star 社区验证过的,够稳。

如果你的 Agent 需要记忆,试试把 Memvid 加进技术栈。

![Star History](1baca974ec48868db7950062e8489ab8.)

相关链接