Show HN:基于Rust和SQLite的本地优先AI记忆层Mnemo
速览
Mnemo是一个开源的本地优先AI记忆层,旨在为任何大型语言模型提供持久化的上下文管理能力。该项目采用Rust语言开发,利用SQLite进行数据存储,并结合petgraph处理图结构数据。这一工具对于提升LLM在本地环境下的记忆连续性和数据隐私保护具有重要意义。
AI 深度解读
Show HN: Mnemo – 面向任意大语言模型的本地优先 AI 记忆层
背景
当前大多数大语言模型(LLM)存在一个显著的局限性:一旦对话结束,它们就会“遗忘”之前交互中的所有信息。这种缺乏持久记忆的状态限制了 LLM 在长期任务、个性化助手或复杂知识管理场景中的应用潜力。虽然云端解决方案可以通过数据库或向量存储来弥补这一缺陷,但它们往往涉及数据隐私泄露风险、高昂的云存储成本以及网络延迟问题。
在此背景下,Mnemo 应运而生。这是一个开源的、本地优先(Local-first)的 AI 记忆层项目,旨在为任何 LLM 提供持久化的知识图谱支持。它无需依赖云服务,即可实现实体提取、语义检索和上下文注入,从而让 AI 应用具备长期记忆能力。
核心内容
Mnemo 是一个侧边车(sidecar)服务,能够监控并处理用户输入的任何对话内容。其核心工作流程如下:
- 数据摄入与实体提取:当用户通过
POST /ingest接口发送原始文本(如对话轮次、文档或笔记)时,Mnemo 会将其发送给配置的 LLM(支持 Ollama、OpenAI、Anthropic 或任何兼容 OpenAI API 的服务)。LLM 负责提取命名实体(如人物、工具、地点、概念)以及它们之间的关系。 - 知识图谱构建:提取出的实体和关系会被去重(基于名称和类型),别名合并后写入 SQLite 数据库。同时,内存中的
petgraph图结构会原子性地更新,确保数据一致性。 - 上下文检索与注入:当用户通过
POST /retrieve接口发起查询时,Mnemo 执行一个六阶段管道流程:- 全文分块搜索(Full-text chunk search)
- 实体名称搜索
- 图扩展(基于知识图谱的广度优先搜索 BFS)
- 关系过滤
- 评分与排序
- 组装
context_prompt字符串
- 最终输出:生成的
context_prompt会被自动注入到后续 LLM 的系统提示词中,整个过程通常在 50 毫秒内完成。
Mnemo 以单个静态二进制文件的形式发布,零云依赖。它支持通过 Docker Compose 快速部署,也支持直接通过 Rust 编译安装。配置灵活,支持通过 TOML 文件或环境变量指定 LLM 提供商(如 Ollama 或 OpenAI)、模型、API 密钥及超时设置等。
除了服务端 API,Mnemo 还提供了 Python SDK 和 CLI 工具,方便开发者集成。Python SDK 支持同步和异步操作,CLI 工具则提供了便捷的命令行接口用于记忆存储、搜索、实体查看及数据统计。
关键要点
- 本地优先与隐私保护:所有数据处理均在本地完成,无需将数据发送至云端,适合对隐私敏感的场景。
- 技术栈组合:
- Rust:作为核心开发语言,提供高性能和内存安全。
- SQLite:用于持久化存储知识图谱数据,支持 WAL 模式以提升并发性能。
- petgraph:用于在内存中高效管理图结构,支持快速的图遍历操作。
- 广泛的 LLM 兼容性:不仅支持本地运行的 Ollama(如 Llama 3),也支持 OpenAI、Anthropic 等云端模型,通过统一的 OpenAI 兼容接口进行交互。
- 高性能检索:采用混合检索策略,结合全文搜索、实体搜索和图遍历,确保在复杂查询下的准确性和速度(基准测试显示在 Apple M2 上 Debug 构建即可运行,Release 构建速度提升 3-5 倍)。
- 易于集成:
- 提供标准的 RESTful API,所有端点接受和返回
application/json。 - 提供 Python SDK(同步/异步)和 CLI 工具,降低集成门槛。
- 支持通过
session_id对记忆进行分组管理。
- 提供标准的 RESTful API,所有端点接受和返回
- 开源与可扩展:采用 MIT 许可证,欢迎社区贡献。项目结构清晰,分为四个 Rust crate,并提供了详细的架构文档、API 文档和贡献指南。
意义与影响
Mnemo 的出现填补了本地化 AI 应用中“持久记忆”这一关键空白。对于希望构建私有化、高安全性 AI 助手的开发者而言,Mnemo 提供了一种轻量级、低延迟且无需维护复杂向量数据库基础设施的解决方案。
通过将知识图谱技术与 LLM 结合,Mnemo 不仅实现了简单的文本检索,还通过实体关系网络增强了 AI 对上下文的理解能力。这种“记忆层”可以广泛应用于个人知识管理、长期对话助手、企业私有知识库等场景,使得 AI 应用能够像人类一样,随着交互时间的推移而积累知识和经验,从而提供更加连贯和个性化的服务。其本地优先的设计也顺应了当前对数据隐私和去中心化 AI 架构日益增长的需求。
