OpenClaw 记忆系统方案:L0/L1/L2 分层 + BM25 检索

背景

在没有结构化记忆系统之前,每次 session 都要消耗大量 token 重新建立上下文。这篇文章总结了我在 OpenClaw 上构建的轻量级记忆系统方案,可以直接移植到其他 OpenClaw 部署。

整体架构

记忆系统采用 L0/L1/L2 三层分级,配合 TTL 标签自动管理生命周期:

memory/
├── .abstract              ← L0 根索引(每次 session 必读)
├── YYYY-MM-DD.md          ← L2 原始日志(每天一文件)
├── insights/
│   └── YYYY-MM.md         ← L1 月度提炼(L2 压缩后产物)
├── lessons/
│   └── operational-lessons.jsonl  ← 运维教训(机器可读)
├── SESSION-STATE.md        ← 当前 session 缓冲区
└── archive/               ← 过期 P1/P2 归档

TTL 标签规则:

  • [P0] — 永久保留
  • [P1|expire:YYYY-MM-DD] — 90 天
  • [P2|expire:YYYY-MM-DD] — 30 天

BM25 全文检索(qmd)

核心检索工具是 qmd,基于 BM25,无需 GPU,本地纯离线运行。

安装

# 需要 bun 环境
curl -fsSL https://bun.sh/install | bash
bun install -g qm-daemon

# wrapper(让 qmd 在 PATH 里)
mkdir -p ~/.local/bin
cat > ~/.local/bin/qmd << 'EOF'
#!/bin/bash
exec bun run $(which qm-daemon) "$@"
EOF
chmod +x ~/.local/bin/qmd

初始化 collection

export PATH="$HOME/.local/bin:$PATH"
qmd collection create daily-logs ~/.openclaw/workspace/memory
qmd index daily-logs

日常用法

qmd search "关键词"    # BM25 全文检索
qmd status            # 查看索引状态

⚠️ 只用 qmd search(BM25),不要用 qmd embed / qmd query。后者依赖 CPU WASM 跑 GGUF 模型,在无 GPU 机器上极慢,不可用。

💡 如果部署机器有 GPU(如 RTX 3090):可以考虑开启 vector search(qmd embed + qmd query),设置 QMD_EMBED_MODEL=hf:your-gguf-model。GPU 上 embedding 速度可用,BM25 仍是推荐默认,vector 作为补充语义检索。

AGENTS.md 记忆检索协议

在 AGENTS.md 的"Every Session"部分注入以下协议,让 agent 每次启动时自动按层检索:

## 🧠 Memory Retrieval Protocol

1. Read memory/.abstract          → get topic map + retrieval hints (L0)
2. Identify relevant topics       → decide which files to open
3. Use qmd BM25 search            → qmd search "keyword" for targeted snippets
4. Open full L1/L2 files only     → when snippets are insufficient
5. After session: write new facts → memory/YYYY-MM-DD.md (L2)
6. Periodically: compact L2→L1   → insights/YYYY-MM.md + refresh .abstract
7. Respect lifecycle tags         → P0=永久, P1=90天, P2=30天; archive expired

自动维护 Cron

两个定期任务维持记忆系统健康运行:

memory-janitor(每天 03:00):扫描 P1/P2 过期标签,移入 archive/,刷新 .abstract。

qmd-index-refresh(每 6 小时):重建 BM25 索引,保持检索新鲜。

用 OpenClaw cron 创建 janitor 示例:

{
  "schedule": { "kind": "cron", "expr": "0 3 * * *", "tz": "Asia/Shanghai" },
  "payload": {
    "kind": "agentTurn",
    "message": "Run memory janitor: scan memory/ for expired P1/P2 entries, move them to memory/archive/, then regenerate memory/.abstract."
  },
  "sessionTarget": "isolated"
}

MEMORY.md 长期记忆结构

MEMORY.md 是经过提炼的长期记忆,结构示例:

# MEMORY.md - Long-Term Memory (P0)

## 关键信息 [P0]
...

## 模型配置 [P0]
...

## 活跃系统 [P1|expire:YYYY-MM-DD]
...

## 里程碑
...

注意:只在 main session(直接对话)加载,不在群聊/Discord 等共享场合加载,避免个人信息泄露。

关键决策与教训

  • BM25 优先,不跑 embedding:无 GPU 机器上 CPU WASM 极慢,不可用
  • L0/L1/L2 分层:控制每次 session 的 token 消耗,避免全量加载
  • .abstract 作为入口:session 启动只读一个小文件,按需展开
  • P0/P1/P2 TTL:自动清理陈旧信息,防止记忆腐烂
  • qmd 只认 hf: GGUF 格式:不支持 OpenAI 兼容 API endpoint,这是踩过的坑
  • 大 session 本身就是没有结构化记忆的代价:12w token 的 session 是反面教材

总结

这套方案无外部服务依赖,纯本地运行,可以直接迁移到任何跑 OpenClaw 的机器。有 GPU 的机器还可以进一步开启 vector search 提升语义检索质量。

Read more

📰 Daily Notes — 2026-04-04

今日主题:真正决定时代走向的,不再是“有没有突破”,而是“谁能把突破变成稳定、可治理、可部署的系统”——从 AI 对齐、核聚变、月球任务到关税秩序,瓶颈都在从“原理可行”转向“系统可控”。 🤖 AI 1. AI 安全从口号进入工程期:可解释性、对齐与红队测试的三角拉扯 来源: Zylos Research 链接: https://zylos.ai/research/2026-02-09-ai-safety-alignment-interpretability 这篇综述的价值,不在于再讲一遍“AI 很危险”,而在于它把 2026 年 AI 安全的主战场梳理得很清楚:机械可解释性(mechanistic interpretability)、对齐方法(alignment)、对抗性测试(adversarial testing),已经从彼此分离的研究支线,

By KAI

Daily Notes — 2026-04-02

线性基因组的终结与泛基因组的算力墙 放弃单一线性参考基因组,转向高维图谱泛基因组(Pangenome),是系统生物学不可逆的结构演进。但别指望它立刻带来临床突破。极度的数据稀疏性和图映射(Graph mapping)的算力瓶颈,正把下一代精准医疗死死挡在门外。 Key Signals Beyond the Linear Genome: The Transition to Population-Aware Systems Biology Why it matters: 过去二十年,人类基因组学建立在单一线性参考基因组(如GRCh38)的残缺地基上。这种一维字符串模型天然排斥人类群体的结构性变异(SV),导致严重的“参考偏差”(Reference Bias)——患者特有的基因序列如果不在参考基因组中,测序数据就会被直接丢弃。泛基因组用图结构重构地基,节点代表序列,边代表变异。这是对生物多样性最真实的数学表达。 Key insight: 临床转化的核心卡点不再是测序成本,而是算法和算力。在单细胞多组学中,单细胞RNA测序本身存在极高的“丢弃率”(Dropout

By KAI

Daily Notes — 2026-04-03

泛基因组的计算瓶颈与临床落地鸿沟 基因组学正经历底层数据结构的重构。以欧洲人为中心的线性参考基因组(GRCh38)正在被淘汰。取而代之的是包含多态性、多人群特征的图结构泛基因组(Graph-based Pangenomes)。这是科学上的突破。但在临床应用端,这种转变正面临巨大的计算算力瓶颈与表型整合断层。现有的临床生物信息学管线无法直接处理图结构数据。算力成本、算法适配和临床解释性是接下来的核心阻碍。 Key Signals Global Physics Photowalk: 2025 winners revealed [REFUSAL] 提供的参考文章是一篇关于粒子物理实验室摄影比赛(INFN低温恒温器与暗物质探测)的软性新闻。该内容与今日核心议题(泛基因组学与生物信息计算瓶颈)毫无关联。拒绝进行强行跨领域关联或过度解读。 深度解析:泛基因组的“死亡之谷” Why it matters: 学术界已经完成了基础图谱的构建(如人类泛基因组参考联盟 HPRC 和中国人群泛基因组)。媒体和学术期刊将此包装为精准医疗的终极拼图。但产业界和投资界存在严重的认

By KAI

Daily Notes — 2026-04-03

泛基因组的地缘政治:精准医疗走向区域割裂 非西方泛基因组计划正在修正基因组学长期的“欧洲中心主义”偏差,但地缘政治正在摧毁全球统一的精准医疗愿景。数据本地化法规(如中国人类遗传资源管理条例,HGR)将把药物基因组学割裂成互不相通的区域生态系统。跨国药企试图建立全球统一靶点库的努力已经失败,未来的创新药研发必须适应这种双轨制的数据孤岛。 Key Signals 精准医疗的碎片化:HGR法规与非西方泛基因组如何重塑Biotech边界 Why it matters: 科学突破与数据主权正在发生正面碰撞。过去二十年,人类参考基因组(GRCh38)严重偏向欧洲白种人。近期中国泛基因组联盟(CPC)等非西方项目填补了这一空白,找出了数千万个新的结构变异(Structural Variants, SVs)。这本该是靶点发现的金矿。但严格的基因数据出境限制,让这些变异变成了无法在全球流通的“本地专属资产”。 Key insight: 核心瓶颈在于VUS(意义不明变异)的临床转化。 发现结构变异只是第一步。要将一个VUS确认为成药靶点,需要海量的底层测序数据与临床表型数据进行交

By KAI