🧠 Hermes + Holographic 记忆手册
结构化代数记忆系统 · HRR 向量 + FTS 全文检索 · 2026-05-14 迁移上线
🏗️ 系统架构
┌─────────────────────┐
│ 🧠 Holographic │
│ Engine (HRR 推理) │
└────────┬────────────┘
│
┌────────▼────────────┐
│ 🔧 fact_store 工具 │
│ add·search·probe· │
│ reason·contradict │
└────────┬────────────┘
│
┌───────────┴───────────┐
│ │
┌──────▼──────┐ ┌───────▼──────┐
│ memory_ │ │ 🤖 Agent │
│ store.db │ │ Context │
│ SQLite+FTS │ │ 注入 │
└─────────────┘ └─────────────┘
🔮 什么是 Holographic Memory?
使用 HRR(Holographic Reduced Representations) 向量编码,将事实以代数形式存储在向量空间中。相比旧版纯文本记忆,支持:
- 🔍 FTS5 全文检索 — SQLite 内置全文搜索引擎,精确关键词匹配
- 🧩 实体探测 —
probe(entity)→ 所有该实体关联事实 - 🔗 关系推理 —
reason(entities)→ 多实体交集推导 - ⚖️ 矛盾检测 —
contradict()→ 发现事实冲突 - 📈 信任评分 —
fact_feedback训练,好的上升坏的下沉 - ♾️ 无上限 — SQLite 后端,告别 2200 字符瓶颈
📅 迁移历程
- 此前 — 旧系统:MEMORY.md + USER.md 纯文本,2200 字符硬上限,已 98% 满
- 配置切换 — config.yaml 启用
provider: holographic,但旧数据未自动迁移 - ✅ 2026-05-14 — 手动迁移 13 条旧数据到 fact_store,旧文件 → .migrated 备份
📊 新旧对比
| 特性 | 旧 MEMORY.md | Holographic ✅ |
|---|---|---|
| 存储 | 纯文本文件 | SQLite + FTS5 + HRR 向量 |
| 容量上限 | 2,200 chars | ♾️ 无限制 |
| 分类 | ❌ 无结构 | category + tags 维度 |
| 搜索 | ❌ 仅文本 grep | FTS5 关键词 + HRR 近似匹配 |
| 推理 | ❌ 不支持 | probe / reason / contradict |
| 信任评分 | ❌ 不支持 | fact_feedback 训练 |
| 自动注入 | 每次 prompt 全量 | 按需查询 |
| 实体关联 | ❌ 不支持 | entities + fact_entities |
📐 数据模型
facts 表
├── fact_id INTEGER 主键
├── content TEXT 事实内容(FTS 索引)
├── category TEXT 分类:user_pref / tool / project / general
├── tags TEXT 逗号分隔标签
├── trust_score REAL 信任值 0-1,初始 0.5
├── retrieval_count INT 检索次数
├── helpful_count INT 有帮助次数
├── created_at DATETIME
├── updated_at DATETIME
└── hrr_vector BLOB 1024 维 HRR 向量编码
entities 表 → 知识图谱节点
fact_entities 表 → 事实 ↔ 实体 多对多关联
facts_fts 虚拟表 → FTS5 全文搜索引擎
🎯 工具使用指南
📝 fact_store — 核心操作
| 操作 | 用途 | 示例场景 |
|---|---|---|
add |
存储事实 | 偏好、环境、项目约定 |
search |
FTS 检索 | "Trilium" → 5 条结果 |
probe |
实体全量查询 | probe("user") → 所有画像 |
related |
实体邻接探索 | 某人的关联项目 |
reason |
多实体代数推理 | 交集推导隐藏关系 |
contradict |
矛盾检测 | 发现冲突的旧事实 |
update |
修改 + 信任调整 | 更正过时信息 |
remove |
删除失效事实 | 清理存档标记 |
⭐ fact_feedback — 信任训练
每次使用事实后训练系统:
fact_feedback(action='helpful', fact_id=2) # ✅ 准确 → 信任值上升
fact_feedback(action='unhelpful', fact_id=5) # ❌ 过时 → 信任值下降
📌 memory 工具 — 简写入口
memory(action='add', target='memory')→ 等价于fact_store(category='general')memory(action='add', target='user')→ 等价于fact_store(category='user_pref')
📈 当前数据分布
| 分类 | 数量 |
|---|---|
| 🧰 tool(操作类) | 6 |
| 👤 user_pref(用户偏好) | 6 |
| 📂 general(通用) | 2 |
| 📊 总计 | 15 |
🔬 HRR 向量深入:零 Embedding 模型
核心事实:Holographic Memory 完全不调用任何 Embedding 模型(如 OpenAI ada-002、sentence-transformers 等)。
HRR(Holographic Reduced Representations)是一种经典符号 AI 方法(Plate 1991),纯代数运算:
每个词 → 预生成的随机向量(正态分布,固定种子)
组合("Trilium" ⊛ "ETAPI")
→ circular convolution(循环卷积)绑定两个向量
→ superposition(加法)累积语义
结果:一个 1024 维 float64 向量(8KB),微秒级完成
| 对比 | Neural Embedding | HRR (Hermes) |
|---|---|---|
| 计算 | Transformer 前向传播 | 随机向量 + 循环卷积 |
| 硬件 | GPU / API 调用 | 纯 CPU,0 外部依赖 |
| 语义深度 | 深("苹果"≈"水果") | 浅(结构组合,无语义泛化) |
| 速度 | 毫秒~秒级 | 微秒级 |
| 空间 | O(n) 随文本增长 | O(1) 固定 8KB/条 |
实际检索中 FTS5 是检索主力(精确关键词匹配),HRR 做轻量近似匹配和聚类辅助。两者独立打分后加权合并。「向量相似度」不等于神经网络 embedding——HRR 的"向量"和 LLM embedding 是两套完全不同的技术。
💡 最佳实践
- 🏷️ 善用标签 — tags 是过滤维度,如 "trilium, etapi, auth" 比单标签更精确
- 📂 合理分类 — user_pref / tool / project / general 四类各司其职
- ✂️ 原子化事实 — 每条聚焦一个主题,不塞无关信息
- 🔁 定期反馈 — 用 fact_feedback 训练 AI 记忆的准确度
- 🧹 清理过时 — 过时事实用 update 修正或 remove 删除
- 🔄 技能联动 — 复杂流程存为 skill,简单事实存 memory
⚡ 查询流程
用户提问
│
├→ FTS5 全文检索(SQLite 内置,精确关键词)
│ └→ "Trilium" → 匹配含 Trilium 的事实
│
└→ HRR 向量近似匹配(纯代数,不调模型)
├→ 查询文本 → 1024 维 HRR 向量
└→ dot product 与全部事实
└→ 按相似度排序
两道结果加权合并 → 信任过滤 → 回答
⚙️ 配置参考
# config.yaml
memory:
memory_enabled: true
user_profile_enabled: true
memory_char_limit: 2200 # 旧系统上限
user_char_limit: 1375 # 旧系统上限
provider: holographic # ✨ 核心开关
nudge_interval: 10
flush_min_turns: 6
最后更新: 2026-05-14 · db: /opt/data/memory_store.db · provider: holographic