SuperAPI AI 工具集

memory-doctor

部署与运维

查看项目

更新于 10-24 22:22

技能介绍

Memory Doctor 是 Basic Memory 项目的诊断技能。它通过 bm doctor 检查用户本地 Basic Memory 项目并报告存在的问题,每个问题都会附带修复命令(若存在)。Doctor 的检查只读,不会更改项目的笔记或索引;它建议的修复会改变数据,因此只能在用户同意后运行。

使用前提:需要具备 bm(或 basic-memory)命令的 shell 环境。

适用场景

  • 搜索漏掉了用户明确知道存在的笔记,或同一笔记返回两次
  • 笔记已保存但文件未变化,或反之
  • 用户询问 Basic Memory 是否正常,或要求“检查”“修复”
  • 崩溃、导入中断或移动项目文件夹之后

运行方式 先只获取报告,速度快且 JSON 结构稳定: bm doctor --skip-self-test --json 添加 --project NAME 可只检查单个项目。不加 --skip-self-test 时,doctor 还会执行自检:在一个临时沙盒中写入、索引并搜索一条笔记,耗时数秒,用于证明安装本身可用。当报告干净但仍感觉有问题时运行自检。

报告解读 报告包含 projects 数组,每项有 name、findings、has_errors;findings 中每条包含 check、severity、summary、evidence,以及可选的 action 与 command。顶层还有 skipped_cloud_projects 与 self_test。

严重级别

  • error:不修复不会消失。提供命令;若 command 为 null,则解释证据。
  • warning:需要关注,可能自行恢复。有命令则提供。
  • info:工作进行中的预期状态。可提及;运行中的服务器会完成它,命令也可立即完成。

索引会在后台追赶。文件索引仍在运行时,重复、缺失或多出的搜索行属于 warning,因为该轮处理可能清除它;索引稳定后则变为 error。若报告只有 info 级发现,说明没有问题。没有 Basic Memory 服务器运行时不会后台索引,因此 info 级发现也应提供命令。

云项目列在 skipped_cloud_projects 中:它们在服务器端索引,本地命令无法修复。

修复流程

  1. 用通俗语言向用户概述发现:哪个项目、什么问题、修复会做什么。共享同一命令的发现合并说明。
  2. 原样展示 doctor 输出的每条命令,运行前询问用户。bm reindex --search --full 会重新读取项目中的每个文件,大型项目可能耗时较久。
  3. 运行用户批准的命令。
  4. 再次运行 bm doctor --skip-self-test --json,确认发现已消失。
  5. 若某发现没有命令,不要编造。说明证据显示的内容(例如磁盘上哪些文件在较新的保存等待时发生了变化),让用户决定。

退出码 无错误且自检通过(或被跳过)时 bm doctor 退出 0,否则退出 1。warning 和 info 不会导致失败。