阿里 AgentScope 团队开源的 ReMe,换了个思路:记忆就是一堆你能直接读、直接改的 Markdown 文件。
🧠 ReMe 是一个面向 AI 智能体的记忆管理工具,可将对话和资料沉淀为可读、可编辑、可检索的文件化长期记忆。
名字 ReMe 是「Remember Me, Refine Me」——既要记住,也要不断打磨。它从团队早先的 MemoryScope 演进而来,Apache 2.0 协议,纯 Python,GitHub 上 3.1k 星,目前已迭代到 v0.4。

(图源:star-history.com)
四条核心理念
ReMe 的设计可以概括成四句话,都是 README 里的原话:
Memory as File:以带 frontmatter 和 wikilink 的 Markdown 作为记忆节点,让用户和 Agent 都能直接读写。
自进化知识库:通过 Auto Memory、Auto Resource 和 Auto Dream,把对话与资料逐步加工为长期 Markdown 记忆,并自动建立 wikilink 关系。
渐进式混合搜索:融合 wikilink、BM25 和 embedding,支持从关键词匹配到语义召回、关系扩展的混合检索。
Agent 友好集成:通过 SKILL.md + CLI 接入,方便不同 Agent 读写、维护与复用记忆。
整个系统是一个「采集 → 巩固 → 链接 → 检索 → 主动浮现」的循环:

(图源:项目仓库)
图分上下两层,最底下一整条 Memory as File 是地基:所有记忆都是文件,按加工程度分成四类——session/(原始对话)、resource/(原始资料)、daily/(当日工作记忆卡片)、digest/(沉淀下来的长期知识节点)。上面所有动作,读写的都是这一层文件。
上面三组方块,正好对应循环的几步:
• 左边 Auto Memory + Auto Resource——采集:把对话(Auto Memory)和外部资料(Auto Resource)收进来,各自写成daily/里的当日卡片。• 中间 Auto Dream + Proactive——巩固、链接、主动浮现:Auto Dream 把零散的当日卡片抽取、整合进digest/长期记忆,顺手去重、补上 wikilink 关系(Auto Link);Proactive 再把当天值得关注的主题浮出来。• 右边 Auto Index + Memory Search——检索:Auto Index 持续盯着文件变化、刷新索引,Memory Search 用 BM25 + 向量召回相关片段,再顺着 wikilink 扩展开。
一句话:底层是一堆会自己长大的 Markdown 文件,上层三组能力分别负责把记忆「写进来、理清楚、找出来」。
记忆即文件:像写双链笔记一样
第一条理念是地基。ReMe 的记忆节点就是 Markdown 文件——文件头带 frontmatter(结构化元信息),正文里用 wikilink(也就是双链笔记里那种 [[...]] 链接)把节点彼此连起来。
这么做最直接的好处是白盒:人和 Agent 看的是同一棵文件树。Agent 把记忆写成文件,你随时能打开 digest/personal/ 下的某个 .md,看它到底记住了你什么;觉得不对,直接改文件就行。记忆不再是一团没人看得懂的向量。

(图源:项目仓库。左边人读写文件,右边 Agent 把同一批文件解析成图/索引)
记忆按加工程度分层存放在一个工作目录里:
├── metadata/ # 索引、图谱、目录
├── session/ # 原始对话
├── resource/ # 外部资料
├── daily/ # 浅加工的当日记忆
└── digest/ # 长期记忆(personal/procedure/wiki)从底层原始对话,到当日卡片,再到沉淀下来的长期记忆,每一层都是落地的文件,搬移、删改、审计都方便。
会「自演化」的记忆:让 Agent 自己「做梦」
光是把记忆存成文件还不够,ReMe 的另一半是让这些文件自己生长。它有一组自动能力:
• auto_index:持续维护 chunk、BM25、embedding、wikilink 这几套索引,保证检索是新的。 • auto_memory:把对话转成当日记忆卡片,落到 daily/。• auto_resource:把外部资料加工成当日卡片。 • auto_dream:这一步是点睛。
auto_dream 的官方说明是:
扫描指定日期的 daily 输入,抽取长期记忆单元并整合进
digest/,同时写入daily/。
换句话说,它会定期把零散的「当日记忆」翻出来,提炼、去重、建立链接,沉淀成可复用的长期知识——这跟人睡觉时把白天的经历归档巩固是一个意思,项目干脆就叫它「做梦」。
做完梦还有一步 proactive:
读取
auto_dream生成的interests.yaml,将当天值得关注的主题暴露给上层 Agent;是否提醒用户由调用方决定。
这一步值得多说一句,因为它补的是普通记忆系统的一个短板。
平时的记忆检索都是被动的:你或 Agent 想到要查,才发一个请求,记忆库搜出相关内容返回。问题是 Agent 并不知道自己不知道什么——当前这句话没触发它去搜,那条记忆就一直躺在文件里没人理。比如你昨天让它跟进一件事,今天开个新对话,它不会自己想起来,因为没有任何东西触发它去搜「昨天那件没做完的事」。
proactive 把方向反了过来:它不等你问。auto_dream 已经把「值得关注的主题」挑进了 interests.yaml,proactive 就负责把这份清单端到 Agent 面前,让它在你还没开口时,就知道有哪些事可能值得提一下。
打个比方:被动检索像你问图书管理员「那本书在哪」,他帮你找;主动浮现则像管理员主动跟你说「你借的书快到期了」「你关注的作者出新书了」。一个像样的助理,不会只在你提问时才有用。它换来的,是跨会话的连续性(接上没收尾的线头)和待办、兴趣的主动提醒。

(图源:项目仓库)
这张图把「做梦」这件事拆成了五步,从左到右走一遍就明白它在干嘛:
1. Extract(抽取):扫一遍当天有改动的 daily/文件,刷新索引、比对目录找出变化,再让大模型从中抽出可复用的记忆单元和主题。2. Integrate(整合):把抽出来的单元拿去和已有的 digest/比对(先召回再判断),去重、补上 wikilink 关系,然后写回digest/——能更新就更新,没有就新建。3. Topics(选主题):归并当天的主题,对照最近 7 天去掉重复的,把真正值得关注的写进 interests.yaml。4. Finish(收尾):记录 checkpoint(跳过失败项)、持久化文件目录,返回这次做梦处理了多少、有没有出错的汇总。 5. Proactive(主动浮现):读上一步生成的 interests.yaml,把主题连同元信息返回给上层 Agent。
注意图最下面标的边界:这一整套的输入是当天的 daily/ 文件,产出落到 digest/(personal / procedure / wiki 三类长期记忆)和 interests.yaml;而且 Proactive 这步是「只读、只返回」,要不要真的提醒用户,由调用方自己决定——ReMe 负责把该关注的挑出来,但不替你做打扰用户的决定。
检索:从关键词到关系扩展
记忆存得好,还得找得到。ReMe 用的是渐进式混合检索:先用 wikilink 顺着关系找、用 BM25 做关键词匹配,再用 embedding 做语义召回,三者融合。好处是既能精确命中关键词,又能语义联想,还能顺着双链把相关的记忆一并捞出来。
它适合谁
说到底,ReMe 适合这么几类需求:
• 给自建 Agent、编码助理、办公助理加一层跨会话的长期记忆,不想每次重新交代背景和偏好。 • 想要记忆是能打开看、能手动改、能审计的文件,而不是一团黑盒向量。 • 数据敏感、希望全本地跑,不把对话和资料发上云。 • 喜欢知识自动沉淀:对话和资料丢进去,它自己整理成带双链的 Markdown 库,还会主动提醒。
反过来,如果只是偶尔问答、用不上长期记忆,或者不想多维护一个常驻服务,那它对你可能就偏重了。
怎么用
它是装成一个服务来跑的。安装和启动很简洁:
pip install "reme-ai[core]"
reme start
curl http://127.0.0.1:2333/version -H 'Content-Type: application/json' -d '{}'模型这边,默认走阿里云百炼(DashScope)的兼容接口,embedding 和 LLM 各配一个 key 即可——对国内用户算友好,不用绕路:
EMBEDDING_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1接到 Agent 上,靠的是 SKILL.md + CLI:给 Agent 一个记忆技能、放开命令行权限,让它在合适的时机去调 auto_memory、proactive 这些能力。
能本地跑吗?要多大配置?
能。ReMe 对 LLM 和 embedding 都走 OpenAI 兼容接口,默认指向阿里百炼,但把 base_url 换成本地服务地址,就能全本地跑——Ollama、LM Studio、vLLM、llama.cpp server 都行:
# 以本地 Ollama 为例(它暴露 /v1 兼容接口)
LLM_BASE_URL=http://localhost:11434/v1
LLM_API_KEY=ollama # 本地随便填
EMBEDDING_BASE_URL=http://localhost:11434/v1
EMBEDDING_API_KEY=ollama要点是:ReMe 自己不内置模型,只负责「调」模型。所以本地化等于你在本机起两个服务——一个 LLM、一个 embedding——再让 ReMe 指过去。
配置上分两部分看,因为 ReMe 本体几乎不吃资源,真正吃配置的是它调的模型:
所以:
• 用云 API(百炼或任何 OpenAI 兼容接口)→ ReMe 端零压力,任何电脑 + 网络即可,成本就是 token 费。 • 纯本地 → 主要看你想跑多大的 LLM。16GB 内存/显存跑 7B 量化是够用的起点,32GB 能上 14B;那个 embedding 小模型可以忽略不计。
一个提醒:auto_dream 的抽取、总结、整合很吃模型能力,本地模型太小,整理质量会明显打折。仓库本身没给硬件要求(它把模型当外部服务、不替你定),想省心、质量稳就用云,想数据不出门就接本地。
几条限制
• 版本还早。目前才到 v0.4,且是从 MemoryScope 一路演进过来的,迭代快,但还在打磨期。 • 默认绑定阿里百炼。换其它模型要自己改 base_url到 OpenAI 兼容接口;向量检索也离不开一个 embedding 模型服务。• 接入有前提。它走 SKILL.md+ CLI 这套,得 Agent 这边配合;官方规划里要接 QwenPaw 2.0、出 Claude Code 插件,但目前接别的 Agent 需要自己动手。• 它是个服务,不是纯库。 reme start起的是一个常驻 server,部署上要多考虑一层。
写在最后
把 Agent 的记忆做成「能读、能改、还会自己整理」的 Markdown,是 ReMe 最让人记得住的地方——记忆不再是黑盒向量,而是一座人和 Agent 共用、还会自我巩固的文件库。
