统一自我进化系统 (Unified Self-Improving)
概述
本技能整合了以下三个自我进化相关技能的核心功能:
| 技能 | 核心优势 |
|---|
| self-improving-agent | Markdown 格式、结构化日志(ID/优先级/状态)、promote 机制、重复模式检测 |
| self-improving | 三层存储(HOT/WARM/COLD)、自动升级规则(3次)、命名空间隔离 |
| mulch | JSONL 格式、token 效率高(-54%)、mulch prime/query CLI |
整合后的系统保留了各技能的独特功能,同时提供统一的存储架构和触发条件,兼顾结构化可读性与存储效率。
架构
存储层级
| 层级 | 位置 | 访问频率 | 格式 | 保留时间 |
|---|
| HOT | memory/hot/ | 实时/每次会话 | Markdown + JSONL 双格式 | 最近 3 次会话 |
| WARM | memory/warm/ | 频繁查询 | JSONL | 3-10 次会话 |
| COLD | memory/cold/ | 归档参考 | JSONL | 10+ 次会话 |
命名空间隔离
每个命名空间独立存储,防止数据混淆:
memory/namespace/{namespace}/hot/
memory/namespace/{namespace}/warm/
memory/namespace/{namespace}/cold/
Quick Reference
统一触发条件
| 触发条件 | 描述 | 目标层级 | 格式 |
|---|
| session-end | 会话结束时自动保存学习 | HOT | Markdown + JSONL |
| error | 命令或操作失败时记录 | HOT | Markdown + JSONL |
| correction | 用户纠正("不对"/"其实") | HOT | Markdown + JSONL |
| pattern-detected | 检测到重复模式时触发 | WARM | JSONL |
| manual-trigger | 手动调用(显式请求) | 任意 | Markdown/JSONL |
| heartbeat | 定期检查(内存维护) | WARM/COLD | JSONL |
自动升级规则
HOT → WARM: 同一学习项被访问/引用 3 次
WARM → COLD: 超过 10 次会话未访问
COLD → HOT: 重新被引用时
存储结构
核心文件
~/.openclaw/workspace/memory/
├── hot/
│ ├── session-{YYYY-MM-DD}-{HHMMSS}.md # 会话日志(Markdown)
│ ├── session-{YYYY-MM-DD}-{HHMMSS}.jsonl # 会话日志(JSONL)
│ ├── corrections.md # 用户纠正记录
│ ├── errors.md # 错误记录
│ └── patterns.md # 检测到的模式
├── warm/
│ ├── learnings/ # 升级的学习项
│ │ └── {namespace}/
│ │ └── {learn-id}.jsonl
│ └── patterns/ # 累积模式库
│ └── {pattern-id}.jsonl
├── cold/
│ └── archive/ # 归档学习项
│ └── {namespace}/
│ └── {learn-id}.jsonl
├── namespace/ # 命名空间隔离
│ ├── {namespace-name}/
│ │ ├── hot/
│ │ ├── warm/
│ │ └── cold/
│ └── _meta/
│ └── namespace-config.json # 命名空间配置
├── index.jsonl # 全局索引(所有层级的快速查询)
└── config.json # 系统配置
JSONL 记录格式
{"id": "learn-20260315-001", "namespace": "default", "content": "学习内容", "priority": "high", "status": "active", "access_count": 0, "created_at": "2026-03-15T04:00:00Z", "updated_at": "2026-03-15T04:00:00Z"}
Markdown 日志格式
# 学习记录 - 2026-03-15
## ID: learn-20260315-001
- **优先级**: high
- **状态**: active
- **命名空间**: default
- **内容**: ...
- **创建时间**: 2026-03-15T04:00:00Z
- **更新时间**: 2026-03-15T04:30:00Z
## 访问记录
- 2026-03-15 04:00:00 - 创建
- 2026-03-15 04:25:00 - 引用
工作流
Session Start(会话开始)
- 加载
memory/index.jsonl 建立全局索引
- 检查 HOT 层是否有未处理的
corrections 或 patterns
- 如有需要,从 WARM/COLD 层召回相关历史学习
- 初始化会话日志文件
# 加载索引
cat ~/.openclaw/workspace/memory/index.jsonl | jq -s 'from_entries'
# 召回相关学习
~/.openclaw/workspace/scripts/self-improving/recall.sh --namespace default --recent 5
During Session(会话期间)
| 事件 | 处理 |
|---|
| 用户纠正 | 写入 HOT 层 corrections.md + JSONL |
| 发生错误 | 写入 HOT 层 errors.md + JSONL |
| 检测到重复模式 | 写入 HOT 层 patterns.md,升级到 WARM |
| 显式学习请求 | 写入对应命名空间的 HOT 层 |
# 记录纠正
~/.openclaw/workspace/scripts/self-improving/log.sh --type correction --content "..." --namespace default
# 记录错误
~/.openclaw/workspace/scripts/self-improving/log.sh --type error --content "..." --namespace default
Session End(会话结束)
- 合并会话日志到 HOT 层
- 执行自动升级检查(HOT → WARM)
- 更新全局索引
- 清理过期会话(超过 3 次会话的 HOT 内容)
# 会话结束处理
~/.openclaw/workspace/scripts/self-improving/session-end.sh
# 自动升级检查
~/.openclaw/workspace/scripts/self-improving/upgrade.sh
保留的独立接口
self-improving-agent 独特功能
| 功能 | 命令 | 说明 |
|---|
| Promote 机制 | self-improving-agent promote <learn-id> | 手动提升学习项优先级 |
| 模式检测 | self-improving-agent detect-pattern | 扫描历史数据检测重复模式 |
| 结构化日志查询 | self-improving-agent query --id <id> | 按 ID/优先级/状态查询 |
# Promote 学习项
self-improving-agent promote learn-20260315-001 --to warm
# 检测重复模式
self-improving-agent detect-pattern --namespace default
self-improving 独特功能
| 功能 | 命令 | 说明 |
|---|
| 命名空间管理 | self-improving namespace create <name> | 创建新的命名空间 |
| 手动升级 | self-improving upgrade <learn-id> --to <level> | 手动转移学习项层级 |
| 召回历史 | self-improving recall <learn-id> | 从 COLD 召回学习项到 HOT |
# 创建命名空间
self-improving namespace create project-alpha
# 手动升级
self-improving upgrade learn-20260315-001 --to warm
# 召回历史
self-improving recall learn-20260301-001
mulch 独特功能
| 功能 | 命令 | 说明 |
|---|
| Prime 索引 | mulch prime | 构建/更新查询索引 |
| 高效查询 | mulch query <pattern> | 快速查询 JSONL 数据 |
| 批量导入 | mulch import <file> | 批量导入 JSONL 数据 |
# 构建索引
~/.openclaw/workspace/scripts/mulch/mulch prime
# 查询
~/.openclaw/workspace/scripts/mulch/mulch query "priority:high"
# 批量导入
~/.openclaw/workspace/scripts/mulch/mulch import learnings.jsonl
最佳实践
1. 触发条件选择
- 频繁纠正/错误 → 使用
correction / error 触发,保持在 HOT 层
- 重要学习项 → 使用
session-end 配合高优先级标记
- 重复模式 → 依赖自动模式检测,或手动
pattern-detected
2. 命名空间使用
- 为不同项目/领域创建独立命名空间
- 避免跨命名空间的数据混淆
- 定期清理不再需要的命名空间
# 推荐的命名空间结构
memory/namespace/
├── default/ # 默认通用学习
├── project-x/ # 特定项目学习
├── skill-y/ # 特定技能学习
└── research/ # 研究相关学习
3. 格式选择
| 场景 | 推荐格式 |
|---|
| 快速记录/临时存储 | JSONL |
| 需要人类可读性 | Markdown |
| 长期归档 | JSONL |
| 对外分享/报告 | Markdown |
4. 性能优化
- 使用
mulch prime 定期更新索引
- 批量操作使用 JSONL 格式
- 定期执行
upgrade.sh 维持层级健康
5. 故障恢复
- HOT 层丢失:可从 WARM 层恢复
- 索引损坏:执行
mulch prime 重建
- 数据不一致:使用
self-improving recall 手动召回
配置示例
{
"version": "1.0.0",
"storage": {
"hot_retention_sessions": 3,
"warm_retention_sessions": 10,
"auto_upgrade_threshold": 3,
"default_namespace": "default"
},
"formats": {
"primary": "jsonl",
"secondary": "markdown",
"hot_dual_format": true
},
"trigger_conditions": {
"session_end": true,
"error": true,
"correction": true,
"pattern_detected": true,
"manual_trigger": true,
"heartbeat": true
},
"heartbeat_interval_minutes": 30
}
文件位置
- 技能目录:
~/.openclaw/workspace/skills/unified-self-improving/
- 存储根目录:
~/.openclaw/workspace/memory/
- 脚本目录:
~/.openclaw/workspace/scripts/self-improving/
- Mulch 脚本:
~/.openclaw/workspace/scripts/mulch/