多层记忆系统架构 — 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 条才写):
- 会改变未来行为吗? — 下次同类任务会因此做得不同?
- 是承诺/决策吗? — 记录了需要后续跟进的约定?
- 值得记住原因吗? — “为什么”未来还有价值?
- 是稳定事实吗? — 明天/下周还成立?
- 用户要求记住了吗? — 明确说”记住这个”?
Agent 对照表
| Agent | L3 Memory Provider | 说明 |
|---|---|---|
| Manas | Scope Recall | SQLite + LanceDB,混合检索 hybrid (0.45 词法 + 0.55 向量),嵌入 zeroentropy |
| Alaya | memtensor (MemOS) | 三层 traces/policy/world_model,反射加权回传 |
| Mano | agentmemory + built-in | skill 增强内置记忆,重要性加权保留 |
| Soma | holographic | HRR 代数 + 信任评分,零依赖本地免费 |
各层详述
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)