给 AI Agent 加个本地大脑:SinoMem 做了什么
给 AI Agent 加个本地大脑:SinoMem 做了什么
开源、本地、中文优化:专为 AI Agent 设计的离线记忆系统
核心要点:
- 🔒 完全本地化:数据存储在本地 SQLite,无需 API 调用,零费用,保护隐私
- 🇨🇳 中文友好搜索:集成 jieba 分词 + FTS5,解决中文分词难题,支持 keyword/semantic/hybrid 三种搜索模式
- 🤖 无缝集成:支持 Claude Code 自动记忆同步和 Hermes 插件,多个 Agent 共享记忆
GitHub: https://github.com/P1M0U/SinoMem | Gitee: https://gitee.com/P1M0U/SinoMem | v0.7.0
如果你用 Claude Code、Cursor 这类 AI 编程助手,大概率遇到过这个场景:
跟 Agent 聊了一小时,交代了项目结构、测试怎么跑、数据库连哪个。然后新开一个会话——它全忘了,又问一遍。
LLM 本来就没状态,这不怪 Agent。但每次重复交代上下文的成本,实实在在地摊在日常工作里。
我试过几个方案。Mem0 功能很好,但要调 API、按 token 计费,数据在别人服务器上。LangChain 这类框架内置的记忆又跟框架深度绑定,中文分词基本靠撞——"飞书"搜出来是"飞"和"书"两条。自己写 SQLite 最轻量,但缺分词、缺向量搜索、缺标准协议接入不同的 Agent。
所以我自己写了个。项目最初叫 Agent-Memory-Lite,v0.7.0 改名为 SinoMem(Sino + Memory)。
一条命令装完
curl -fsSL https://gitee.com/P1M0U/SinoMem/raw/main/install.sh | bash
安装到 ~/.local/share/sinomem/,自动建虚拟环境、配环境变量。新开终端就能用:
sinomem store "用户偏好 Docker 部署" -c user_pref
sinomem search "Docker"
不污染系统 Python、不污染 Desktop 目录。卸载也干净,连环境变量和缓存一起清掉。
中文分词这个坑
这是做中文记忆系统绕不开的问题。
SQLite FTS5 默认的分词器对中文是按字符切分的。"飞书"存进去,索引里是"飞"和"书"两个独立的 token,搜索"飞书"就匹配不上。
解决方式很直接:写入和查询用同一套 jieba 分词管道,保证两边 token 对齐。
写入时:
"用户偏好用飞书发文件"
→ jieba 切词: ["用户", "偏好", "用", "飞书", "发", "文件"]
→ 写入 FTS5 索引
查询时:
"飞书"
→ 同一套 jieba 切词: ["飞书"]
→ FTS5 MATCH → 精确命中
对于 jieba 词典覆盖不到的复合词(比如技术领域的新术语),做了一个内部 bigram 扩展——对 >=3 个字的中文 token 自动补上内部子串,提升召回率。另外支持自定义词典,可以注入领域词汇。
三种搜索模式
| 模式 | 干什么用 | 例子 |
|---|---|---|
| keyword | 精确查找 | 搜"飞书"就要命中"飞书" |
| semantic | 模糊匹配 | “怎么给用户传文件"→"用户偏好飞书发文件” |
| hybrid | 两者融合 | 通用场景,兼顾精确和泛化 |
semantic 和 hybrid 模式依赖 ONNX 本地嵌入模型(可选安装),数据不离开本机。如果模型没装,自动降级为 keyword 搜索,不报错。
嵌入模型支持两种,系统自动识别:
- bge-small-zh-v1.5(24MB,中文优化)
- paraphrase-multilingual-MiniLM-L12-v2(113MB,多语言)
ONNX 模型在国内镜像(hf-mirror.com)上有,24MB 起步。下载代码会先快速探测端点是否可达,不可达就跳过,避免卡住。
v0.7.0 的两个新东西
Claude Code 自动记忆同步
装完之后,Claude Code 会自动注册三条钩子:
- 你输入问题时 → 检索相关记忆注入到 prompt 尾部
- Agent 写/编辑文件时 → 捕获值得记住的信息
- 会话结束时 → 去重合并写入数据库
Agent 不需要显式调用记忆工具,正常用就行。安装也是一行:
bash installers/install_claude_code.sh
Hermes Memory Provider 插件
如果主力 Agent 是 Hermes,走插件路径体验更好。install.sh 会自动检测 Hermes 环境并配置。装完后 Hermes 内置的 memory 工具写入的内容自动同步到 SinoMem,不需要额外配置 MCP Server。
跟 Mem0 比怎么样?
实话实说,功能少很多。SinoMem 不做云端同步、不做多用户协同、不做 RBAC。
它只解决一个问题:本地、免费、中文友好、多个 Agent 共享记忆。这个窄定位做好就够了。
| SinoMem | Mem0 | |
|---|---|---|
| 数据在哪 | 本地 SQLite 文件 | 云端 |
| 中文搜索 | jieba 分词 + FTS5 | 默认分词器 |
| 语义搜索 | ONNX 本地 24MB | OpenAI API |
| 费用 | 零 | 按 token |
| 接入方式 | MCP / Hermes 插件 | Rest API |
如果你数据不能上云、不想为 API 付费、或者单纯需要一个离线可用的记忆系统,SinoMem 比 Mem0 更适合。如果你需要多用户协作、全功能平台,用 Mem0。
快速上手
# 30 秒安装
curl -fsSL https://gitee.com/P1M0U/SinoMem/raw/main/install.sh | bash
# 存一条
sinomem store "SinoMem 是本地中文记忆系统" -c project -t "记忆,Agent"
# 搜一下
sinomem search "记忆"
# 看统计
sinomem stats
- GitHub: https://github.com/P1M0U/SinoMem
- Gitee: https://gitee.com/P1M0U/SinoMem
更多推荐

所有评论(0)