没有LLM密钥也能用?ReMe 离线记忆功能(BM25搜索)完整使用教程
【免费下载链接】ReMeReMe: Memory Management Kit for Agents - Remember Me, Refine Me.项目地址: https://gitcode.com/GitHub_Trending/me/ReMe
ReMe 是一个本地优先的 Agent 记忆管理套件(Remember Me, Refine Me),把对话和资料沉淀成可读、可编辑的 Markdown 记忆文件。它最让人意外的一点是:不配置任何 LLM 密钥,就能直接使用它的离线记忆与 BM25 搜索能力——写入记忆、关键词检索、沿链接展开上下文,全部在本地完成。本文是一份面向新手的完整使用教程,5 分钟跑通"写入 → 索引 → 搜索"全流程。
为什么 ReMe 的记忆搜索不需要 LLM?
很多记忆类产品必须调用大模型做"语义理解",而 ReMe 把默认检索栈设计成了纯本地方案:
| 部件 | 默认状态 | 说明 |
|---|---|---|
| BM25 倒排索引 | ✅ 默认启用 | 本地统计式关键词打分,不依赖任何模型 |
| Wikilink 图谱 | ✅ 默认启用 | 命中片段后自动展开[[链接]]邻居 |
| 向量检索(Embedding) | ⛔ 默认关闭 | 需在配置中显式开启,且需要 embedding API 或本地模型 |
| LLM 记忆进化 | ⛔ 需密钥 | auto_memory/auto_dream等流程才需要 |
默认配置里file_store的embedding_store是空值(见 default.yaml),所以开箱即用的搜索 =BM25 + 链接展开,一条外网请求都不发。这也是 README 明确承诺的能力:
Basic file operations, BM25 search, wikilink traversal, and reading proactive topics can run without LLM credentials.
3 步启动 ReMe 离线记忆
一键安装步骤
要求 Python 3.11+,一行命令即可:
pip install "reme-ai[core]"快速启动服务
reme start服务默认监听127.0.0.1:2333,工作区自动创建在当前目录的.reme/下。daily/存放每日记忆,digest/存放长期记忆,二者都会被后台 watcher 实时建索引。
写入第一条记忆
reme write \ path=digest/wiki/quick-start-demo \ name="快速开始示例" \ description="我的第一条离线记忆" \ content="ReMe 的记忆是可读的 Markdown 文件,支持 [[wikilink]] 互相引用。"写入完成后,后台索引循环(index_update_loop)会自动把文件切块并灌入 BM25 倒排索引,无需手动干预;想立即重建也可以执行reme reindex。
BM25 搜索实战:一句话召回记忆
执行搜索命令
reme search query="记忆 markdown wikilink" limit=5每条结果都会给出路径:起止行号 [score=...]的片段,以及该文件出/入方向的 wikilink 邻居——命中片段保持简短,但你能顺着链接看到它关联到哪些长期记忆节点。如果某条结果值得深挖,用行号精读原文即可:
reme read path=digest/wiki/quick-start-demo start_line=1 end_line=20还支持按日期过滤(包含边界):
reme search query="索引" start_date=2026-06-01 end_date=2026-06-20 limit=10BM25 是如何本地打分的?
无需读代码也能理解其原理(实现见 bm25_index.py):
- 切词:默认使用正则分词器(regex_tokenizer.py)——中文按单字切分、英文按词边界切分,不需要 jieba 等分词库;
- 倒排:每个记忆片段是一篇"文档",索引记录每个词出现在哪些片段、出现几次;
- 打分:查询时只对命中的词列表做 BM25 统计打分(词频 + 逆文档频率 + 文档长度归一化),返回分数最高的 top-k 片段;
- 持久化:索引原子落盘到
metadata/,重启即恢复;删除采用惰性墓碑标记,并由optimize_index_cron每天凌晨低峰期压缩,保证长期运行不拖慢搜索。
整个过程纯 CPU、纯本地,这就是"没有 LLM 密钥也能用"的底气。
离线能力边界:哪些功能免费,哪些需要密钥
| 功能 | 需要 LLM 密钥 | 命令 |
|---|---|---|
| 读写记忆文件 | ❌ | reme write/reme read/reme edit |
| BM25 记忆搜索 | ❌ | reme search |
| Wikilink 图谱遍历 | ❌ | reme traverse/reme graph_snapshot |
| 重建索引 | ❌ | reme reindex |
| 对话式记忆沉淀 | ✅ | reme auto_memory |
| 每日整理到长期记忆 | ✅ | reme auto_dream |
| 只读 Agent 对话 | ✅ | reme chat |
没有密钥时,先用write/read/search把"文件即记忆"的核心跑起来;之后配置LLM_API_KEY(参考 example.env)即可无缝解锁记忆自进化能力。
常见问题 FAQ
Q1:BM25 搜不到同义词怎么办?BM25 是关键词匹配,"索引"搜不到"index"。这是离线检索的已知取舍;确需语义召回时,再按 memory_search.md 开启 embedding 组件,向量与 BM25 会通过 RRF 自动融合。
Q2:搜索不准,怎么重置索引?执行reme reindex即可从现有文件全量重建。metadata/下的一切索引都是可重建的,真正的数据源永远是那些 Markdown 文件本身。
Q3:离线模式下如何把记忆接入 Agent?把记忆文件用[[wikilink]]互相引用,Agent 只需两个工具:reme search召回 +read精读。更多集成方式(CLI、HTTP、MCP)见 skills/reme_memory/SKILL.md。
写在最后
ReMe 证明了"记忆"不必绑定大模型:一份可读的 Markdown 文件 + 一个本地 BM25 索引 + 一张 wikilink 图,就构成了离线可用的记忆闭环。核心资料索引:
- 记忆搜索完整机制:docs/zh/memory_search.md
- 快速开始指南:docs/zh/quick_start.md
- 默认配置(BM25 默认开启、向量默认关闭):reme/config/default.yaml
- 混合检索步骤(BM25 + 向量 RRF 融合):reme/steps/index/search.py
没有密钥也能先用起来,有密钥后更进化——这正是 ReMe"Remember Me, Refine Me"的设计初衷。
【免费下载链接】ReMeReMe: Memory Management Kit for Agents - Remember Me, Refine Me.项目地址: https://gitcode.com/GitHub_Trending/me/ReMe
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考