织忆 (MemoryWeave) — 独立记忆基础设施
Go + Rust 双二进制架构 | port 7821 | 版本 v0.1.0-dev
Gitea: http://192.168.123.11:3000/xiaoxue_admin/memoryweave/
织忆是多 Agent 系统的共享记忆层。它提供语义记忆检索、知识图谱导航、自动蒸馏整合三大核心能力,为 Hermes Agent、OpenClaw、Obsidian 等多客户端提供统一的记忆读写接口。
织忆不是小唯系统的子模块——它是独立的基础设施服务。 小唯系统(xiaowei-system)是上层应用,织忆是底层存储引擎,两者代码独立、仓库独立、进程独立,通过 HTTP API 交互。
相关项目关系图
┌─────────────────────────────────────────────────────────┐
│ 基础设施层(独立仓库,独立进程) │
│ │
│ 织忆 memoryweave TencentDB │
│ /tmp/memoryweave/ ~/.memory-tencentdb/ │
│ port 7821 port 8420 │
│ zhiyid + LanceDB tdai-gateway │
│ + bge-embed Node.js │
└────────────────────┬────────────────────────────────────┘
│ HTTP API(localhost)
▼
┌─────────────────────────────────────────────────────────┐
│ 上层应用层(小唯系统) │
│ │
│ ~/.hermes/ ← xiaowei-system 仓库(Git 版本控制) │
│ │
│ ┌─────────┐ ┌──────────┐ ┌─────────┐ ┌──────────┐ │
│ │ Soulful │ │ daemon │ │ cron │ │ skills │ │
│ │ 牵挂 │ │ 持久意识 │ │ 定时任务│ │ 仓颉技能 │ │
│ │ 心迹 │ │ L1→L6 │ │ 自检 │ │ 股票投研 │ │
│ │ 画像 │ │ 蒸馏 │ │ 升级 │ │ │ │
│ └─────────┘ └──────────┘ └─────────┘ └──────────┘ │
│ │
│ daemon.py → 统一写入 → llm_context.json(L7统一层) │
└─────────────────────────────────────────────────────────┘
▲
│ daemon.py 读取
│
┌────────────────────┴────────────────────────────────────┐
│ 参考架构项目(GitHub/Gitea) │
│ │
│ agent-memory-skill ← tier分层/线性衰减 参考 │
│ memory-os ← 7层记忆架构 参考 │
└─────────────────────────────────────────────────────────┘
各项目详情
织忆 memoryweave(底层存储引擎)
小唯系统 xiaowei-system(上层应用)
Soulful(牵挂/心迹/画像) 是 xiaowei-system 的子模块,数据文件在 ~/.hermes/soulful/:
cares-queue.json — 牵挂队列
heart-traces.jsonl — 心迹(重要时刻记录)
user-profile.json — 用户画像(含 distilled_rules)
TencentDB memory-tdai(对话记忆)
| 属性 |
值 |
| 源码位置 |
~/.memory-tencentdb/memory-tdai/ |
| Gitea |
无(未版本控制) |
| 进程 |
tdai-gateway(port 8420,Node.js) |
| 数据 |
memory.db(对话)+ vectors.db(向量) |
| API |
http://127.0.0.1:8420/ |
| 小唯调用 |
daemon.py 通过 /capture 和 /recall 写入/读取 |
参考项目
| 仓库 |
用途 |
xiaoxue_admin/agent-memory-skill |
tier 分层、线性衰减架构参考 |
xiaoxue_admin/memory-os |
7层记忆操作系统架构参考 |
安装顺序
第一步:织忆(底层)
↓
第二步:TencentDB(对话存储)
↓
第三步:小唯系统(上层应用,包含 Soulful)
安装顺序:织忆 → TencentDB → 小唯系统。 三者通过 HTTP API 互联,代码完全解耦。
架构依赖
小唯系统(daemon.py)
├── /capture (TencentDB) ← L3/L4 scenes 存储
│ └── session_key + user_content + assistant_content
├── http://127.0.0.1:7821 ← 织忆 L1/L2 recall
│ └── X-API-Key: zhiyi-dev-key-2026
├── ~/.hermes/soulful/ ← Soulful L5/L6 读写
│ └── cares + heart-traces + user-profile
└── → 统一写入 ~/.hermes/llm_context.json(L7)
| 项目 |
仓库 |
定位 |
依赖关系 |
| 织忆 memoryweave |
xiaoxue_admin/memoryweave |
底层存储引擎(zhiyid + LanceDB + bge-embed) |
被依赖方 |
| 小唯 xiaowei-system |
xiaoxue_admin/xiaowei-system |
上层应用(daemon + cron + 记忆蒸馏) |
依赖方 |
安装顺序:先织忆,再小唯系统。 小唯系统通过 localhost:7821 调用织忆 API。
# 小唯系统调用织忆示例
curl -s -H "X-API-Key: zhiyi-dev-key-2026" \
-d '{"query":"牧尘偏好","top_k":3}' \
http://127.0.0.1:7821/api/v1/recall
架构总览
┌──────────────────────────────────────────────────────────────┐
│ Hermes Agent (Plugin) │
│ plugins/memory/zhiyi/ — 7 tools + 自动注入 + 社交关闭 │
└──────────────────────────┬───────────────────────────────────┘
│ HTTP (localhost:7821)
▼
┌──────────────────────────────────────────────────────────────┐
│ zhiyid (Go daemon, port 7821) │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ REST API │ │ 蒸馏引擎 │ │ 冲突治理 / 缺口检测 │ │
│ │ ~84 端点 │ │ distill/ │ │ conflict + gap │ │
│ └──────┬──────┘ └──────┬───────┘ └──────────────────────┘ │
│ │ │ │
│ │ ┌──────────▼───────────┐ │
│ │ │ SQLiteGraphStore │ │
│ │ │ (7014 节点/61058 边)│ │
│ │ └──────────────────────┘ │
│ │ │
│ │ Unix Socket (/tmp/zhiyi-ipc.sock) │
└─────────┼─────────────────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────┐
│ zhiyi-consolidate (Rust sidecar) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌────────────────────┐ │
│ │ LanceDB 原生 │ │ DBSCAN 聚类 │ │ Embedding + │ │
│ │ 读写 │ │ 衰减回归 │ │ Rerank 管线 │ │
│ └──────┬───────┘ └──────────────┘ └────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────┐ │
│ │ /var/lib/memoryweave/ (LanceDB) │ │
│ │ memories: 3510 条 / episodes: 73 │ │
│ └─────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
┌──────────────────────────┐
│ bge-embed (port 8000) │ ← Python ONNX 推理
│ BGE-M3 embedding 服务 │
└──────────────────────────┘
语言分工
| 组件 |
语言 |
原因 |
| HTTP API + 业务逻辑 |
Go |
goroutine 高并发,单二进制 |
| LanceDB + 向量管线 |
Rust |
原生 lancedb crate,零 FFI |
| Embedding 推理 |
Python (ONNX) |
BGE-M3 模型,最佳推理生态 |
| Hermes 插件 |
Python |
Hermes MemoryProvider 接口 |
功能特性
语义记忆(commit / recall)
POST /api/v1/commit — 提交记忆(需 agent_id + content)
POST /api/v1/recall — 语义检索(支持 hybrid / keyword / semantic 三模式)
- 1024 维向量嵌入(BGE-M3)
- MMR diversity 默认 0.3,结果去重
- freshness 生命周期:
fresh → verified
- 支持 namespace 隔离
知识图谱(Navigate / Stats)
POST /api/v1/graph/navigate — BFS 节点关系遍历
GET /api/v1/graph/stats — 图谱统计
POST /api/v1/graph/query — 精确边查询
GET /api/v1/graph/pagerank — PageRank 排序
- SQLite 存储,7014 节点 / 61058 边
- 自动实体归一化(
n_ 前缀)
- 按关系类型分组 + 推荐探索建议
- 自然语言查询(
nl_query)
P0 — Recall 降级策略
当 bge-embed (8000) 或 Rust IPC sidecar 不可用时,recall 自动降级到 graph.db 关键词搜索(FallbackTextSearch),返回 X-Fallback: graph 响应头。保证单点故障不导致全挂。
P1 — 自动注入钩子 + 社交关闭
queue_prefetch 后台线程自动查织忆 + 缓存(TTL 30s)
- 社交关闭检测:短消息、纯社交用语("好的" / "ok" / "👍")跳过注入
- 输出标记:
[织忆 Memory] / [织忆 Graph]
- 无缝融入 Hermes 对话流
P2 — 信任评分
graph_edges 表新增三列:
| 列名 |
类型 |
默认值 |
说明 |
trust_score |
REAL |
0.5 |
信任评分(贝叶斯先验) |
retrieval_count |
INTEGER |
0 |
被检索次数 |
helpful_count |
INTEGER |
0 |
被标记有用次数 |
评分公式:trust_score = helpful_count / retrieval_count(retrieval_count > 0 时)
P3 — CREATIVE.md 隔离
~/.hermes/CREATIVE.md 存储织忆工作记忆,插件 system_prompt_block() 自动加载标注为 [织忆 工作记忆](Ground Truth level 2),解决 memory 工具与织忆 plugin 的双写入冲突。
P4 — Ground Truth Prompt
SOUL.md 定义 4 级权威层级:
- Terminal 实时输出 — curl / 工具调用真实结果
- 注入记忆 —
[织忆 Memory] / [织忆 Graph](插件注入)
- 项目官方文档 —
docs/ / README / INSTALL
- 训练知识 — 模型权重中存储的通用知识
低层级不可推翻高层级。另有记忆反馈规则确保信任评分闭环。
P5 — Wiki 策展管线
scripts/wiki_curator.py 自动知识库管线:
- 扫描
~/mc/ 下 .md 文件,SHA-256 diff 跟踪
- 启发式提取:headings → 概念,bold / key phrases → 实体
- 写入织忆:概念
/commit(category=wiki),关系 /graph/edge
- 支持
--dry-run(预览)、--force(全量)、--llm(LLM 增强)
- 跳过 <500 字符文件和
_ 前缀文件
H1-H6 精度优化
| 编号 |
优化 |
状态 |
| H1 |
BM25 关键词评分(0.7 向量 + 0.3 关键词融合) |
✅ |
| H2 |
LLM Wiki 策展(--llm 模式,回退启发式) |
✅ |
| H3 |
自动信任评分(recall 后异步 UpdateEdgeTrustScores) |
✅ |
| H4 |
默认 MMR diversity = 0.3 |
✅ |
| H5 |
三模式搜索:hybrid / keyword / semantic |
✅ |
| H6 |
多级存储:LanceDB → SQLite → 内存三级降级 |
✅ |
cli-anything 命令行伴侣
织忆原生集成 cli-anything 框架,将 Go 和 Rust API 封装为 CLI 子命令。支持:
zhiyi commit / zhiyi recall — 记忆操作
zhiyi navigate / zhiyi stats — 图谱查询
zhiyi health — 健康检查
- 详见
cli-anything/ 目录
rag-skill 渐进式检索(新增)
三段式检索架构:
用户查询 → keyword 粗筛 → semantic 精排 → rerank 重排序
- 粗筛层:BM25 关键词倒排索引,快速缩减候选集
- 精排层:BGE-M3 语义嵌入,向量相似度排序
- 重排序层:cross-encoder rerank,微调 top-K 结果
- 默认返回 top-K 结果,支持
top_k 参数调优
快速开始
前置依赖
- Go 1.21+
- Rust 1.75+(仅需构建 zhiyi-consolidate)
- Redis 7.0+(可选,默认降级为内存模式)
- Python 3.10+(bge-embedding 服务)
构建
# 克隆
git clone http://192.168.123.11:3000/xiaoxue_admin/memoryweave.git
cd memoryweave
# 构建 Go daemon(zhiyid)
make build
# 构建 Rust sidecar(可选)
make build-rust
# 构建 CLI 工具
make build-cli
运行
# 方式一:直接运行
~/.local/bin/zhiyid
# 方式二:systemd(用户级,推荐)
systemctl --user enable --now zhiyid
systemctl --user enable --now bge-embed
systemctl --user enable --now zhiyi-consolidate
curl http://localhost:7821/health
# 方式三:Docker
docker compose up -d
curl http://localhost:7821/health
验证完整链路
# 1) 健康检查
curl -s -H "X-API-Key: zhiyi-dev-key-2026" http://localhost:7821/api/v1/health
# 2) 提条记忆试试
curl -s -X POST -H "X-API-Key: zhiyi-dev-key-2026" \
-H "Content-Type: application/json" \
-d '{"agent_id":"a06","content":"Hello 织忆","metadata":{"source":"test"}}' \
http://localhost:7821/api/v1/commit
# 3) 搜一下
curl -s -X POST -H "X-API-Key: zhiyi-dev-key-2026" \
-H "Content-Type: application/json" \
-d '{"query":"织忆","top_k":3}' \
http://localhost:7821/api/v1/recall
# 4) 图谱统计
curl -s -H "X-API-Key: zhiyi-dev-key-2026" http://localhost:7821/api/v1/graph/stats
Hermes 插件安装
cp -r plugins/hermes-zhiyi ~/.hermes/hermes-agent/plugins/memory/zhiyi
uv pip install websocket-client
cd ~/.hermes/hermes-agent
python3 -c "from plugins.memory.zhiyi import HermesZhiYiMemoryProvider; \
p = HermesZhiYiMemoryProvider(); \
print(f'可用: {p.is_available()}, 工具数: {len(p.get_tool_schemas())}')"
配置参考
环境变量
| 变量 |
默认值 |
说明 |
PORT |
7821 |
API 监听端口 |
STORAGE_BACKEND |
lancedb |
存储后端:lancedb / sqlite / memory |
SQLITE_PATH |
/var/lib/memoryweave/memoryweave.db |
SQLite 数据库路径 |
LANCEDB_SOCKET |
/tmp/zhiyi-ipc.sock |
Rust IPC socket 路径 |
GRAPH_PATH |
/var/lib/memoryweave/graph.db |
图谱数据库路径 |
API_KEY |
— |
API 认证密钥 |
VLLM_ENDPOINT |
— |
Embedding 模型端点 |
BGE_MODEL_DIR |
— |
BGE-M3 ONNX 模型目录 |
RERANK_ENDPOINT |
— |
Rerank 模型端点 |
LLM_ENDPOINT |
— |
LLM 端点(蒸馏/自动修复用) |
LLM_MODEL |
— |
LLM 模型名称 |
LLM_API_KEY |
— |
LLM API Key |
STATIC_DIR |
内置静态文件 |
Web UI 静态文件目录 |
ZHIYI_WEB_UI_ROOT |
内置 HTML |
Web UI 入口路径 |
API 速查表
所有 /api/v1/* 接口需要 Header: X-API-Key: ***
健康检查
| 方法 |
路径 |
说明 |
| GET |
/health |
健康检查(无认证) |
| GET |
/api/v1/health |
健康检查(需认证) |
核心记忆
| 方法 |
路径 |
说明 |
| POST |
/api/v1/commit |
提交记忆 |
| POST |
/api/v1/recall |
语义检索(支持 mode=hybrid|keyword|semantic) |
| POST |
/api/v1/batch-commit |
批量提交 |
| GET |
/api/v1/memories |
列出记忆(分页) |
| POST |
/api/v1/feedback |
反馈(useful / not-useful / deprecate) |
统计
| 方法 |
路径 |
说明 |
| GET |
/api/v1/stats |
系统统计(total_memories, episodes 等) |
知识图谱
| 方法 |
路径 |
说明 |
| GET |
/api/v1/graph/stats |
图谱统计(节点数 / 边数 / 密度) |
| POST |
/api/v1/graph/navigate |
BFS 节点遍历(entity + max_hops) |
| POST |
/api/v1/graph/query |
精确边查询 |
| POST |
/api/v1/graph/nl_query |
自然语言图谱查询 |
| POST |
/api/v1/graph/edge |
添加关系边 |
| POST |
/api/v1/graph/edge/feedback |
边信任评分反馈 |
| GET |
/api/v1/graph/pagerank |
PageRank 节点排名 |
| POST |
/api/v1/graph/export |
导出图谱 |
| POST |
/api/v1/graph/cleanup |
脏数据清理(支持 dry_run) |
| GET |
/api/v1/cache/stats |
图谱缓存命中率 |
WebSocket
| 方法 |
路径 |
说明 |
| WS |
/api/v1/ws/{agent_id} |
实时记忆流订阅 |
管理接口
| 方法 |
路径 |
说明 |
| POST |
/api/v1/admin/consolidate |
手动触发记忆整合 |
| POST |
/api/v1/admin/forget |
删除记忆 |
| POST |
/api/v1/admin/backup |
创建备份 |
| GET |
/api/v1/admin/backups |
列出备份 |
| POST |
/api/v1/admin/restore |
恢复备份 |
| POST |
/api/v1/admin/distill/force |
强制蒸馏 |
| GET |
/api/v1/admin/audit |
审计日志 |
冲突治理
| 方法 |
路径 |
说明 |
| GET |
/api/v1/conflicts |
列出记忆冲突 |
| POST |
/api/v1/conflicts/resolve |
解决冲突 |
缺口检测
| 方法 |
路径 |
说明 |
| GET |
/api/v1/gaps |
列出记忆缺口 |
| POST |
/api/v1/gaps/detect |
检测缺口 |
| POST |
/api/v1/gaps/repair |
修复缺口 |
| POST |
/api/v1/gaps/close/{id} |
关闭缺口 |
蒸馏管理
| 方法 |
路径 |
说明 |
| GET |
/api/v1/distill/status |
蒸馏状态 |
| GET |
/api/v1/distill/queue |
蒸馏队列 |
| GET |
/api/v1/distill/quota |
蒸馏配额 |
L3 世界模型
| 方法 |
路径 |
说明 |
| GET |
/api/v1/l3/worldmodel |
获取世界模型 |
| POST |
/api/v1/l3/worldmodel |
更新世界模型 |
目录结构
memoryweave/
├── go/ # Go daemon(zhiyid)
│ ├── cmd/zhiyid/ # 主入口
│ ├── internal/
│ │ ├── api/ # HTTP 路由 + 端点(~84 端点)
│ │ │ └── routes/ # 路由实现(core, graph, ws, l3, ...)
│ │ ├── governance/ # 冲突治理、图谱存储、自动扩展
│ │ ├── storage/ # 存储引擎(lancedb, sqlite, redis, recall, ...)
│ │ ├── models/ # 数据模型
│ │ ├── distill/ # 蒸馏引擎
│ │ ├── consolidate/ # 记忆整合客户端
│ │ ├── selfoptimize/ # 自优化管线
│ │ ├── distributed/ # 分布式支持
│ │ └── metrics/ # 监控指标
│ └── zhiyid-new # 编译产物
├── rust/ # Rust sidecar(zhiyi-consolidate)
│ └── src/
│ ├── main.rs # IPC 监听 + 调度
│ ├── lancedb_ops.rs # LanceDB 原生读写
│ ├── embed.rs # Embedding 推理
│ ├── rerank.rs # Rerank 管道
│ ├── cluster.rs # DBSCAN 聚类
│ ├── decay_calibrate.rs # 衰减校准
│ ├── graph_prune.rs # 图谱剪枝
│ ├── quality_backtrace.rs # 质量回溯
│ └── report.rs # 报告生成
├── plugins/
│ ├── hermes-zhiyi/ # Hermes MemoryProvider 插件(7 工具)
│ │ └── __init__.py # v1.1.0: 自动注入 + 社交关闭
│ └── obsidian/ # Obsidian 侧边栏插件
├── scripts/ # 运维脚本
│ ├── wiki_curator.py # P5 Wiki 策展管线
│ ├── three-way-check.sh # 三方交叉健康检查
│ ├── verify-p0p1p2.sh # P0/P1/P2 一键验证
│ └── daily-check.sh # 每日巡检
├── deploy/ # 部署配置
│ └── systemd/ # systemd service 文件
│ ├── zhiyid.service
│ ├── bge-embed.service
│ └── zhiyi-consolidate.service
├── cli-anything/ # CLI 命令行伴侣集成
├── carriers/ # 载体(Obsidian / 飞书等)
├── proto/ # Protocol Buffers 定义
├── web-ui/ # Web 管理界面
├── docs/ # 设计文档 / 方案文档
├── tests/ # 集成测试
├── backups/ # 备份目录
├── skills/ # Hermes skills 定义
├── docker-compose.yml # Docker 编排
├── Makefile # 构建入口
├── DESIGN.md # 完整架构设计(v3.8)
├── INSTALL.md # systemd 详细安装步骤
├── BENCHMARK.md # 性能基准测试
└── VERSION # 版本文件
运维
进程管理
# 查看所有相关进程
ps aux | grep -E 'zhiyi|bge' | grep -v grep
# 查看端口
ss -tlnp | grep -E '7821|8000'
systemd 操作
# 状态检查
systemctl --user status zhiyid
systemctl --user status bge-embed
systemctl --user status zhiyi-consolidate
# 日志
journalctl --user -u zhiyid -f
journalctl --user -u bge-embed -f
journalctl --user -u zhiyi-consolidate -f
# 重启
systemctl --user restart zhiyid
健康检查
# 一键三方交叉验证(进程 + 端口 + 端点)
bash scripts/three-way-check.sh
# 或手动
curl -s -H "X-API-Key: zhiyi-dev-key-2026" http://localhost:7821/api/v1/health
curl -s http://localhost:8000/health # bge-embed
日志位置
| 进程 |
日志 |
| zhiyid |
/tmp/zhiyid.log / journalctl --user -u zhiyid |
| Rust sidecar |
/tmp/zhiyi-sidecar.log / journalctl --user -u zhiyi-consolidate |
| bge-embed |
journalctl --user -u bge-embed |
相关项目
- Hermes Agent — 织忆的主要消费者。通过
memory.provider: zhiyi 配置自动集成 7 个记忆工具。
- OpenClaw — 第二消费者。通过
openclaw-zhiyi-plugin/ 集成织忆记忆。
- Obsidian — 知识管理前端。通过
plugins/obsidian/ 侧边栏插件交互。
- cli-anything — 命令行伴侣。将织忆 API 封装为 CLI 子命令。
- Memory-OS — 竞品对比参考(7 层记忆架构)。详见
docs/memory-os-7-layer-comparison.md。
文档