memoryweave/DESIGN-v2-llm-optimizer.md

12 KiB
Raw Blame History

织忆 v2 — LLM 驱动的自优化系统

版本v2.0.0-draft 状态:待评审 基于v1.0.0-stable


1. 背景与目标

1.1 现状问题

v1 版本中织忆各个模块distill、consolidate、recall各自为政没有全局感知和自主优化能力

commit → distill被动一次一条
     ↓
consolidate定时固定流程不感知状态
     ↓
质量回溯采样20条不闭环
     ↓
recall独立系统

核心矛盾LLM 没有被用来管理织忆,参数全靠手设,异常靠牧尘发现。

1.2 升级目标

  1. LLM 全局巡检 — 主动发现全流程堵点和异常
  2. 参数自动调优 — 基于指标自动调整,无需手设
  3. Hermes 监督汇报 — 我执行操作,牧尘知情,重大决策上报
  4. 可回滚 — 任何时候可切回 v1.0.0-stable

1.3 设计原则

原则 说明
成本优先 无异常不调用 LLM用指标驱动触发
我执行 LLM 发现/建议,我执行操作,不让它直连数据
可观测 每次决策记录 JSONL + git commit
轻量触发 规则引擎处理常见情况LLM 只处理复杂因果

2. 系统架构

2.1 角色分工

┌─────────────────────────────────────────────────────┐
│  织忆 v2 独立部署包(可部署在其他机器)               │
│                                                     │
│  ┌─────────────────────────────────────────────┐   │
│  │  LLM Agent独立运行不依赖 Hermes         │   │
│  │  ├─ 自己的 cronjob每 60 分钟自检)          │   │
│  │  ├─ 规则引擎:自动调参                       │   │
│  │  ├─ LLM 巡检:复杂因果自主决策               │   │
│  │  └─ 自主调用织忆 API 执行操作                │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
│  决策日志 → git commit → 飞书通知牧尘              │
└─────────────────────────────────────────────────────┘
          ↓(飞书通知,仅重大决策)
┌─────────────────────────────────────────────────────┐
│  Hermes可选不参与运行                         │
│  ├─ 旁听重大决策(飞书收到通知)                    │
│  └─ 牧尘可通过 Hermes 转发指令给 LLM Agent          │
└─────────────────────────────────────────────────────┘

2.2 独立性设计

LLM Agent 脱离 Hermes 独立运行的关键点:

  • 自己的定时器systemd timer 或 cronjob
  • 自己持有织忆 API 地址和认证
  • 自己管理 LLM API可独立配置模型和端点
  • 飞书机器人直接通知牧尘,不经过 Hermes 中转
  • 部署时只需修改配置文件,无需改动 Hermes

2.3 与 v1 的关系

  • v1 的各个 API 和逻辑保持不变,作为执行层
  • v2 在 v1 之上加了一层"调度 + 巡检"逻辑
  • v2 的调度器用 cronjob 实现,调用 v1 的已有 API

3. 触发机制

3.1 指标驱动(非定时)

每 60 分钟读取一次状态(现有 cronjob 织忆状态看板),判断是否触发巡检:

触发条件 说明
recall 命中率连续 2 次下降 需要巡检 recall 质量
gap_detected 堆积 > 5 条未处理 需要巡检 recall gap
distill 队列积压 > 20 条 需要巡检 distill 瓶颈
consolidate 质量分 < 0.6 需要巡检聚类/质量回溯
冲突堆积 > 3 条 需要巡检冲突处理
规则引擎连续 3 次调参无效 需要 LLM 分析复杂因果

无异常时完全不调用 LLM,不花额外费用。

3.2 手动触发

牧尘可以随时说"巡检织忆",我会立即执行一次完整巡检。


4. 参数自动调优

4.1 参数列表

参数 位置 默认值 正常范围 调整粒度
dbscan_epsilon consolidate 0.5 0.31.5 ±0.1
dbscan_min_points consolidate 3 210 ±1
decay_rate tuning.go 0.015 0.0050.05 乘/除 1.2
gap_threshold tuning.go 3 110 ±1
consolidate_after tuning.go 50 20200 ±10
prune_threshold consolidation_pipe.go 0.15 0.050.5 ±0.05

4.2 规则引擎调参(无需 LLM

规则引擎根据指标直接调整参数:

IF recall 命中率下降 AND noise_points > 总数 30%:
  → epsilon += 0.1

IF gap 堆积 > 5 AND gap_threshold 连续 2 次调低无效:
  → 触发 LLM 巡检

IF distill 质量分下降 AND decay_rate 最近 7 天内未调:
  → decay_rate /= 1.2

IF 修剪节点数 / 总节点数 > 20%:
  → prune_threshold += 0.05

4.3 LLM 辅助调参

规则引擎遇到复杂因果时,调用 LLM

触发条件:规则引擎连续 3 次调参后指标未改善
输入:系统手册 + 当前指标快照 + 调参历史 + 异常事件
LLM 输出:
  {
    "analysis": "根因分析",
    "action": "调参 / 重蒸 / 合并 / 其他",
    "parameters": { "epsilon": 0.6 },
    "reason": "..."
  }

4.4 调参执行流程

规则引擎判断需要调参
     ↓
读取当前参数值
     ↓
应用调整(写入 tuning.go 或调用 API
     ↓
记录到 llm-tuning-log.jsonl
     ↓
git commit "llm-tune: epsilon 0.5→0.6"
     ↓
下次指标采样时判断是否生效

5. LLM 系统手册

5.1 手册内容

触发 LLM 巡检时,注入以下上下文:

你是织忆记忆系统的巡检员,负责发现全流程的堵点和异常。

【系统架构】
- distill记忆蒸馏commit 时被动触发,将长对话压缩为记忆
- consolidate记忆整合定时DBSCAN 聚类 + 剪枝 + 衰减校准 + 质量回溯)
- recall记忆召回查询时向量检索
- graph图谱管理实体/关系/冲突

【参数说明】
- dbscan_epsilon聚类半径影响聚类数量和 noise 比例
- dbscan_min_points最小点数影响核心点判定
- decay_rate遗忘衰减率值越大记忆衰减越快
- gap_thresholdrecall gap 感测阈值,连续 N 次 miss 才记录
- prune_threshold图谱剪枝权重阈值

【正常范围】
- recall 命中率 > 70%
- noise_points / 总数 < 20%
- distill 质量分 > 0.6
- gap 堆积 < 5 条
- 冲突 < 3 条堆积

【约束】
- 不要轻易触发全量重蒸,成本高
- 优先用规则调参,复杂情况才用 LLM
- 每次操作记录到 /home/muc/projects/memoryweave/ops/llm-tuning-log.jsonl

【当前状态】
{timestamp}
{metrics_snapshot}
{recent_events}
调参历史:{tuning_history}

5.2 手册存放位置

/home/muc/projects/memoryweave/ops/ops-manual.md

6. 决策日志

6.1 日志格式JSONL每行一条

{"ts":"2026-06-09T03:00:00Z","type":"parameter_tune","param":"dbscan_epsilon","old":"0.5","new":"0.6","reason":"recall命中率下降noise>30%","trigger":"rule_engine","result":"pending","model":"minimaxai/minimax-m2.7"}
{"ts":"2026-06-09T04:00:00Z","type":"llm_inspection","trigger":"gap堆积>5","analysis":"根因是gap_threshold设置过低","actions":["gap_threshold+=1"],"model":"minimaxai/minimax-m2.7"}

6.2 文件位置

/home/muc/projects/memoryweave/ops/llm-tuning-log.jsonl

6.3 Git 版本化

每次有决策写入后,提交一次:

git add ops/llm-tuning-log.jsonl
git commit -m "llm-tune: epsilon 0.5→0.6 (recall下降触发)"

7. LLM Agent 的运行方式

7.1 自主 Loop独立于 Hermes

LLM Agent 独立运行,通过 systemd timer 每 60 分钟自检:

systemd timer每 60 分钟):
  ├─ 读取指标(/api/v1/stats
  ├─ 规则引擎判断
  │   └─ 可处理 → 自动调参 → 记录日志
  │   └─ 复杂因果 → 调用 LLM 巡检
  └─ LLM 巡检结果 → 执行操作 → 记录日志
     └─ 重大决策 → 飞书机器人直接通知牧尘

7.2 飞书直接通知牧尘

LLM Agent 拥有自己的飞书机器人,重大决策不经过 Hermes 直接通知牧尘:

决策类型 是否通知
小调参epsilon ±0.1 静默
正常调参decay_rate ±20% 静默
大幅调参decay_rate ±50%以上) 飞书通知
触发全量重蒸 飞书通知
连续 3 次调参无效 飞书通知
发现系统性问题distill 质量持续下降) 飞书通知

7.3 汇报格式(飞书)

🤖 织忆 LLM 巡检报告

时间2026-06-09 08:00
发现问题recall 命中率下降至 62%,连续 2 次调参无效
分析:根因是 DBSCAN epsilon 过小,导致记忆碎片化
操作epsilon 0.5→0.7,触发 consolidate full
建议:观察 3 天,如未改善考虑扩大 rerank 范围

7.4 Hermes 的位置

Hermes 不参与 LLM Agent 的运行,只在以下场景介入:

  • 牧尘通过飞书问 Hermes "织忆最近怎么了"→ Hermes 查询日志回答
  • 牧尘让 Hermes "帮看看织忆的状态"→ Hermes 调用 LLM Agent 的状态 API
  • LLM Agent 通知牧尘后,牧尘追问 Hermes → Hermes 解读

8. 回滚机制

8.1 回滚到 v1

cd /home/muc/projects/memoryweave
git checkout v1.0.0-stable
git reset --hard
systemctl --user restart zhiyid

8.2 v1.0.0-stable 内容

commit: fix: add clusters_found/noise_points/quality_score to consolidate API
tag: v1.0.0-stable

8.3 v2 开发分支

主开发分支main当前
v1 稳定版v1.0.0-stabletag
v2 发布后打 tagv2.0.0-stable

9. 实施计划

Phase 1日志基础设施v2 前置)

  • 创建 ops/llm-tuning-log.jsonl
  • 创建 ops/ops-manual.md
  • 实现 git commit 封装

Phase 2LLM Agent Loop

  • 实现 cronjob 驱动的自主巡检
  • 实现规则引擎自动调参
  • 实现 JSONL 写入 + git commit

Phase 3Hermes 旁听汇报

  • 实现飞书重大决策上报
  • 实现牧尘手动巡检入口(飞书 → Hermes → LLM Agent

10. 待确认问题

  1. 调参上限 — LLM 一次调整不超过一个参数,幅度不超过 ±50%
  2. 手动巡检入口 — 牧尘说"巡检织忆"→ LLM Agent 自己的飞书机器人直接响应
  3. LLM Agent 用的模型 — 和织忆共用同一个 LLM APILLM_ENDPOINT / LLM_MODEL 环境变量)

11. 实施计划

Phase 1日志基础设施v2 前置)

  • 创建 ops/llm-tuning-log.jsonl
  • 创建 ops/ops-manual.md
  • 创建 ops/llm-agent/ 目录LLM Agent 代码)
  • 实现 git commit 封装

Phase 2LLM Agent 独立服务

  • 实现 systemd timer + service
  • 实现指标读取 + 规则引擎调参
  • 实现 LLM 巡检调用
  • 配置独立飞书机器人

Phase 3部署独立运行

  • 配置文件(织忆 API 地址、LLM 端点、飞书机器人)
  • 部署在其他机器上验证
  • 验证脱离 Hermes 自主运行

文档状态:已保存,待将来需要时实现 v2

状态说明v2 方案已完整设计,但因当前织忆运行正常、规模不大,暂不实现。先用监控报警最小闭环。 需要时执行:git checkout main && cat DESIGN-v2-llm-optimizer.md