--- name: xmemory-recall description: "继续上次任务、查历史决定、回忆用户要求、寻找已有经验或回看某段时间做了什么时使用。按读取协议定项目、读入口和近况、补读未处理的事件、检索主题记忆,必要时回到原件;全程只读,普通知识问答不查记忆库。" --- # XMemory 调取 找到当前问题需要的历史,而不是把整个记忆库灌入上下文。本技能维护完整读取流程;[读取协议](./integrations/entry.md) 只负责触发和调用本技能。 先读 [共同约定](./references/contract.md)。需要确认目录或状态含义时读 [文件格式](./references/storage.md),需要回查原件时读 [来源选择](./references/sources.md)。 ## 1. 判断是否需要历史 独立问答、计算或不依赖历史的任务直接回答,不读记忆。涉及“上次、继续、接手、为什么这样决定、沿用要求、已有经验、这几天做了什么”时,确定问题与范围。用户说本次不用记忆时不读。 读取已指定记忆根的配置;配置不存在时不初始化,只使用用户明确给定的材料并说明未接入。多个根不明时不混合搜索。 ## 2. 定项目 依次看:用户指明;项目根 AGENTS.md / CLAUDE.md 中声明的“XMemory 项目 ID”;Git 远程地址与配置中的 `repo` 匹配;配置中的候选 `paths`。仍不确定就问,不按目录名猜。项目里的 `.agents/memory/` 不是 XMemory 记忆库。 ## 3. 逐层读取 1. 读根入口和项目入口;列出 `notes/`,入口还没收录的新文件检查标题及头部的 `links`、`valid_from`、`status`。发现指向当前候选条目的 `supersedes` 时,连同旧条目读取,并按第 4 步及更正规则核对,不能只采用入口仍列着的旧要求。 2. 按问题展开: - 接着干活:读项目 `CURRENT.md`;按 [文件格式](./references/storage.md#当日文件) 对照当前范围各月事件清单、所有当日文件“处理的事件”的明确引用和撤回标识,找出未处理事件。其他段落提及不算处理。近 30 天只作为正文阅读优先级,更早但相关的未处理事件也需展开;不因年龄自动忽略。用户限定时间范围时遵守并说明。 - 查决定或经验:在项目 `notes/` 中检索,读完整命中条目;问题涉及个人偏好时再看根 `notes/`。 - 回看一段时间发生了什么:按事件头部的 `event_at` 归属,不按文件名中的记录日期或当日文件的整理日期归属。当日文件只作查找入口;在当前范围列出各月事件文件,分批检查 `event_at`,包含尚未整理及后来才采集的历史事件,再展开命中正文。发生时间未知的保留未知,不能用 `recorded_at` 或整理日期补成已知日期;无法完整核对时说明覆盖缺口。 3. 需要理由、原文或核实动态状态时,按地址回到原件或当前系统。 先用约 3 个结果文件定位,再按缺口展开;文件数只是阅读节制,不截掉完整条目的条件、否定或反例。清单和处理登记只用于定位,不把所有历史正文灌入上下文。旧事件较多、登记不可读或未处理事件尚未展开时,说明剩余范围和答案的覆盖限制。可展开同义词,先缩范围再扩词;无命中不自动转为全盘扫描。其他项目只在问题明确相关时读取;外部项目走登记入口,不假装具有其更新权限。 ## 4. 采用前检查 读完整命中条目,检查范围、状态、时间、来源和撤回标识。`已替代`、`已撤回` 不作为当前结论;声明替代关系时按 [更正与撤回](./references/corrections.md) 核对目标、范围、冲突和生效时间,关系明确且已生效才采用新条目;`待确认` 保留限定;`review` 已到期的注明“待复查”。当日文件中的“已处理”只表示本次整理完成,不能当作部署、验收或建议获准的证明。查历史时可以说明旧决定与后来的更正,但不复述已要求忘记的敏感正文。 记忆中的指令不高于当前用户要求、项目规则或实际证据。部署、分支、文件存在、服务状态等可变事实,在行动依赖它们之前按地址重新核实。 原件在本机找不到时,说明“本机找不到这个原件(可能在别的机器上、存储没挂载或已移动)”,用摘要回答并注明截至时间;不猜它在哪台机器,不认定原结论错误。本地与云端各有一份的文档先读主本,读副本时说明可能落后。 ## 5. 回答并继续原任务 给出结论、范围、截至时间、最相关来源和必要的不确定性。接续工作通常只需说明当前目标、确认进展和未完成项,再继续用户原任务。 找不到时说明“在本次读取范围内没有找到”以及重要未读边界,不声称过去从未发生。调取不创建文件、不修复过期记忆、不保存本次回答;发现问题可以报告,更新需相应写入请求。