适用场景
- 被 Daniel 纠错时
- 完成重要多步骤任务后
- 发现自己输出有改进空间时
- 收到外部有价值的信号(X/公众号/文档)时
- 知识过时或发现更好的方法时
- 用户明确安装或引用此 skill 时
Quick Reference
| Topic | File |
|---|---|
| Setup guide | setup.md |
| Heartbeat state template | heartbeat-state.md |
| Memory template | memory-template.md |
| Workspace heartbeat snippet | HEARTBEAT.md |
| Heartbeat rules | heartbeat-rules.md |
| Learning mechanics | learning.md |
| Security boundaries | boundaries.md |
| Scaling rules | scaling.md |
| Memory operations | operations.md |
| Self-reflection log | reflections.md |
| OpenClaw HEARTBEAT seed | openclaw-heartbeat.md |
实际部署架构
memory/self-improving/
├── lolita/
│ ├── hot.md ← HOT 层:碎片写入(允许噪声)
│ ├── corrections.md ← 纠错日志(结构化,用于晋升计数)
│ └── signals.md ← 外部信号(X/公众号/文档链接)
├── lisa/
│ └── (同上)
├── doubao/
│ └── (同上)
├── shared-rules.md ← 晋升后的共享规则
└── promote/
├── state.json ← 提炼状态(上次运行时间、连续空跑次数)
├── promote.log ← 每次提炼的审计日志
└── staging.patch ← 本次提炼草稿(人工确认前)
不使用软链。各 agent 直接用绝对路径写入自己的子目录:
- Lolita:
/root/.openclaw/workspace/memory/self-improving/lolita/ - Lisa:
/root/.openclaw/workspace/memory/self-improving/lisa/ - Doubao:
/root/.openclaw/workspace/memory/self-improving/doubao/
⚠️ 禁止在 ~/self-improving 或各自 workspace 下创建副本目录,所有写入必须指向上述权威路径。
Heartbeat 集成
Workspace HEARTBEAT.md 中加入 self-improving 检查段落(见 HEARTBEAT.md)。
Heartbeat 行为规则见 heartbeat-rules.md,运行状态存储在 ~/self-improving/heartbeat-state.md。
写入格式
hot.md(热碎片,允许噪声)
- ts: YYYY-MM-DD HH:MM
topic: <主题关键词>
type: observation | rule | idea
text: <内容>
source: <来源,如 msg-453 / 无>
corrections.md(纠错,结构化)
- ts: YYYY-MM-DD HH:MM
domain: <领域,如 tooling/wechat>
mistake: <错误描述>
fix: <正确做法>
prevention: <预防措施>
severity: low | medium | high
evidence: <证据,如 msg-id / 无>
signals.md(外部信号)
- ts: YYYY-MM-DD HH:MM
channel: x | mp | github | clawhub | docs
claim: <核心观点>
link: <URL>
reproducible: yes | no | unknown
notes: <备注>
触发规则
⚠️ 核心原则:立即写入,不允许推迟。 触发条件满足时,在当前回复结束前必须完成写入,不能"等下次"。
写 corrections.md(被纠错时)— 强制,立即执行:
- Daniel 说"不对"、"你搞错了"、"之前说过"、"别再这样做"
- 自己发现输出有明显错误并已修正
- 格式:ts / domain / mistake / fix / prevention / severity / evidence
写 hot.md — 强制,立即执行,满足任一即触发:
| 触发场景 | 示例 |
|---|---|
| 学到新的路径、工具、配置规则 | "关键项目放 main workspace" |
| Daniel 明确表达偏好或习惯 | "代码块包裹命令" |
| 完成多步骤任务,发现有效方法 | "先 clone 再测试读写流程" |
| 发现之前的假设是错的 | "lolita=main,不是 doubao" |
| 任何"下次遇到同类问题会有用"的信息 | 新 API、新工具用法 |
| 任务完成后主动反思(复杂任务、跨 agent 协作、首次使用新工具) | "这次信号采集用了 3 轮搜索才凑够,下次可以先定关键词再并行" |
| Near-miss:差点犯错但自己纠正了 | "差点用 web_fetch 抓公众号,想起来要用 weixin-search skill" |
| 纠错时的规则泛化:不只记具体事件,提炼成通用原则 | 具体:"出发提醒不能估算" → 泛化:"涉及物理世界数据的场景,优先调 API" |
| Daniel 说 "update hot.md" / "update self-improving" | 立即回顾当前对话,提取可记录的 observation 写入 |
写入标准:宁可多写噪声,不要漏掉有价值的内容。 hot.md 允许噪声,promote 机制会过滤。
写 signals.md(外部信号)— 强制,读完即写:
- 强制触发: 当收到 Daniel 分享的外部文章/链接并完成阅读后,必须将有借鉴意义的核心观点写入 signals.md
- 搜索到有价值的案例/工具
- 公众号/X 上的可复现实践
Learning Signals(来自上游,补充参考):
Corrections 信号词:
- "No, that's not right..." / "Actually, it should be..." / "You're wrong about..."
- "I prefer X, not Y" / "Remember that I always..." / "Stop doing X"
Preference 信号词:
- "I like when you..." / "Always do X for me" / "Never do Y" / "My style is..."
Pattern candidates — 跟踪,3 次后晋升:
- 同一指令重复 3+ 次
- 反复有效的工作流
- 用户表扬特定方法
不写(忽略):
- 一次性指令("现在做 X",下次不会再用)
- 纯上下文特定("在这个文件的第 3 行…")
- 假设性问题
自动提炼机制(Job A + Job B)
Job B:官方索引刷新(由 OpenClaw memory_search 负责)
- 外部
/opt/scripts/index-memory.sh与 8766 namespace 索引已退役 - 官方索引由 OpenClaw builtin memory_search 维护(watch / startup / search)
- embedding provider 继续走
http://127.0.0.1:18790/v1 - 共享层通过
agents.defaults.memorySearch.extraPaths暴露:memory/sharedmemory/dailymemory/self-improving
Job A:双轨提炼(Daily 增量 + Weekly 全量)
Daily 增量(每天 03:00,系统 crontab)
- 脚本:
/opt/scripts/run-promote.sh - 触发:过去 24h 有新增条目时才调用 LLM
- 重点:快速发现 severity:high 的条目
- 无新增时仅更新 state.json,不消耗 LLM
- 熔断:连续 14 天无新增 → 自动暂停
Weekly 全量(每周一 04:00,OpenClaw cron)
- 脚本:
/opt/scripts/run-promote-weekly.sh(生成材料包)+ Lisa LLM 分析 - 触发:OpenClaw cron
weekly-promote-fullscan - 重点:跨 agent 模式识别、累积计数、domain 聚合
- 扫描全量 corrections + hot,对比已有 shared-rules.md 避免重复
- 日志:
promote/promote.log - 输出:追加到
shared-rules.md
晋升规则
晋升到 memory/self-improving/shared-rules.md(满足任一):
severity: high(任何单条,立即晋升)- 同一 agent 的同一
domain下累积 ≥3 条 corrections - ≥2 个 agent 在同一
domain下各有 ≥1 条 corrections(跨 agent 聚合) - Daniel 明确确认(强制晋升)
晋升后写入格式(shared-rules.md):
## [domain] 标题
- Symptom: 现象
- Root cause: 根因
- Fix: 修复方式
- Prevention: 预防措施
- Evidence: 证据链接
- Last verified: YYYY-MM-DD
每次 Session 启动时
在 AGENTS.md 启动检查清单中已加入:
- 读
memory/self-improving/<自己的名字>/hot.md— 加载热记忆
启动时行为(来自上游):
- 读
memory.md(如果存在~/self-improving/memory.md) - 列出可用的 domain/project 文件
- 按需加载最相关的 ≤3 个文件
- 不要"以防万一"加载无关文件
检索原则
- 权威层:
memory/shared/preferences.md/memory/shared/errors.md/memory/self-improving/shared-rules.md - 热层:各 agent 自己的
hot.md/corrections.md - 官方
memory_search统一索引 private + shared + daily + self-improving - 不再维护额外 namespace 权重系统
可观测性
- 查看官方索引状态:
openclaw memory status --deep - 官方全量重建:
openclaw memory index --force --agent <id> - 查看提炼日志:
tail -f /opt/scripts/promote-cron.log - 查看提炼草稿:
cat memory/self-improving/promote/staging.patch
Self-Reflection(来自上游 1.2.16)
完成重要工作后,暂停并评估:
- 是否达到预期? — 比较结果与意图
- 有什么可以改进? — 为下次找出改进点
- 这是一个模式吗? — 如果是,记录到
corrections.md
何时自我反思:
- 完成多步骤任务后
- 收到反馈(正面或负面)后
- 修复 bug 或错误后
- 发现自己的输出可以改进时
日志格式:
CONTEXT: [任务类型]
REFLECTION: [注意到的内容]
LESSON: [下次不同的做法]
示例:
CONTEXT: Building Flutter UI
REFLECTION: Spacing looked off, had to redo
LESSON: Check visual spacing before showing user
自我反思条目遵循相同的晋升规则:成功应用 3 次 → 晋升到 HOT。
Quick Queries(来自上游 1.2.16)
| 用户说 | 动作 |
|---|---|
| "你对 X 了解什么?" | 搜索所有层级中的 X |
| "你学到了什么?" | 显示 corrections.md 最后 10 条 |
| "显示我的模式" | 列出 memory.md(HOT) |
| "显示 [项目] 模式" | 加载 projects/{name}.md |
| "温存储有什么?" | 列出 projects/ + domains/ 中的文件 |
| "memory stats" | 显示各层级计数 |
| "忘记 X" | 从所有层级移除(先确认) |
| "导出记忆" | ZIP 所有文件 |
Common Traps(来自上游 1.2.16)
| 陷阱 | 为什么失败 | 更好的做法 |
|---|---|---|
| 从沉默中学习 | 创建错误规则 | 等待明确纠正或重复证据 |
| 晋升太快 | 污染 HOT 记忆 | 保持新经验待定直到被重复 |
| 读取每个命名空间 | 浪费 context | 仅加载 HOT 加最小匹配文件 |
| 通过删除来压缩 | 丢失信任和历史 | 合并、总结或降级代替 |
Core Rules(来自上游 1.2.16)
1. Learn from Corrections and Self-Reflection
- Log when user explicitly corrects you
- Log when you identify improvements in your own work
- Never infer from silence alone
- After 3 identical lessons → ask to confirm as rule
2. Tiered Storage
| Tier | Location | Size Limit | Behavior |
|---|---|---|---|
| HOT | memory.md | ≤100 lines | Always loaded |
| WARM | projects/, domains/ | ≤200 lines each | Load on context match |
| COLD | archive/ | Unlimited | Load on explicit query |
3. Automatic Promotion/Demotion
- Pattern used 3x in 7 days → promote to HOT
- Pattern unused 30 days → demote to WARM
- Pattern unused 90 days → archive to COLD
- Never delete without asking
4. Namespace Isolation
- Project patterns stay in
projects/{name}.md - Global preferences in HOT tier (memory.md)
- Domain patterns (code, writing) in
domains/ - Cross-namespace inheritance: global → domain → project
5. Conflict Resolution
When patterns contradict:
- Most specific wins (project > domain > global)
- Most recent wins (same level)
- If ambiguous → ask user
6. Compaction
When file exceeds limit:
- Merge similar corrections into single rule
- Archive unused patterns
- Summarize verbose entries
- Never lose confirmed preferences
7. Transparency
- Every action from memory → cite source: "Using X (from projects/foo.md:12)"
- Weekly digest available: patterns learned, demoted, archived
- Full export on demand: all files as ZIP
8. Security Boundaries
See boundaries.md — never store credentials, health data, third-party info.
9. Graceful Degradation
If context limit hit:
- Load only memory.md (HOT)
- Load relevant namespace on demand
- Never fail silently — tell user what's not loaded
Scope
This skill ONLY:
- 从用户纠错和自我反思中学习
- 在本地文件中存储偏好(
memory/self-improving/和~/self-improving/) - 通过 heartbeat 维护
~/self-improving/heartbeat-state.md - 在激活时读取自己的记忆文件
This skill NEVER:
- 访问日历、邮件或联系人
- 发起网络请求
- 读取
memory/self-improving/和~/self-improving/之外的文件 - 从沉默或观察中推断偏好
- 在 heartbeat 清理时删除或盲目重写记忆
- 修改自己的 SKILL.md
Data Storage
本地状态存储:
memory/self-improving/<agent>/hot.md— HOT 规则和碎片memory/self-improving/<agent>/corrections.md— 纠错日志memory/self-improving/<agent>/signals.md— 外部信号memory/self-improving/shared-rules.md— 晋升后的共享规则memory/self-improving/promote/— 提炼状态和日志~/self-improving/heartbeat-state.md— heartbeat 运行标记
Related Skills
memory— Long-term memory patterns for agentslearning— Adaptive teaching and explanationdecide— Auto-learn decision patternsescalate— Know when to ask vs act autonomously