Hermes 架构:记忆体系、路由原则与知识生命周期
Hermes 架构:记忆体系、路由原则与知识生命周期
本文档定义了 Hermes 的三层记忆架构、查询路由决策矩阵、知识生命周期闭环、架构决策记录(ADR)以及系统演化历史。
一、三层记忆架构
Tier 1: agentmemory 🟢 生产运行
└─ 高频短事实、用户偏好、项目状态
└─ REST API :3111 / MCP 子进程
└─ 查询 ≈ 0.5 秒
Tier 2: globalkg.json 🟢 生产运行
└─ 技术实体与关系图谱(17MB / ~19K 实体)
└─ 文件查询/ kg-deep-recall.sh --tier2
└─ 查询 ≈ 0.2 秒
Tier 3: Cognee 🟡 按需 CLI
└─ 深度推理、多跳分析、实验假设
└─ cognee-query.py / --tier3
└─ 查询 ≈ 数秒至数十秒
Obsidian 🟢 长期档案
└─ 人工可读的权威知识库
└─ SMB 挂载 /mnt/win-obsidian/
二、查询路由决策矩阵
这是社区最关心的问题:哪类问题走哪条路?
| 用户问题 | 路由 | 原因 |
|---|---|---|
| "昨天讨论的部署方案是什么" | session_search | 对话历史,不可持久化 |
| "Hermes 当前监听哪些端口" | agentmemory | 高频短事实,需要持久 |
| "BOPP 薄膜有什么特性" | globalkg | 技术知识图谱,结构查询 |
| "结合十篇论文提出新假设" | Tier 3 Cognee | 多跳推理,需 LLM 综合 |
| "上次部署出了什么错" | session_search | 历史记录,不是知识 |
| "厦门旅游攻略怎么做" | Obsidian / 博客 | 完整文档,可读性优先 |
| "系统资源使用情况" | 直接命令 | 实时数据,不存记忆 |
| "我的 MinIO 密钥是什么" | agentmemory | 持久但引用,不暴露原文 |
一句话规则:
对话历史 → session_search
高频短事实 → agentmemory
技术关系查询 → globalkg
深度推理 → Cognee CLI
完整文档 → Obsidian
实时状态 → 直接命令
三、知识生命周期
原始资料(RSS / 公众号 / 论文 / 笔记片段)
│
▼
010-Inbox(Obsidian) ← 每日 08:00 自动处理
│
▼
自动分类 → 自动打标 → 自动双链
│
├── 短事实 → agentmemory(Tier 1)
│ │
│ ▼
├── 技术关系 → globalkg(Tier 2)
│ │
│ ▼
├── 深度关联 → Cognee(Tier 3,按需)
│
▼
030-相关知识(Obsidian 正式笔记)
│
▼
博客发布(Go-TeBlog)
│
▼
040-Archive(历史归档,只读)
闭环原则: 知识从原始输入到归档,每个环节职责明确。不跨层存储,不重复加工,不过期不清理仅归档。
四、架构决策记录(ADR)
ADR 001:为什么保留 agentmemory
| 项目 | 内容 |
|---|---|
| 背景 | 需要持久记忆层,曾考虑 Mem0、Graphiti、自建 SQLite |
| 决策 | 选用 agentmemory(MCP 协议 + iii-engine 存储引擎) |
| 原因 | 原生支持 Hermes MCP 协议;三层(记忆/语义/概念)搜索开箱即用 |
| 代价 | 容器依赖、iii-engine 二进制维护 |
| 替代方案 | Mem0(REST API 成熟,但非 MCP 原生) |
ADR 002:为什么 Cognee 不常驻
| 项目 | 内容 |
|---|---|
| 背景 | Poe 阶段实现了 Cognee 数据构建,是否需要常驻 API |
| 决策 | 保持 CLI 按需调用,不部署常驻 |
| 原因 | 低频查询不值得常驻(一天≈0-2次);避免 LLM 成本、内存占用、健康检查 |
| 代价 | 每次查询数秒启动延迟 |
| 升级条件 | 当日志查询 > 5 次/天后考虑部署 API 服务 |
ADR 003:为什么 Obsidian 是最终档案
| 项目 | 内容 |
|---|---|
| 背景 | 需要人工可读的长期知识存档,不能依赖任何 AI 系统 |
| 决策 | Obsidian SMB 挂载为最终权威源 |
| 原因 | 纯 Markdown 不锁定格式;双向链接支持知识图谱;版本可控 |
| 替代方案 | Notion(锁定+联网依赖);Logseq(列表型不适合长文) |
ADR 004:为什么用 Tailscale 而非 WireGuard 直连
| 项目 | 内容 |
|---|---|
| 决策 | Tailscale 作为首选组网 |
| 原因 | 自动 NAT 穿透;密钥轮换内置;DERP 中继兜底 |
| 代价 | 依赖第三方控制面 |
五、系统演化历史
v0.1(2025 末)
└─ 无记忆系统,纯会话助手
v0.3(2026 初)
└─ 引入 agentmemory,基础记忆能力
v0.5(2026 春)
└─ 加入 Obsidian 知识库,SMB 挂载
└─ Inbox 自动处理流水线
v0.8(2026 中)
└─ PAOS 启动,分层知识图谱设计
└─ Cognee 数据处理管线(PoC)
└─ globalkg.json 上线
v1.0(当前)
└─ Tier 1 agentmemory(生产)
└─ Tier 2 globalkg.json(生产)
└─ Tier 3 Cognee CLI(按需)
└─ 统一查询入口 kg-deep-recall.sh
└─ 三级部署流水线
└─ Hermes 宪章(本系列)
设计哲学: 每一次演化的驱动力不是"别人用了什么",而是"当前哪里最痛"。没有记忆时加记忆,知识散乱时建图谱,推理不足时补 Cognee。不为了技术而技术。
下一篇:《Hermes 运维手册:基础设施、部署流水线与工具链》
暂无评论
评论已关闭
此文章的评论功能已关闭。