记忆与恢复
记忆和会话摘要不是一回事。
- 会话摘要:当前会话的压缩历史。
- 记忆:跨会话保留的偏好、规则、项目知识。
Claude Code 里有 CLAUDE.md、session memory、team memory、remember skill 等多种机制。本教程只抽象它们背后的设计。
记忆应该分层
推荐分成:
text
Project memory # 项目规则
User memory # 用户偏好
Session summary # 当前会话摘要
Runtime context # 当前工作区、文件、工具状态1
2
3
4
2
3
4
不要把所有内容都塞进一个“长期记忆”。
记忆写入要谨慎
Claude Code 的 remember skill 值得学习的一点是:它不是让模型随便改记忆,而是要求先提案。
自研 Agent 也应该这样:
text
模型发现潜在记忆
-> 生成建议
-> 用户确认
-> 写入 memory file1
2
3
4
2
3
4
自动记忆如果没有确认,很容易产生错误偏好和隐私风险。
会话恢复
会话恢复至少需要:
- session id。
- messages。
- 当前 cwd。
- 模型配置。
- 工具权限状态。
- 文件读写历史。
第一版可以只恢复:
ts
type SessionSnapshot = {
id: string
cwd: string
messages: Message[]
createdAt: string
updatedAt: string
}1
2
3
4
5
6
7
2
3
4
5
6
7
复杂能力,例如 worktree、PR 关联、subagent sidechain,可以后置。
小结
会话恢复解决“继续做刚才的事”,记忆解决“长期记住用户和项目规则”。这两个系统要分开设计。