多层记忆系统架构 — Manas 生产级 Agent 记忆体系

基于 2026 年行业实践 + Manas 实际部署配置 最后更新: 2026-07-29

2026-10-09 校注:下文 provider、容量和自动注入行为是 2026-07-29 的部署记录,未逐 profile 重新实测。当前 vault 为 ${KNOWLEDGE_ROOT};gbrain 的独立 HTTP 服务存在,不代表每个 Agent 已配置 MCP。

总体架构(6 层,L0–L5)

L0 · 工作记忆 (Working Memory)   | LLM 上下文窗口
    每轮自动注入,会话结束即消失
L1 · 热规则 (Hot Rules)          | MEMORY.md + USER.md
    每轮自动注入系统提示,跨会话
L2 · 程序记忆 (Procedural)       | Skills + MCP 服务器
    按需加载的操作流程和外部工具能力
L3 · 语义记忆 (Semantic)         | Memory Provider(各 Agent 不同)
    跨会话语义召回
L4 · 共享知识库                   | gbrain(结构化知识图谱,所有 Agent 共享)
                                 + Obsidian vault(外置 Markdown 文件库)
L5 · 历史会话全文检索             | Session DB (FTS5)
    所有历史对话,session_search 检索

Write Gate(写入门控 — 通用)

所有从低层到持久层的写入必须通过 5 条检查(通过 ≥1 条才写):

  1. 会改变未来行为吗? — 下次同类任务会因此做得不同?
  2. 是承诺/决策吗? — 记录了需要后续跟进的约定?
  3. 值得记住原因吗? — “为什么”未来还有价值?
  4. 是稳定事实吗? — 明天/下周还成立?
  5. 用户要求记住了吗? — 明确说”记住这个”?

Agent 对照表

AgentL3 Memory Provider说明
ManasScope RecallSQLite + LanceDB,混合检索 hybrid (0.45 词法 + 0.55 向量),嵌入 zeroentropy
Alayamemtensor (MemOS)三层 traces/policy/world_model,反射加权回传
Manoagentmemory + built-inskill 增强内置记忆,重要性加权保留
SomaholographicHRR 代数 + 信任评分,零依赖本地免费

各层详述

L0 · 工作记忆(Working Memory)

属性值
技术LLM 上下文窗口
容量当时配置约 128K tokens;实际取决于模型和客户端
持久性仅当前对话,会话结束即消失
访问自动——每轮都在上下文中
写入门控不适用

L1 · 热规则(Hot Rules)

属性值
技术Hermes memory provider(memory 工具)
容量当时配置:Memory 5,000 char / User 3,500 char;非所有版本的固定值
持久性跨会话,每轮自动注入系统提示
访问自动注入
写入门控✅ 必须通过

L2 · 程序记忆(Procedural)

属性值
技术Hermes Skills + MCP 服务器
路径~/.hermes/profiles/<name>/skills/
容量按需加载,不自动注入
访问skill_view(name) 加载
写入门控✅ 经验证的流程才入库

L3 · 语义记忆(Semantic)— Memory Provider

各 Agent 使用各自的 Memory Provider(见上表)。Manas 当前使用 Scope Recall:

  • SQLite truth: $HERMES_HOME/scope-recall/memory.sqlite3
  • LanceDB 向量索引: $HERMES_HOME/scope-recall/lancedb/
  • 混合检索: hybrid(0.45 词法 + 0.55 向量)
  • 嵌入器: zeroentropy (zembed-1, 1280d)
  • 工具: scope_recall_store/search/context/probe/related/feedback/stats

L4 · 共享知识库

gbrain(PostgreSQL + pgvector + 图):

  • 跨 Agent 共享的持久化知识库
  • 语义搜索、知识图谱、事实提取、代码分析
  • 设计上供多个 Agent 访问;各客户端 MCP 配置需分别确认

Obsidian vault(Markdown 文件库):

  • 外置文件系统级笔记
  • 当前路径: ${KNOWLEDGE_ROOT};D:\Data\Hermes 为历史环境路径

L5 · 历史会话检索

属性值
技术Hermes Session DB(SQLite + FTS5)
持久性跨会话保留;受清理、保留策略与备份影响,不保证永久
访问session_search(query)
跨 Agent❌ 每个 profile 独立

写入决策树

有新信息要记?
 ├→ 每轮必读的规则/偏好?            → L1 MEMORY.md + USER.md
 ├→ 已验证的操作流程/工具用法?       → L2 Skills + MCP 注册
 ├→ 跨会话有价值的语义事实?          → L3 Memory Provider
 ├→ 结构化知识/研究/概念?            → L4 gbrain put_page
 ├→ 外置笔记/文档?                  → L4 Obsidian vault
 ├→ 一次性日志/对话?                → 不主动写(L5 Session DB 自动)
 └→ 密码/token?                     → 不写任何层(放 .env)