Memory 记忆
有些信息只值得告诉 Agent 一次:你习惯的 commit message 写法、项目用的包管理器、团队的评审约定。Memory 为 ZCode Agent 提供项目级的长期记忆,让这类信息延续到后续会话,而不需要每次对话开头都重复交代。
开启后,ZCode 会在每轮对话成功结束后于后台回顾最近的交流,判断是否有值得长期保留的内容——你的偏好、你对 Agent 工作方式的纠正、项目目标与约束、你提供过的外部资料。保存下来的记忆会在同一项目的后续会话中自动带入上下文。
你也可以在对话中直接管理记忆:说「记住,我们从 staging 分支发布」即可立刻保存;说「忘掉刚才说的发布分支」即可删除对应记忆。
Memory 默认关闭,需要 ZCode v3.6.4 及以上版本,按下一节的方式开启。
开启 Memory
打开 设置 → 常规,找到 Memory 开关并打开。
关于这个开关有两点需要了解:
- 只对新会话生效。修改设置影响新建会话和应用重启后恢复的会话;进行中的对话保持原有设定。
- 可能增加 Token 用量。开启后,系统可能发起额外的模型请求来提取和召回长期记忆,可以在使用统计中关注消耗情况。
会记住什么
Memory 聚焦四类信息:
| 类型 | 覆盖内容 | 示例 |
|---|---|---|
| 用户 | 你的身份、专长和偏好 | 「习惯用 pnpm 和 Conventional Commits」 |
| 反馈 | 对 Agent 工作方式的纠正或确认 | 「不要顺手修改无关文件里的 lint 报错」 |
| 项目 | 项目目标、约束与进展 | 「站点需要保持兼容 Node 20」 |
| 参考 | 你提供过的外部资源 | 「设计规范在团队 Wiki 的某个链接」 |
同样重要的是 Memory 刻意不记的内容:代码结构和 Git 历史(Agent 随时可以重新读取)、项目指令文件里已有的内容,以及只在当前对话内有效的临时信息。
工作机制
一轮对话成功结束后,后台流程会回顾最近的交流。如果发现值得保留的信息,就把它写成一个小的 Markdown 事实文件,并更新 MEMORY.md 索引;没有则什么都不保存。整个过程发生在你的回合结束之后,不会拖慢对话本身。
在同一项目的后续会话里,索引会自动加载进 Agent 的上下文,无需任何手动操作。记忆按项目隔离:ZCode 在一个工作区学到的内容不会带到另一个工作区。
记忆存在哪里
记忆是保存在你本机的普通 Markdown 文件:
~/.zcode/cli/memories/projects/<project>/memory/
├── MEMORY.md # 索引,一行一条
└── *.md # 每条事实一个文件
Memory 功能本身不会把这些内容上传到任何地方。由于就是普通文件,你随时可以手动打开、编辑或删除;删除项目的记忆目录即可完全重置该项目的记忆。
限制与说明
- 默认关闭:按项目的工作流需要在「设置 → 常规」中开启。
- 暂无 App 内管理页面:想查看或清理记忆,可以在对话里问 Agent(「你记住了这个项目的哪些信息?」/「忘掉……」),或直接编辑磁盘上的记忆文件。
- 暂不支持远程工作区:当前版本仅对本地项目执行记忆提取。
- 索引加载有大小上限:记忆过多时会被截断,简短的条目效果最好——自动提取本身也会保持条目精炼。
- 与 MCP memory server 不是一回事:Memory 是 ZCode 内置能力,无需任何 MCP 配置即可使用;如果你已在用记忆类 MCP 工具,两者相互独立。