核心功能

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 工具,两者相互独立。

下一步