Files
memory_research/Ktaohzk_OpenClaw三层记忆架构方案.md

9.0 KiB
Raw Permalink Blame History

OpenClaw 记忆系统优化研究报告

研究日期: 2026-02-17
研究者: 阿米狗AI Assistant
原方案作者: @Ktaohzk大三医学生
原始推文: https://x.com/Ktaohzk/status/2018987689790296254
原始代码: https://github.com/ktao732084-arch/openclaw_memory_supersystem-v1.0


一、研究背景

当前痛点

OpenClaw 默认记忆方案(MEMORY.md + memory/YYYY-MM-DD.md)在长期使用中存在以下问题:

问题 表现
记忆膨胀 MEMORY.md 持续增长,可达 8000+ tokens
检索噪音 返回"相关但无用"的内容
无结构 事实、推断、日志全部混在一起
无遗忘机制 旧信息不会自动降权,需手动清理
元认知缺失 无法区分"确定的事实"和"AI的推断"

研究目标

评估 @Ktaohzk 提出的"三层记忆架构"方案的可行性,并制定适合当前系统的优化路径。


二、方案概述:神经科学启发的三层记忆架构

作者用神经科学思路类比人脑记忆机制,将 AI 记忆系统重新设计为三层结构。

人脑类比

人脑机制 AI 对应设计
前额叶工作记忆(容量小,随时可用) Layer 1: < 2000 tokens每次对话注入
海马体长期记忆(容量大,按需检索) Layer 2: JSONL 结构化存储
情景记忆(原始事件,带时间戳) Layer 3: 双格式日志MD + JSONL
睡眠整合(碎片→长期记忆) Consolidation: 空闲期自动整理
遗忘曲线(重要的记得慢) 衰减公式: score × e^(-λ × days)

三层结构示意

┌──────────────────────────────────────────┐
│  Layer 1: 工作记忆(< 2000 tokens       │
│  每次对话直接注入 Prompt                   │
│  包含: 身份 / Top Facts / 近期事件         │
└──────────────────────────────────────────┘
              ▲ 按需检索
┌──────────────────────────────────────────┐
│  Layer 2: 结构化长期记忆JSONL          │
│  facts.jsonl  /  beliefs.jsonl           │
│  summaries.jsonl                         │
│  active/  ←→  archive/(分池管理)        │
└──────────────────────────────────────────┘
              ▲ Consolidation 提取
┌──────────────────────────────────────────┐
│  Layer 3: 原始事件日志(双格式)           │
│  2026-02-17.md人读                    │
│  2026-02-17.jsonl机读                 │
└──────────────────────────────────────────┘

三、核心设计解析

3.1 Fact vs Belief 区分(元认知)

最重要的设计之一,解决 AI"把猜测当事实"的幻觉问题:

类型 来源 置信度 使用方式
Fact 用户明确说过 0.91.0 直接引用
Belief AI 推断 0.30.8 商量口气,标注不确定
Summary 多条 Fact 聚合 动态 概括性引用

示例对比

  • "你之前提到你是医学生" → Fact高置信度直接说
  • "我记得你好像对神经科学感兴趣?" → Belief中置信度用问句

3.2 自动衰减机制(遗忘曲线)

不同类型记忆,衰减速度不同:

类型 衰减率 λ 半衰期 设计理由
Fact 0.008 ~87天 事实相对稳定
Belief 0.07 ~10天 推断需要快速验证或遗忘
Summary 0.025 ~28天 摘要中等时效
Event 0.15 ~5天 原始事件快速遗忘

衰减公式:

新权重 = 旧权重 × e^(-衰减率 × 天数)

效果:旧的、不重要的记忆自动降权,无需手动清理。

3.3 Consolidation记忆整合

触发条件20分钟无消息空闲期不影响正常对话。

7阶段整理流程

收集 → 筛选 → 提取 → 分类 → 衰减计算 → 归档 → 快照生成

核心:每次整理完成后,生成新的 Layer 1 快照(< 2000 tokens供下次对话注入。

3.4 智能检索 Router

多路检索策略:

  1. 关键词检索:基于关键词索引
  2. 实体检索:基于实体关系图
  3. Rerank:综合 匹配分数 × 0.4 + 重要性 × 0.3 + 记忆分 × 0.3
  4. 结果分级注入
    • 置信度 > 0.8 → 直接注入 Prompt
    • 置信度 0.50.8 → 带标记注入
    • 置信度 < 0.5 → 仅提供引用路径

四、代码评估

4.1 代码质量

  • 版本: v1.1.7(持续迭代中)
  • 规模: 500+ 行 Python多模块架构
  • 可靠性: 功能完整,有 fallback 机制

4.2 模块结构

memory-system-skill/
├── scripts/memory.py         # 核心 CLI500+ 行)
├── prompts/
│   ├── filter.md             # Phase 2 筛选 Prompt
│   ├── extract.md            # Phase 3 提取 Prompt
│   ├── verify_belief.md      # Phase 4b 验证 Prompt
│   └── snapshot.md           # Phase 7 快照 Prompt
└── templates/config.json     # 默认配置

4.3 实测性能

指标 传统方案 v1.0
每次对话 Token 消耗 30008000 < 2000↓60%
检索精准度 ~60% ~90%↑50%
记忆分类 Fact/Belief/Summary
自动衰减
元认知能力
单条记忆添加 即时 ~39ms
100条整理 手动 ~51ms

五、可行性评估

5.1 依赖分析

功能 依赖 我们现状
规则筛选Phase 2 基础版) 可用
实体识别Layer 12 可用
LLM 筛选Phase 2 增强版) OpenAI API 未配置
语义检索 Embedding API 未配置
衰减计算 可用
Consolidation 自动触发 Cron/heartbeat 可配置

关键结论原方案最强的特性LLM 增强筛选 + 语义检索)依赖 OpenAI API。纯规则版仍有价值但效果打折。

5.2 集成难度

现有系统OpenClaw 默认)

  • 文件记忆MEMORY.md + memory/YYYY-MM-DD.md
  • 向量搜索memory_search已禁用无 embedding key
  • Compaction + memoryFlush已配置
  • contextPruning今日已配置

集成该方案需要

  1. 将 Python 脚本部署到工作区
  2. 将 LLM 调用从 OpenAI 改为 Anthropic或适配当前 OAuth
  3. 配置 cron 任务触发 Consolidation
  4. 修改 AGENTS.md 的记忆读取逻辑,从 Layer 1 快照读取

六、建议方案

方案 A轻量借鉴立即可执行

不引入 Python 脚本,在现有文件结构里应用核心思路:

MEMORY.md 改造

## [FACTS] 确定事实(置信度 0.9+
- Ami 在马尼拉 [score: 0.95, added: 2026-01-29]
- 偏好中文沟通 [score: 0.90, added: 2026-01-29]

## [BELIEFS] 推断信念(置信度 0.5-0.8
- 可能对流媒体合租感兴趣 [score: 0.70, added: 2026-02-01]

## [PROJECTS] 项目
- iShare: /Users/mini/Work/ClaudeCowork/ [活跃]

手工衰减:每周 heartbeat 跑一次衰减评估,降权或删除低分记忆。

适合场景:立即落地,无需新工具,效果有限但实用。

方案 B完整集成需要 API Key

完整移植原方案,将 LLM 调用改为 Anthropic Claude通过现有 OAuth集成为 OpenClaw Skill。

步骤

  1. Fork 原代码,替换 LLM 调用层OpenAI → Anthropic Messages API
  2. 包装为 SKILL.md + scripts/
  3. 配置 cron 触发 consolidation每天凌晨或空闲期
  4. 修改 AGENTS.md 读取 Layer 1 快照

适合场景:长期方案,完整效果,开发成本约 4-6 小时。

方案 C等待官方观望

OpenClaw 官方已有 memory_search + contextPruning 机制,等官方把向量搜索成本降低或提供本地 embedding。

适合场景:不想折腾,等系统成熟。


七、结论

@Ktaohzk 的方案在概念上非常扎实,值得借鉴。

维度 评分 备注
架构设计 ★★★★★ 三层分层 + 衰减机制是亮点
代码质量 ★★★★☆ 功能完整,模块清晰
落地难度 ★★★☆☆ 需要 API key集成有成本
宣传数字真实性 ★★★★☆ 数字真实,但依赖 LLM 版本
推荐程度 ★★★★☆ 强烈推荐借鉴核心思路

当前建议:先执行方案 A轻量借鉴改造现有 MEMORY.md 结构;待有 OpenAI/Gemini API key 后,推进方案 B完整集成


研究报告由阿米狗生成 · 2026-02-17