ReMe本地优先安全模型:你的Agent记忆数据为什么不出本机
【免费下载链接】ReMeReMe: Memory Management Kit for Agents - Remember Me, Refine Me.项目地址: https://gitcode.com/GitHub_Trending/me/ReMe
ReMe 是一个本地优先(local-first)的 Agent 记忆管理工具:它把 AI Agent 的对话记忆保存为你自己磁盘上的普通 Markdown 文件,默认服务只绑定在127.0.0.1回环地址上。这意味着你的记忆数据不出本机——不经过第三方云服务,不落入你不可见的远程数据库。对于关心 Agent 数据隐私的开发者来说,ReMe 的 local-first 安全模型给出了一个清晰的答案。
为什么 Agent 记忆隐私值得担心?
让 Agent "记住你",通常有两种做法:
- 云端记忆服务:对话和记忆上传到厂商服务器,检索靠远端 API。你看不见、删不掉、也说不清数据去了哪里;
- 本地文件 + 本地索引:记忆就是你目录里的文件,服务进程跑在你自己的机器上。
ReMe 选择的是第二条路,而且是从服务端口、存储格式到检索组件,每一层都为"数据不出本机"做了默认设计。
第一层保障:服务默认只监听 127.0.0.1 回环地址
执行reme start启动后,ReMe 的 HTTP / SSE / MCP 服务默认地址是127.0.0.1:2333。
127.0.0.1是回环地址:只有本机进程能访问,局域网内其他设备、外网请求根本到不了这个端口。换句话说,你的记忆 API 天生只对你自己的机器开放。
这一点在官方文档 docs/zh/services.md 的"安全边界"一节被明确写出:
- 默认绑定
127.0.0.1; - 不要直接把默认服务暴露到公网;
- 需要远程访问时,应在受控网络、带认证和 TLS 的反向代理之后部署,并用
service.jobs只开放必要端点。
默认配置见 reme/config/default.yaml,服务后端为http,端口2333,不显式指定 host 即回环监听。
第二层保障:记忆就是你拥有的 Markdown 文件
ReMe 的核心思想是Memory as File, File as Memory:
| 内容 | 存放位置 | 你能做什么 |
|---|---|---|
| 对话来源记录 | session/ | 直接查看 JSONL 原文 |
| 外部资料 | resource/ | 文件保持原路径原内容 |
| 每日记忆 | daily/ | 用任意编辑器打开、修改 |
| 长期记忆 | digest/ | 可读、可编辑、可追溯来源 |
| 索引/图谱 | metadata/ | 可随时删除,可从源文件完整重建 |
这个分层带来三个安全含义:
- 数据主权在你手里。记忆不是黑盒数据库里的一行隐藏记录,而是普通 Markdown + frontmatter + wikilink。你可以用熟悉的工具查看、编辑、移动、备份,甚至直接
git管理(敏感内容除外)。详见 docs/zh/memory_as_file.md。 - 索引可丢弃。
metadata/里的 BM25 索引、向量、图谱快照全部是派生状态,删掉也能从源文件重建——不存在"丢了索引就丢了记忆"的风险。 - 文件操作有边界。文件类 Job 会校验 workspace 包含关系并对同一路径加锁,避免 Agent 绕过受控路径任意写盘(见 docs/zh/operations.md)。
第三层保障:检索组件默认离线,没有必需的云端依赖
很多"本地知识库"产品实际上把语义检索寄托在云端 embedding API 上,数据照样出机器。ReMe 的默认姿势更保守:
- Embedding 默认关闭。只设置 API Key 也不会自动启用向量检索;默认检索走BM25 关键词索引 + wikilink 图谱,完全在本进程内存和本地文件中完成。需要语义检索时,你可以显式启用组件,甚至选择
localembedding store(见 reme/config/default.yaml 中注释掉的 embedding 配置段)。 - LLM 是可选能力。
read、write、list、search(BM25)、wikilink 遍历等基础操作不需要任何模型凭据即可运行;只有auto_memory、auto_dream等记忆演化流程才调用 LLM,而且你调用的是自己配置的模型端点,记忆文件的读写本身不依赖它。 - 主动浏览被明确限制。
proactive_read只读取本地生成的兴趣主题,不会自行联网抓取或外发通知。
另外,reme/components/outbound_proxy/ 中的出站代理组件默认将127.0.0.1,localhost,::1加入NO_PROXY白名单(见 base.py),进一步体现"本地流量走本地"的设计取向。
动手验证:三步确认你的数据不出本机
如果你已经部署了 ReMe,可以用下面的命令自查(均不需要任何额外权限):
reme find_reme # 确认服务实际监听的 host 是否为 127.0.0.1 reme app_config # 查看合并后的生效配置(密钥已脱敏) reme status # 查看各数据组件的内存与磁盘占用再打开浏览器访问http://127.0.0.1:2333/,ReMe Studio 会直接展示 workspace 的概览、每日笔记和记忆图谱——你可以直观看到:所有数据都在这一个本地目录里。
需要远程访问时,正确姿势是什么?
"不出本机"是默认值,不是死路。如果确需远程访问,官方推荐的做法是(见 docs/zh/faq.md):
- 不要修改默认监听让服务直接暴露公网;
- 在受控网络内,通过带身份认证、TLS、访问控制的反向代理接入;
- 用
service.jobs白名单只开放必要的 Job。
迁移和备份同样简单:因为 workspace 就是普通目录,停服后复制session/、resource/、daily/、digest/四个目录即可带走全部记忆,换机器后用reme start workspace_dir=/新路径恢复,metadata/丢失也能自动重建(详见 docs/zh/operations.md)。
总结:本地优先是一种承诺
| 维度 | ReMe 的默认行为 |
|---|---|
| 网络暴露 | 仅127.0.0.1:2333,本机回环 |
| 记忆存储 | 用户磁盘上的 Markdown 文件,用户拥有 |
| 索引数据 | 本地派生状态,可随时重建 |
| 向量检索 | 默认关闭,纯 BM25 本地检索 |
| 数据携带 | 复制一个目录即可备份、迁移 |
ReMe 的 local-first 安全模型不靠"承诺不上传",而靠架构上的默认值:端口在回环上、文件在你的盘上、索引在你的进程里。当你把 Agent 的记忆托付给它时,"数据为什么不出本机"这个问题,答案就在上面这三层设计里。
【免费下载链接】ReMeReMe: Memory Management Kit for Agents - Remember Me, Refine Me.项目地址: https://gitcode.com/GitHub_Trending/me/ReMe
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考