Memory Type System
四种记忆类型
1. user(用户画像)
- 内容: 用户角色/目标/职责/知识/偏好
- 何时写: 了解到用户角色、偏好、职责、知识水平时
- 如何用: 根据用户画像调整工作方式(资深工程师 vs 初学者)
- 示例: "用户是数据科学家,正在调查日志系统" → 用数据视角解释
2. feedback(反馈纠正)
- 内容: 用户对你工作方式的纠正和确认
- 何时写: 用户纠正你("不要这样")或确认非显而易见的做法("对,就这样")
- ⚠️ 纠正容易察觉,确认很安静 — 留意它们
- 格式要求:
规则本身 **Why:** 原因(事故/偏好/上下文) **How to apply:** 何时何处应用 - 示例: "测试不要 mock 数据库 — 上季度 mock 通过但线上迁移失败"
3. project(项目状态)
- 内容: 进行中的工作/目标/决策/里程碑(不可从代码推导的)
- 何时写: 了解到谁在做什么、为什么、什么时间前
- ⚠️ 相对日期→绝对日期("周四" → "2026-03-05")
- 格式要求:
事实/决策 **Why:** 动机(约束/截止日期/利益相关者要求) **How to apply:** 如何影响你的建议
4. reference(外部指针)
- 内容: 外部系统/工具的位置和用途
- 何时写: 了解到 bug 在哪里追踪、文档在哪里、仪表板在哪里
- 示例: "管道 bug 追踪在 Linear 项目 INGEST"
绝对不记
- 代码模式/架构/文件结构(grep 可查)
- Git 历史(git log 权威)
- 调试方案(fix 在代码里)
- 已有规则文件中的内容
- 临时任务状态
- 活动日志/汇总(问"哪部分出乎意料",记那个)
记忆 Frontmatter 规范
每条记忆一个文件,frontmatter 格式:
---
name: 记忆名称
description: 一行描述(用于未来召回时判断相关性,要具体)
type: user|feedback|project|reference
---
记忆正文
召回验证
基于记忆行动前:
- 提到文件路径 → 检查存在
- 提到函数名 → grep 确认
- 提到项目状态 → 对照当前代码
- 矛盾时 → 信当前,更新记忆
"记忆说 X 存在" ≠ "X 现在存在"
MEMORY.md 索引规范
- MEMORY.md 是索引,不是记忆本身
- 每条一行,≤150 字符:
- [Title](file.md) — 一句话钩子 - 上限 200 行 / 25KB
- 不要把记忆内容直接写在 MEMORY.md 里