记忆架构
记忆架构
三个记忆类 Server(neural-memory、agentmemory、knowledge-graph-memory)配合全局提示词,按 L0-L3 四层组织记忆:越往下越接近原始对话,越往上越稳定抽象。分层的意义在于——每一层服务不同的召回场景:查"当时聊了什么"走 L0,查"上次怎么修的"走 L1,查"A 和 B 是什么关系"走 L2,而 L3 决定每次会话的起点。
这是 氛围编程 工具链中记忆层的完整展开;三个工具的安装配置见 MCP协议。
| 层级 | 记忆内容 | 对应工具 | 主要用途 |
|---|---|---|---|
| L0 原始对话层 | 每次会话结束后的 100-200 字摘要(主题、关键决策、代码变更、涉及模块) | agentmemory + knowledge-graph-memory | 追溯"当时讨论了什么、为什么这么做" |
| L1 原子事实层 | 从对话中提取的具体事实、偏好、约束、技术决策、踩坑记录 | agentmemory(memory_save / memory_smart_search) | 精确召回"上次怎么修的"、"我偏好用什么" |
| L2 场景知识层 | 按项目/场景组织的知识块、跨模块关系、实体关联 | knowledge-graph-memory(create_entities / create_relations / graph_query) | 快速恢复一个工作场景,跨项目追溯"A 和 B 是什么关系" |
| L3 核心画像层 | 长期稳定的身份、技能、项目列表、环境、偏好、工作规范 | 全局提示词(CLAUDE.md / 用户长期记忆文件)+ agentmemory | 让 AI 每次会话都快速进入你的语境,保持一致性 |
会话按"预置 → 检索 → 路由 → 验证 → 沉淀"五步闭环循环,沉淀时各层各写各的,检索时按优先级取用:
前置检索分工
每个记忆工具只回答自己擅长的查询,先想清查询意图再选工具,避免在错误的地方大海捞针:
| 查询意图 | 工具 | 典型入口 |
|---|---|---|
| 模糊联想、经验启发("上次类似场景怎么处理的") | neural-memory | 读:nmem_situation / nmem_recall;写:nmem_remember |
| 历史经验、偏好、Trade-off("上次怎么修的") | agentmemory | memory_smart_search / memory_save |
| 精确跨项目关系("A 和 B 是什么关系") | knowledge-graph-memory | graph_query / create_entities / create_relations |
| 代码结构、调用链、影响分析 | codebase-memory-mcp | search_graph / trace_path / get_code_snippet |
| 外部库最新文档 | context7 | resolve-library-id / query-docs |
| 浏览器交互 / UI 测试 | playwright | browser_navigate / browser_snapshot |
记忆冲突仲裁
多个工具对同一事实说法不一致时,按可信度从高到低裁决:neural-memory(Outcome=success)> agentmemory(最近验证)> knowledge-graph-memory 显式关系 > 代码库约定。其中 knowledge-graph-memory 只存重要的可复用跨领域关系,回答跨项目问题先走 graph_query。
写入分工
按记忆内容的形态决定写入哪个工具,拿不准默认走 agentmemory:
| 记忆形态 | 写入工具 | 示例 |
|---|---|---|
| 偏好 / 避坑 / 策略 / 工作流 | neural-memory(nmem_remember) | "重构前先查知识图谱,避免改 A 坏 B" |
| 键值 / 单一规则 | agentmemory(memory_save) | "偏好 uv" |
| 关系型(实体 + 关系) | knowledge-graph-memory(create_entities / create_relations) | "项目X → 使用 → PostgreSQL" |
| 拿不准 | 默认 agentmemory | — |
会话闭环流程
记忆只是前置,完整会话还要走路由与验证:前置检索喂给路由,路由选对工作流,验证通过才沉淀,避免"查了记忆却用错方法"。
| 环节 | 动作 | 说明 |
|---|---|---|
| 前置 | nmem_situation + memory_smart_search + graph_query | 查经验、偏好、跨项目关系 |
| 路由 | 按任务类型选工作流 | 新功能/重构 → brainstorming → writing-plans;Bug/异常 → systematic-debugging;编码 → test-driven-development;高风险 → verification-before-completion;多子任务 → dispatching-parallel-agents |
| 验证 | 原生搜索定位 → 最小修改 → 项目测试验证 | 不盲改 |
| 自进化 | 有值得记住的经验 → nmem_remember | 沉淀偏好/避坑/策略结果 |
| L0 沉淀 | 见下方"会话沉淀流程" | 仅当有实质成果时触发 |
知识图谱使用规范
knowledge-graph-memory 不是所有查询都该走,精确关系才用图,模糊联想别用图:
| 场景 | 该用/不该用 | 说明 |
|---|---|---|
| 回答" A 和 B 是什么关系"、决策来龙去脉、跨项目依赖/影响 | ✅ 该用 graph_query | 先查图谱,再用其他工具补充 |
| 模糊联想("上次类似场景") | ❌ 不该用 | 用 neural-memory |
| 查代码结构 | ❌ 不该用 | 用 codebase-memory-mcp |
| 查历史经验 | ❌ 不该用 | 用 agentmemory |
存储原则:只存重要的、可复用的、跨领域的关系,不存细碎的临时信息。
会话沉淀流程
仅当本次会话产生了 ①代码变更 ②技术选型决策 ③解决的 Bug 之一时触发 L0 沉淀;纯咨询/闲聊直接跳过,避免记忆噪音。自进化(neural-memory)写入与 L0 摘要写入并行进行:
- 自进化(neural-memory):有值得记住的偏好 / 避坑 / 策略 / 工作流 →
nmem_remember写入神经记忆,先查后写避免重复 - 生成 100-200 字会话简报(主题、关键决策、代码变更摘要、涉及模块)
memory_save存入 agentmemory,打标签#l0#摘要#日期#项目名create_entities将本次会话建为 Session 节点,建立到相关 Project / Module / Feature 的关系- 若发现跨项目的关系模式,用
create_relations记录到知识图谱
提示
neural-memory 负责"记得住经验",agentmemory 负责"查得到履历",knowledge-graph-memory 负责"理得清关系"——三层写入各司其职,会话结束时都要走一遍。