Hermes 记忆系统深度分析

审计时间:2026-05-26 20:31 CST|范围:Master/default、Worker、Network、Health、Stock、News/Sub 配置与当前注入链路

一句话结论:当前记忆系统总体可用且召回很快,Master 的“内置短索引 + TencentDB 四层外置记忆 + Scene Block 导航”已实际运转;主要风险不是失效,而是侧车进程常驻内存偏高、News/Sub 未接入 TencentDB、CLI 状态命令对 provider 显示有歧义,以及 L1/L2 自动沉淀仍偏保守。

可用
Master 本轮已成功注入 persona、scene navigation、外置记忆搜索工具。
1ms
本轮 Master TencentDB keyword recall 日志显示总召回耗时约 1ms。
5/5
8420–8424 五个 TencentDB sidecar 健康接口均返回 status: ok
3
Master 当前 Scene Blocks:Telegram调用与模型恢复、内置记忆迁移承接、健康数据与热量核验。

1. 当前架构实际怎么运转

层级当前职责证据评价
L0 原始会话按 profile 写入 conversations/YYYY-MM-DD.jsonl,保留原始用户/助手片段。Master 最新 2026-05-26.jsonl 存在;Health、Stock 等也有各自 conversations。正常 捕获链路存在,但不同 profile 活跃度不同。
L1 结构化记忆抽取 episodic records,供搜索与后续 L2 聚合。Master records/2026-05-26.jsonl 已记录“226 kcal 不应计入消耗”。正常 但记录偏事件化,仍有重复摘要。
L2 Scene Blocks把高热度/跨会话主题收敛成场景块,并在 prompt 中注入索引。Master scene navigation 注入 3 个场景;内置记忆迁移承接.md heat=9。有效 已承担长背景迁移职责。
L3 Persona生成用户叙事画像,给交互风格与长期偏好提供背景。本轮 prompt 注入完整 user narrative profile;日志显示 persona loaded 1763 chars。有效 但注入正文较长,要继续避免和内置 profile 重复膨胀。
内置 MEMORY/PROFILE只保留高频规则、路径、禁忌、术语陷阱。当前 MEMORY 约 32%,USER PROFILE 约 92%。部分紧张 Memory 很健康;Profile 接近上限,需要后续瘦身。
Skills保存 runbook 与可复用流程,不承载项目流水账。存在 agent-memory-governance 与 TencentDB rollout/rebalance 参考。健康 流程知识放置正确。

2. Profile 接入与隔离状态

ProfileProvider 配置端口/数据根最近数据判断
Master/defaultmemory_tencentdb8424 / /root/.memory-tencentdb/master2026-05-26 conversations + records;persona 与 3 个 scene block。核心链路正常
Workermemory_tencentdb8421 / worker最近 conversations 到 2026-05-24;records 到 2026-05-21。低活跃/抽取滞后
Networkmemory_tencentdb8420 / network最近 conversations 到 2026-05-24;records 到 2026-05-22。低活跃/抽取滞后
Healthmemory_tencentdb8423 / health2026-05-26 conversations;2026-05-25 records;健康/饮食 scene。活跃正常
Stockmemory_tencentdb8422 / stock2026-05-25 conversations + records;库存 scene。正常
Newsprovider 为空未接入 TencentDB无 TencentDB 数据根。可接受 News 更依赖实时检索,记忆价值较低。
Subprovider 为空未接入 TencentDB无 TencentDB 数据根。待决策 如果 Sub 承载长期财务/订阅偏好,可考虑接入。

3. 关键健康信号

4. 发现的问题与风险排序

优先级问题影响证据建议
P1Master 进程内存很高。不是记忆链路不可用,但 gateway 常驻 10.7G、峰值 13.2G,长期可能挤压系统资源。hermes-gateway.service Memory 10.7G;其 cgroup 下包含多个 LSP 与 5 个 TencentDB Node sidecar。拆分/托管 sidecar 为独立 systemd 或减少 gateway 内衍生进程;先做资源治理,不急着改记忆逻辑。
P2hermes memory status 显示 provider none,与实际运行矛盾。容易误导运维判断,以为只剩 built-in。status 命令显示 “Provider none”;但 config/provider discovery/sidecar/注入日志都证明 Master 使用 TencentDB。后续修 CLI 状态命令 profile/env 识别,或在 runbook 标注“以 config+health+日志为准”。
P2News/Sub 未接入 TencentDB。News 可接受;Sub 若承载长期订阅/财务习惯,则会缺少长期偏好沉淀。news/sub config provider 为空;无对应 data root。News 暂不动;Sub 视使用范围决定是否灰度接入独立端口。
P2USER PROFILE 接近上限。未来新偏好难以写入;重复 persona 注入可能增加噪音。当前 profile 约 92%。把“叙事型偏好”继续迁出到 L3/scene,内置 profile 只留决策简报、HTML、重启上下文等硬偏好。
P3L1 记录存在重复/事件流水倾向。长期会增加召回噪音,尤其邮件报告、升级过程等一次性事件。Master 2026-05-23 records 中多条邮件报告摘要高度相似。提高去重/合并策略;完成型任务不要过度 durable 化。
P3embedding disabled。语义召回能力弱于向量召回,但当前 keyword FTS5 很快、低风险。所有 health endpoint embeddingService=false保持现状,等 L1/L2 去重稳定后再评估 embedding,不建议现在引入复杂度。

5. 对“运转如何”的总体评价

做得好的部分

不够理想的部分

6. 建议路线图

阶段动作预期收益风险
立即,无需重启把“评估标准”固化:判断 TencentDB 是否正常时,以 config + provider discovery + health + 日志 + 数据文件为准,不单看 hermes memory status避免误判。无。
短期瘦身 USER PROFILE:把叙事型偏好迁到 L3 persona/scene,只保留硬规则。降低 prompt 噪音,释放写入空间。低;需逐条确认避免删掉硬约束。
短期治理 L1 去重:邮件报告、一次性升级、完成型任务不应反复生成多条高优先级 episodic。减少未来召回噪音。中;需要看 provider 抽取逻辑。
中期将 TencentDB sidecar 从 gateway cgroup/子进程模式转成 profile-scoped systemd owner,或至少做内存/进程巡检。降低 Master gateway 内存压力,提升可观测性。中;涉及服务变更,需 restart context 与分 profile 验证。
可选评估 Sub 是否接入 TencentDB;News 暂可不接。让订阅/财务/项目偏好可长期沉淀。低到中;取决于 Sub 是否有敏感数据过滤需求。
暂缓开启 embedding/向量语义召回。提升语义召回。当前收益不如先治理去重与资源成本。

7. 最终判断

当前系统不是“记忆没跑起来”,而是已经进入可用灰度后的治理阶段。最值得处理的不是立即换召回算法,而是三件事:一是修正观测面歧义,二是控制 gateway/sidecar 资源成本,三是继续把内置 profile 瘦身并提升 L1 去重质量。