ReMe/docs/zh/reme-blog.md
jinliyl 513fb5b7f4
feat: extract Daily Paper into an independently packaged plugin (#491)
* feat: extract Daily Paper into a plugin

* fix: satisfy clean-environment quality checks

* fix: address daily paper review feedback
2026-08-26 17:32:46 +08:00

22 KiB
Raw Blame History

ReMe让你的个人知识库在每一次对话后继续生长

我们每天都在和 AI 对话。

它帮我们分析项目、阅读论文、排查问题,也听我们讲过偏好、计划和那些还没完全想清楚的念头。

但大多数时候对话结束价值也被关进了历史记录。下一次打开新窗口AI 可能还记得一句结论,却不知道结论从哪里来;可能搜到一段旧对话,却无法把它和后来读过的资料、做过的决定连起来。

真正有用的长期记忆,不应该只是“存过”,而应该能够持续整理、建立联系,并在未来需要时重新参与思考。

这正是 ReMe 想解决的事情。

ReMe 是一个面向 AI Agent 的、local-first 的自进化个人知识库。它让对话与资料持续沉淀为可读、可编辑、可检索、相互链接的 Markdown 记忆,并从中提炼值得继续关注的线索。

项目地址:https://github.com/agentscope-ai/ReMe

项目文档:https://reme.agentscope.io

ReMe 自进化个人知识库与公开基准结果

一个会持续生长的记忆循环

ReMe 自进化记忆循环

ReMe 不是另一个聊天机器人,也不试图替代你正在使用的 Agent。它更像一个可以被 QwenPaw、OpenClaw、Hermes、Claude Code 等 Agent 共享的本地记忆层。

它围绕一套普通文件,完成四件事:

  • Auto Memory 从对话中提炼值得保留的信息;
  • Auto Resource 将外部资料整理为可追溯的记忆;
  • Auto Dream 把每日记忆进一步整合为长期知识;
  • Index、Search 和 Proactive 让旧记忆重新回到新的任务中。

这形成了一个 capture → index → consolidate → recall 的循环:

  • 对话和外部资料先被保留下来;
  • 有价值的信息被整理为每日记忆;
  • 零散事件进一步合并为长期知识节点;
  • 搜索、知识链接和兴趣发现,让旧记忆重新参与未来的思考。

更重要的是,这个循环的中心不是一个用户看不见的黑盒数据库,而是用户自己拥有的文件。索引、图谱和缓存都只是可重建的派生状态。

Memory as File记忆首先是你的文件

ReMe Memory as File

ReMe 的核心设计称为 Memory as File, File as Memory。

“Memory as File”意味着长期记忆不是藏在产品内部而是落在 workspace 里的 Markdown、JSONL、YAML 和原始资源文件中。你可以用 VS Code、Typora 或 Obsidian 直接打开,也可以用 Git、网盘或自己的同步方案备份和迁移。

“File as Memory”意味着每个文件又不只是普通文本。它可以带有 YAML frontmatter、章节结构、行号范围和 Wikilink成为一个可索引、可连接、可继续演化的记忆节点。

例如,一条关于写作偏好的长期记忆可以是:

---
name: 用户偏好:技术文章风格
description: 喜欢先讲问题和结果,再解释技术细节,并用例子帮助理解。
kind: preference
---

用户希望技术文章有清晰主线,避免堆砌术语。

撰写文章时可参考 [[digest/procedure/技术内容写作流程.md]]。

## Sources

该偏好观察自 [[daily/2026-08-07/content-discussion.md]],其中记录了用户对写作方式的要求。

几个月后即使你已经忘了这次对话Agent 仍然能读到偏好、找到关联流程,并顺着 Sources 回到当时的上下文。

这也是 ReMe 与“黑盒记忆”的关键区别Agent 可以整理记忆,但用户永远保留查看、修正、移动和删除它的权利。

Auto Memory把聊过的事写成每天的日记

ReMe Auto Memory 将对话整理为 daily 记忆

很多有价值的信息并不是以“请记住”开头的。

比如你在一次对话里说:

“这周先不要重构登录模块,客户演示之后再做。上次直接升级依赖导致兼容问题,这次先补回归测试。”

这段话里同时包含了项目状态、时间约束、一次失败经验和后续行动。Auto Memory 会把它从聊天流水中提炼出来,写成当天的一张 daily 记忆卡片;可追溯的对话来源记录则保存在 session/dialog/ 中。

session/dialog/project-a.jsonl                 对话来源记录
daily/2026-08-07/login-refactor-decision.md    按内容命名的记忆卡片
daily/2026-08-07.md                            当天索引,负责总览

session_id 仍保留在卡片 frontmatter 中,用于稳定定位和追溯;文件名来自 Agent 生成的主题/事件 name,不必与 session ID 相同。

以后再讨论登录模块Agent 不必翻遍聊天记录,就能先看到:当前为什么没有重构、曾经踩过什么坑、下一步应该先做什么。

它像一位一直在场的记录者,但不是机械地抄写逐字稿,而是把“以后还会用到什么”整理出来。

Auto Resource让外部资料进入同一套记忆系统

ReMe Auto Resource 将外部资料整理为可追溯的个人记忆

并不是所有有价值的信息都来自对话。研究资料、项目文档、会议纪要、网页存档和结构化数据,同样可能成为个人知识库的一部分。

Auto Resource 提供了一条更通用的外部资料入口。资料进入 resource/ReMe 保留原文,再把主题、关键事实和可行动信息整理为带有 source_resource 链接的 daily 卡片。当前可以处理 Markdown、纯文本、JSON、JSONL、CSV、YAML 和 HTML 等文本类资料。

这意味着Auto Memory 负责从对话建立个人知识Auto Resource 负责从非对话资料建立个人知识。两条输入最终进入同一个 daily 记忆层,再由 ReMe 统一索引、整合和检索。

Daily Paper外部资料工作流的一个例子

Daily Paper 是建立在这套文件化记忆之上的可选插件。它会从 Hugging Face Papers 的周榜和月榜收集论文,去除近期已经推荐过的内容,排序后精选三篇,保存 PDF并生成中文论文笔记与一份约五分钟可读完的简报。

想象一下,你持续关注 Agent Memory每天早上收到的不只是三个论文链接而是三篇已经保存到本地的详细笔记。简报通过 Wikilink 指向原始笔记,原始笔记又能回到 PDF。一个月后再问“最近有哪些方法在做长期记忆压缩”这些材料已经进入同一套检索系统不需要重新从浏览器历史里寻找。

Daily Paper 展示了 Auto Resource 可以怎样被组合成具体工作流,但外部资料入口并不局限于论文。

Auto Dream让日记长成相互连接的长期知识

ReMe Auto Dream 从 daily 抽取、分类并整合长期知识,同时写入 Wikilink

日记多了,新的问题也会出现:信息虽然都在,却仍然散落在不同日期里。

假设你先后从对话和外部资料中得到三条关于同一个问题的信息:

  • 第一次排查构建卡死,清缓存无效;
  • 第二次在项目文档中确认根因是 Node 内存不足;
  • 第三次又补充了大型 TypeScript 项目下更容易触发这个问题。

Auto Dream 默认查看以目标日期结尾的最近两天,只把相对上次运行发生变化的 daily 文件一起交给抽取器。它合并指向同一抽象的跨文件 证据,并在默认最多五个 unit 的额度内只保留最值得复用的记忆,再按内容写入三类长期记忆:

  • Personal:用户、团队或项目特定的偏好、约定和约束;
  • Procedure:可以再次执行的流程、方法和排查手册;
  • Wiki:通用的定义、原则、观察和知识。

例如,上面的信息会被整理为 digest/procedure/前端构建卡死排查.md,包含触发条件、排查顺序、无效尝试、解决方法和适用边界,而不是几篇日记的简单拼接。

整合每个记忆单元时Auto Dream 会先跨 personalprocedurewiki 搜索已有节点,区分“同一抽象”和“相关知识”。同一抽象决定如何演化目标节点:

  • CREATE:没有相同记忆,创建新节点;
  • CORROBORATE:同一结论再次出现,补充来源并增强可信度;
  • REFINE:新材料补全条件、步骤或细节;
  • CORRECT:新信息修正旧结论。

相关知识则在同一次整合中以 Wikilink 写进正文,这就是 Auto Link。比如“前端构建卡死排查”可以同时连接通用知识、团队偏好和原始证据

这个问题常见于 [[digest/wiki/大型 TypeScript 项目.md]],处理时遵循
[[digest/personal/团队变更偏好.md]] 中“先补回归测试”的约定。

## Sources

根因与适用场景记录在 [[daily/2026-08-07/build-debug.md|构建排查记录]] 中。

知识的演化与链接发生在同一条流程里。关系不是藏在图数据库里的不可见边,而是正文中可读、可改的内容;文件可以重建图,图不会反过来绑架文件。

Memory Index普通文件如何变成可搜索的记忆网络

ReMe Memory Index 构建过程

Markdown 适合人读但如果只是把文件堆进目录Agent 仍然很难快速找到它们。默认实时索引持续监听 daily/digest/ 中的 Markdownresource/ 由独立资源流程监听,转成 daily 卡片后进入同一索引。需要从现有文件完整重建时,reme reindex 还会扫描 resource/ 与 JSONL。

一份 Markdown 会被解析为:

  • 一个文件节点包含路径、frontmatter 等文件级信息;
  • 多个语义 chunk尽量沿标题、段落、列表和代码块边界切分并保留章节骨架与行号
  • 多条 Wikilink 边:记录它指向谁,以及谁又指向它。

在检索侧ReMe 可以组合三类信号:

检索信号 解决的问题 例子
BM25 关键词 精确名称、术语和编号不能丢 “宁德时代”“issue #184”
Embedding 向量 用户换了一种说法,也要理解语义接近 “构建卡死”与“打包阶段没有响应”
Wikilink 图谱 命中一个节点后,看到它的上下游关系 从“钴”找到“三元正极”和相关调研记录

默认配置开箱启用 BM25 与 Wikilink 展开Embedding 是可选能力,开启后才会参与向量召回。索引、图谱和缓存都写在 metadata/ 即使删除也可以根据用户的源文件重新构建。

Memory Search先找到答案再沿着关系渐进展开

ReMe 混合搜索与渐进式展开

很多 RAG 系统会一次性把 Top-K 文本全部塞进上下文。这样做简单,却容易带来两个问题:孤立切片缺少上下文,而把邻居正文全部展开又会迅速消耗 token。

ReMe 的混合搜索先让 BM25 与可选的向量检索各自召回候选,再使用 RRF 按排名融合。RRF 不强行比较 BM25 分数与余弦相似度这两种不同量纲,而是综合一个结果在两张榜单中的位置。

召回之后,信息按三层渐进式展开:

  1. 先看命中片段:返回最相关的 chunk、文件路径和行号
  2. 再看关系目录:展示该文件的出链与入链,只给邻居的路径、名称、描述和锚点,不急着加载全文;
  3. 最后按需深入Agent 判断哪条关系真正相关,再读取原文或沿图谱继续遍历。

例如,你问:“上次 Alice 推荐的那本讲注意力的书叫什么?”

第一步可能命中一张聚餐日记,其中只写着“标题里有‘深度’两个字”;结果同时显示,这张日记链接到了 Alice 的个人节点,也被《深度工作》的阅读笔记反向引用。

Agent 不需要把 Alice 的全部档案、所有读书笔记和整个月的日记都塞进上下文。它只要沿着最相关的链接再读一次,就能回答:

是《深度工作》。Alice 在那次聚餐时推荐了它,你后来还读了第三章并留下了笔记。

这更像人的联想过程:先想起一个片段,再顺藤摸瓜找到完整上下文。

Proactive从你的记忆里发现那些尚未说出口的需要

ReMe Proactive 内外双向记忆循环

到这里ReMe 已经有了两条不断丰富知识库的输入流:

  • Auto Memory 从持续发生的对话中沉淀个人上下文;
  • Auto Resource 从外部资料中补充新的知识。

Proactive 则把方向反过来:它从已经积累的对话和资料中,发现你仍未解决或可能希望继续推进的主题,以及你尚未关注、但与近期工作紧密相关的信息。这些发现会反哺输入流,为补充外部知识指明新的路径。

例如,你最近一周分别聊过:

  • 搜索结果里缺少来源;
  • 长文档切片后容易失去章节上下文;
  • 想比较几种 Agent Memory 评测方法。

尽管你从未明确说“帮我系统研究记忆检索的可解释性”,但 Auto Dream 可以从这些 daily 记忆中提炼出一个兴趣主题:

title: 记忆检索的可解释性评估
reason: 用户近期持续关注来源追溯、结构化切片和记忆评测。
evidence: daily/2026-08-07/search-discussion.md
keywords:
  - memory search
  - source attribution
  - benchmark

在未来的 beta 版本中,上层 Agent 通过 Proactive 读取这个主题后,可以选择在合适的时机追问:“要不要把最近讨论过的检索问题整理成一份评测方案?”也可以据此启动一个经过用户授权的资料收集流程。用户不需要预先梳理并显式指定自己的兴趣关键词和范围;与对话中潜在需求相关的外部资料,也可以持续进入知识库。

这里有一个重要边界:ReMe 的 Proactive 本身只读取并暴露兴趣主题,不会擅自联网、推送或改写知识库。 它不是凭空猜测你的兴趣,而是让那些已经出现在行为和对话中、却还没有被明确表达的线索浮出水面。

Performance它真的能从很长的历史里找回信息吗

ReMe 使用 LongMemEval 和 BEAM 验证多会话与超长对话中的记忆能力。评测时Agent 可以用 ReAct 方式进行多轮搜索和读取,生成答案后再由 LLM-as-judge 评分。

基准 设置 样本量 Agentic 得分 主要检验内容
LongMemEval cleaned-s 整体 500 题 89.4% 跨会话检索、知识更新与时间推理
BEAM 100K 上下文 20 cases / 400 题 66.1% 十类长上下文记忆任务
BEAM 1M 上下文 35 cases / 700 题 65.0% 更大规模的超长对话设置

LongMemEval cleaned-s 包含单会话事实、偏好、多会话推理、知识更新和时间推理等题型。ReMe 在 500 道问题上取得 89.4% 的整体 Agentic 得分。完整流程和分项结果见 LongMemEval 评测说明

BEAM 覆盖矛盾消解、事件排序、信息抽取、知识更新、多会话推理、偏好遵循、摘要和时间推理等十类任务。ReMe 在 100K 设置下的 20 cases / 400 题上取得 66.1%,在 1M 设置下的 35 cases / 700 题上取得 65.0%。完整设置见 BEAM 评测说明

此外ReMe 还使用 $\pi$-Bench 验证了基于多会话推理提升 Agent 主动性的潜力。$\pi$-Bench 中的 PROC 分数旨在评估 Agent 在隐藏意图直接完成、针对性澄清引导、跨会话偏好恢复、跨会话规范复用、跨任务依赖推断以及欠规格请求推进等方面的主动性能力。ReMe Agent 在 5 种用户角色User Persona上平均取得 0.580 的 PROC 分数,超出相同测试模型配置的 NanoBot 2.4%。关于该基准的详细介绍见 $\pi$-Bench 论文

ReMe 能帮谁?

直接使用 Agent 的人

如果你希望 AI 在长期协作中持续了解你ReMe 可以让个人助理不再每次都从零开始。你的偏好、项目背景、重要资料和过去做过的决定,会在持续对话中沉淀下来,并在真正相关的时候被重新找到。

研究者、工程师、分析师和其他知识工作者都属于这一类直接用户。研究者可以让论文、讨论和阅读笔记彼此连接;工程师可以保留项目决定与跨会话排障经验;分析师可以持续积累事件、观点与来源。职业不同,共同需求都是让 AI 能够理解过去、积累经验,并在下一次任务中找回依据。

构建 Agent 的开发者

如果你正在构建 Agent、Harness 或 AI 产品ReMe 提供了一层可以独立接入的长期记忆基础设施。你可以通过 CLI、HTTP API、MCP Server 或 Python API让不同 Agent 共享同一个文件化 workspace而不必为每个应用重新实现记忆抽取、知识整理、混合检索和关系展开。

文件是事实来源,索引与缓存可以随时重建,也更容易定位一次错误召回究竟来自原始资料、记忆整理还是检索链路。

归根结底ReMe 适合那些希望 AI 不只“回答这一次”,还能够理解过去、积累经验,并在长期协作中越来越懂自己的用户和开发者。我们希望 Agent 越用越懂你,但“懂”不应该建立在一个无法查看、无法修正、无法带走的黑盒上。

ReMe 给出的答案很朴素:

  • 记忆是用户拥有的文件;
  • 原始信息保留现场,长期知识保留抽象;
  • 新对话和新资料持续进入,旧知识也持续被补充和修正;
  • 每个结论都可以通过 Wikilink 找到关系和来源;
  • 索引与缓存服务于文件,而不是取代文件;
  • Agent 可以记住、整理、搜索和发现,但最终控制权始终属于用户。

当这些机制连接起来,个人知识库就不再是一座需要你手工维护的仓库。

它会在每一次对话后多记住一点,在每一份资料到来后多理解一点,在夜晚把零散经验重新整理,在未来的某个问题出现时,再沿着知识之间的联系,把真正需要的那段记忆带回来。

这就是 ReMe 想做的事:让记忆不只被保存,也能持续进化。

接入你正在使用的 Agent

ReMe 既可以作为本地记忆服务,通过 CLI、HTTP API 或 MCP Server 接入,也可以通过 Python API 嵌入宿主进程。默认 HTTP 服务还可在同一地址提供 ReMe Studio用于浏览、编辑、搜索 workspace 和查看 digest Wikilink 图。不同 Agent 可以选择适合自身 运行环境的路径,并按需共享同一个本地 memory workspace。

Agent 推荐接入方式 接入后能力
QwenPaw 通过 Python API 在进程内嵌入 ReMe。 复用宿主应用的生命周期和模型配置,同时保持记忆本地、文件化。
Claude Code 启动 streamable HTTP MCP Service并安装 integrations/claude_code/reme MCP 记忆召回工具、reme-memory skill以及自动记录会话的 Stop hook。
Hermes 启动 HTTP Service并安装 integrations/hermes_agent 在模型调用前自动召回相关记忆,并在每轮对话完成后异步调用 auto_memory
OpenClaw、Codex 等支持 CLI 的 Agent 复制或安装 skills/reme_memory/SKILL.md 通过 CLI 搜索、读取和写入记忆;自动记录需要宿主 Agent 显式接入会话生命周期。

安装、配置与集成演示可查看 README 中文版

欢迎贡献

ReMe 已经开源,我们也欢迎社区一起把这套自进化记忆系统做得更完整:

  • 接入更多 Agent 与 Harness让不同运行环境都能使用同一套用户拥有的长期记忆
  • 贡献新的 Auto Resource 数据源和工作流,让论文、新闻及其他公开资料能够持续进入知识库;
  • 改进 Auto Memory、Auto Dream、Auto Link、混合搜索与 Proactive让记忆整理得更准确、关系更清晰、召回更可靠
  • 补充新的应用案例、评测任务和诊断报告,帮助我们看见真实长期使用中的成功与失败;
  • 完善文档、测试,或通过 Issue 分享你对个人 AI 记忆的需求与想法。

无论是一段代码、一份使用案例、一次问题反馈,还是一个新的记忆工作流,都可能帮助 ReMe 更接近真正可读、可控、可持续进化的个人知识库。

贡献指南:https://docs.agentscope.io/reme/latest/en/contribution