记忆治理 Skill
判断哪些偏好/习惯/稳定约束适合写入 memory 或 MEMORY.md,避免写入短期信息、一次性结论、未经验证猜测。对记忆内容进行分类、去重、治理。
何时使用
- 准备向 memory 写入新内容时
- 审计现有 memory 文件的质量
- 发现 memory 内容之间有重叠或冲突
- 定期清理过时记忆
- 用户要求"整理一下 memory"
不适用:AGENTS.md 管理、项目文档、hooks 设计。
记忆分类体系
| 类别 | 说明 | 写入标准 | 生命周期 |
|---|---|---|---|
| 用户画像 | 角色、技能背景、沟通偏好 | 用户明确表达或多次一致表现 | 持久 |
| 工作偏好 | 代码风格、工具选择、协作方式 | 反复出现且稳定的偏好 | 持久,可能变化 |
| 项目约束 | 技术栈、构建规则、部署约束 | 已验证的事实 | 项目级,随项目更新 |
| 工作反馈 | 用户对 agent 行为的纠正和肯定 | 用户明确表达 | 持久,直到被新反馈覆盖 |
| 外部引用 | 外部系统地址、文档位置 | 稳定可访问 | 持久,定期验证 |
| 临时状态 | 当前任务、进行中工作 | — | 不写入 memory |
| 未验证推测 | 可能正确但未确认 | — | 不写入 memory |
| 一次性结论 | 特定 bug 的根因、临时方案 | — | 不写入 memory |
输入
- 要写入 memory 的候选内容
- 现有 memory 文件内容(用于去重和冲突检测)
- 内容的来源上下文(从哪个对话/任务中产生)
输出
- 分类结果:每一项候选内容的类别判断
- 去重结果:与已有记忆重叠的部分
- 冲突检测结果:与已有记忆矛盾的部分
- 最终建议:写入/更新/拒绝,附具体内容
- 审计报告(审计模式):过时、重复、错位的记忆列表
执行步骤
1. 对候选内容分类
对每条候选记忆,判断:
是用户画像吗? → 分类为 user
是工作偏好吗? → 分类为 feedback
是项目约束吗? → 分类为 project
是外部引用吗? → 分类为 reference
是一次性结论? → 拒绝,建议不写入
是临时状态? → 拒绝,建议不写入
是未验证推测? → 拒绝,建议验证后再写入
2. 去重检测
- 与已有记忆内容逐条比对
- 识别语义重叠(不同表述但同一含义)
- 识别子集关系(新内容是已有记忆的子集)
- 输出:每条重复项的对应关系和建议处理方式
3. 冲突检测
- 检查新内容与已有记忆是否矛盾
- 检查已有记忆之间是否矛盾
- 矛盾时:提示用户确认以哪个为准
- 输出:冲突项列表和建议解决方案
4. 内容质量检查
对每条建议写入的记忆:
- 是否包含具体的"为什么"(reason)?
- 是否说明了"如何应用"(how to apply)?
- 是否使用了绝对日期而非相对日期?
- 是否足够具体以至于未来可执行?
- 是否避免了模糊表述?
5. 生成写入建议
## 记忆治理报告
### 建议写入
| 内容摘要 | 类别 | 目标文件 | 与已有记忆关系 |
|----------|------|----------|----------------|
| 用户偏好中文沟通 | user | user_language.md | 新增 |
### 建议更新(已有重叠)
| 新内容 | 已有记忆 | 建议 |
|--------|----------|------|
| 使用 pnpm | user_tooling.md 中写 npm | 更新为 pnpm |
### 拒绝写入
| 内容 | 原因 |
|------|------|
| "正在调试登录 bug" | 临时状态,不是长期记忆 |
| "可能是缓存问题" | 未验证推测 |
审计模式
对已有 memory 文件进行全面审计:
- 过时检测 — 内容描述的事实是否仍然成立
- 重复检测 — 多个文件间是否有语义重叠
- 错位检测 — 内容是否放在了错误的类别中
- 质量检测 — 是否缺少"为什么"和"如何应用"
- 引用检测 — 引用的外部资源是否仍可访问
输出:治理建议列表,按优先级排序。
边界与非目标
- 不做知识沉淀的判断(什么值得沉淀)— 这是 knowledge-consolidation 的职责
- 不做AGENTS.md 管理 — 这是 agents-md-maintainer 的职责
- 不做自动写入或删除记忆 — 只提供建议,由用户确认
- 不做替代 memory 文件的实际存储机制
验收标准
- 每条候选内容都有明确的分类判断
- 没有临时状态或未验证内容被建议写入
- 去重检测覆盖了语义重叠而非仅字面重复
- 拒绝写入的内容都有清晰的拒绝原因
- 审计模式下输出了完整的治理建议