记忆系统

wescode 的记忆系统让 AI 在会话间保持对项目和用户偏好的理解,越用越懂你。


记忆层次

四层记忆模型

wescode 的记忆分为四个用户可见层:

层名称说明示例
L1环境信息系统和项目环境事实Go 1.22、macOS、SQLite 项目
L2部门共识共享规则(个人版通常为空)团队编码规范
L3关于我个人偏好和事实"我喜欢 tab 缩进"
L4角色记忆Agent 特定的学习"用户纠正过错误处理方式"

记忆特点


记忆如何工作

自动学习

AI 在对话中自动学习并记忆:

用户:"不要用 ORM,直接写 SQL"
→ AI 记住这个偏好
→ 之后生成代码时自动使用 raw SQL

用户:"错了,Go 的错误应该用 %w 包装"
→ AI 记住这个纠正
→ 之后生成的错误处理使用 %w

记忆召回

AI 在每次对话中自动召回相关记忆:

Eager 注入(每轮):
- "用户偏好 tab 缩进"
- "项目使用 PostgreSQL"

Lazy 召回(按需):
- "上次用户纠正过 SQL 注入的处理方式"
- "这个项目的 HTTP handler 返回格式约定"

显式记忆

通过 memory 工具显式存储:

"记住:这个项目的 API 版本前缀是 /v2"
"记住:部署环境使用 K8s,最小副本数 3"

记忆管理

查看记忆

在 Activity Bar 中点击「记忆」图标,或使用斜杠命令:

/memory

记忆中心显示:

编辑记忆

搜索记忆

支持语义搜索:

在记忆中心搜索 "错误处理"
→ 返回所有与错误处理相关的记忆
→ 包括偏好、纠正、约定

工作区隔离

记忆与工作区

由于 wescode 的 1 工作区 = 1 Cell 模型:

切换工作区

切换工作区时,记忆面整个切换:

工作区 A 的记忆:
- L1: "Go 1.22 项目"
- L3: "喜欢简洁注释"

工作区 B 的记忆:
- L1: "Python 3.12 项目"  ← 不同
- L3: "喜欢简洁注释"      ← 可能相同(如果都记过)

Correction 跨项目

L4 层的 Correction 可以跨工作区生效:

在项目 A 中纠正 AI:"Go 的 error 应该用 errors.Join"
→ 在项目 B 中 AI 也会使用 errors.Join
→ 因为这是语言级偏好,不是项目级

Convention(约定)

运行时探测

代码约定(如 tab/space、命名风格)不写入记忆:

为什么不持久化


记忆工具

memory 工具

AI 通过 memory 工具管理记忆:

操作说明
save保存新记忆
search搜索记忆
list列出记忆
delete删除记忆

何时记忆

AI 判断是否需要记忆:


认知结算

会话结束时

每次对话结束(Run 结束)时,引擎执行认知结算:

  1. SessionState 生成:主对话模型总结本次对话
  2. 记忆提取:识别值得记忆的事实和偏好
  3. 持久化:通过 Memory 标准管道写入

跨会话恢复

新会话开始时:

  1. 读取 SessionState(上次对话的总结)
  2. 召回相关记忆(Eager + Lazy)
  3. AI 从"已知状态"开始工作

最佳实践

如何让 AI 更懂你

  1. 明确表达偏好:直接告诉 AI 你的习惯
  2. 及时纠正:AI 做错时立即纠正
  3. 保持一致:同一个偏好不要反复改变
  4. 清理过时记忆:定期检查和清理记忆

记忆卫生


注意事项