s06
记忆系统
智能层类型化持久记忆与自动提取
4 种记忆类型 + Frontmatter 索引 + LLM 自动提取记忆只存储不可从代码推导的信息,通过 MEMORY.md 索引实现 O(1) 相关性判断
类型化持久记忆与自动提取
4 种记忆类型 + Frontmatter 索引 + LLM 自动提取记忆只存储不可从代码推导的信息,通过 MEMORY.md 索引实现 O(1) 相关性判断
每次启动 Claude Code 都是一个全新的会话——LLM 不记得上次对话的内容。但用户希望 AI 助手记住他们的偏好(如「不要在响应末尾总结」)、项目背景(如「下周四代码冻结」)和纠正历史(如「测试不要用 mock」)。记忆系统让 Claude Code 在会话间持久化这些不可从代码推导的知识。
四种记忆类型 — 约束记忆存储只保留不可推导的信息
export const MEMORY_TYPES = [
'user', // 用户角色、偏好、知识背景
'feedback', // 用户纠正和确认的工作方式
'project', // 正在进行的工作、目标、截止日期
'reference', // 外部系统中信息的位置指针
] as const;
export type MemoryType = (typeof MEMORY_TYPES)[number];记忆排除规则 — 明确什么不应该被记忆
export const WHAT_NOT_TO_SAVE_SECTION: readonly string[] = [
'## What NOT to save in memory',
'',
'- Code patterns, conventions, architecture, file paths, or project structure',
'- Git history, recent changes, or who-changed-what',
'- Debugging solutions or fix recipes',
'- Anything already documented in CLAUDE.md files.',
'- Ephemeral task details: in-progress work, temporary state',
'',
'These exclusions apply even when the user explicitly asks you to save.',
];记忆目录管理 — 基于 Frontmatter 的文件系统存储
// 记忆存储为 Markdown 文件,使用 Frontmatter 元数据:
// ---
// name: user_role
// description: 用户是数据科学家,关注日志系统
// type: user
// ---
// 用户是数据科学家,当前聚焦于可观测性/日志...
//
// MEMORY.md 作为索引文件,只包含指向记忆文件的链接
// loadMemoryPrompt() 在每次查询时加载相关记忆到系统提示词