记忆
每次新开会话都要重新交代项目背景和编码风格,是使用 AI 编程工具最大的隐性成本。记忆系统就是为了消除这部分重复。
它解决什么
- 不用每次重复说明”我们用 tabs 缩进""测试框架是 vitest”
- 上次踩过的坑、定下的约定,下次直接生效
- 跨会话保持一致的技术判断
工作方式
记忆的存取由 AI 自动完成,你不需要手动维护:
- 存入 —— 会话中出现的稳定事实、你的偏好与纠正、项目约定会被写入记忆
- 取出 —— AI 在需要时调用
recall_memory工具,用自然语言描述想回忆的内容
例如你只说”按我们上次定的方式处理错误”,AI 会去检索相关的记忆条目。
检索方式
recall_memory 的检索是向量语义 + 全文关键词的融合:
| 参数 | 说明 |
|---|---|
query | 自然语言描述,如「上次是如何解决认证超时的」 |
top_k | 返回条数上限,默认 10 |
project_path | 可选,把检索范围限定到单个项目 |
这意味着即使用词和当初记录时完全不同,也能被语义匹配到;同时精确的技术术语又能靠全文检索命中。
记忆是有层次的
记忆按层组织,检索结果的每一条都会标注它所属的层。不同层对应不同的作用范围与生命周期——例如项目级的约定只在当前项目生效,而你的个人偏好会跨项目生效。
分层带来的直接好处是作用域隔离:A 项目的技术选型不会污染 B 项目。
权限与隐私
recall_memory 是只读查询,不触碰文件系统,因此没有权限门槛。
若你希望某个项目完全不参与记忆,可配合配置中的 DUODUO_DISABLE_PROJECT_CONFIG 等项目隔离手段,或直接使用本地模型,让所有数据留在本机。
记忆不可用时
记忆服务会在本地维护。若服务暂时不可达,recall_memory 会返回提示告知模型”记忆当前不可用,请基于当前会话上下文继续”——此时功能不受影响,只是不再有跨会话记忆。