Skip to content

诊断、备份与恢复

ReMe 的恢复原则是:保护 workspace 中的用户文件,通过源文件重建索引、图谱和 catalog。不要为了修复索引而删除或改写用户记忆。

快速诊断

依次执行:

bash
reme find_reme
reme version
reme health_check
reme status
reme app_config
  • find_reme:服务是否存在,以及实际 host、port、PID;
  • version:CLI 能否成功访问服务;
  • health_check:组件健康状态;
  • status:状态组件的内存估算和进程 RSS;
  • app_config:隐藏密钥后的实际生效配置。

日志

log_to_consolelog_to_file 控制日志目标。排查启动失败时先查看第一条异常,而不是后续客户端连接错误。

常见类别:

现象优先检查
CLI 找不到服务reme find_reme、启动目录、端口和进程状态
自动记忆失败LLM backend、model、API key、base URL
只有 BM25 结果embedding 组件是否真正接入 file_store
新文件没有进入搜索文件所在目录、后缀、watcher 和 health_check
Studio 空白但 API 正常web extra、静态构建路径和浏览器控制台
插件安装后不可用当前 Python 解释器、plugins 配置、服务重启

索引维护

bash
reme reindex scope=all
reme reindex scope=bm25
reme reindex scope=embedding

reindex 从当前 file_chunks 重建 BM25 和/或 embedding 派生索引。它不会扫描 workspace、重新分块或重建 wikilink 图谱。

如果问题发生在文件摄取阶段,应先确认后台 watcher 正常运行;不能把 reindex 当成通用“重新扫描”命令。

Daily 索引页可单独重建:

bash
reme daily_reindex date=2026-09-04

备份

停止写入或停止服务后,优先备份整个 workspace。最重要的目录是:

  • session/:原始对话来源;
  • resource/:外部资料;
  • daily/:每日记忆;
  • digest/:长期记忆。

metadata/ 包含索引、图谱和 file catalog。一起备份可以加速恢复,但它不是唯一事实源。

不要只备份进程目录下偶然生成的 .reme/;生产使用应明确设置稳定的绝对 workspace_dir

迁移 workspace

  1. 停止旧服务,避免迁移期间继续写入。
  2. 复制完整 workspace,并保留文件时间信息。
  3. 使用新的绝对路径启动:
bash
reme start workspace_dir=/new/location/reme-memory
  1. 运行 health_checkstatus 和一次代表性 search
  2. 如果 embedding 模型或维度发生变化,再重建 embedding 索引。

普通 Markdown 和资源文件可以使用版本控制或同步工具;包含敏感对话的 workspace 不应推送到公开仓库。

从派生状态故障恢复

在确认备份可用前,不要删除任何内容。恢复顺序应为:

  1. 保留 session/resource/daily/digest/
  2. 记录当前配置和组件 backend;
  3. 确认故障只发生在 metadata/
  4. 将有问题的派生状态移到隔离备份位置;
  5. 用同一配置启动 ReMe,让 watcher 从源文件重建;
  6. 验证搜索、图谱和 Daily 索引。

具体 metadata 文件属于实现细节,不应在自动化脚本里依赖其内部格式。

并发编辑

Studio 或其他编辑器保存完整文件时,应使用 stat 返回的 mtime 作为 save.expected_mtime。如果文件在打开后被外部修改,保存会失败,从而避免静默覆盖。

文件 Job 会校验 workspace containment,并对同一路径加锁。不要绕过这些 Job 直接向不受控制的绝对路径写入。

Released under the Apache-2.0 License.