三位一体:自动捕获错误(Hook) + 主动提炼经验(Skill化) + 遗忘曲线复习(Promote)
每一次踩坑都不会白费,每一个经验都会变成可复用的 Skill。
text
工具调用失败/用户纠正/发现新工作流
↓
┌──────┴──────┐
↓ ↓
自动捕获 主动判断
(.learnings) (Skill化)
↓ ↓
↓ 是否值得固化成Skill?
↓ ├─ 否 → 保持原样
↓ └─ 是 → 创建/更新 SKILL.md
↓ ↓
↓ 是否普遍适用?
↓ ├─ 否 → 保持为Skill
↓ └─ 是 → Promote到 SOUL.md / AGENTS.md / TOOLS.md
↓
定期回顾
↓
Recurrence-Count ≥ 3 → 系统级规则
场景自动日志目标文件命令失败(exit code ≠ 0)error-detector.sh hook.learnings/ERRORS.md工具调用异常Agent自觉判断.learnings/ERRORS.mdPostToolUse 扫描到错误模式hook自动注入.learnings/ERRORS.md
text
error:, Error:, ERROR:, failed, FAILED,
command not found, No such file, Permission denied,
fatal:, Exception, Traceback, npm ERR!,
ModuleNotFoundError, SyntaxError, TypeError,
exit code, non-zero
如果检测到:自动在输出中注入提醒,建议写入 .learnings/ERRORS.md
场景日志类型目标复杂任务成功(≥5工具调用)经验→ 考虑创建Skill踩坑后找到正确路径错误+解决→ 创建Skill记录坑+解法用户纠正("不是这样")纠正→ 记录纠正内容发现 nontrivial 工作流最佳实践→ 主动创建Skill配置/环境特殊性知识→ 记录环境差异
text
这个任务以后还会遇到吗?
├─ 否 → 不用创建
└─ 是 → 涉及 ≥2 个步骤?
├─ 否 → 不用创建(太简单)
└─ 是 → 这个流程容易忘吗?
├─ 否 → 不用创建
└─ 是 → ✓ 创建Skill
标准描述Recurring有 2+ 个相似问题( See Also 链接)Verified已验证可行(有解决方案)Non-obvious需要实际调试才发现Broadly applicable跨项目适用User-flagged用户说"把这个存成Skill"
当学习内容满足以下 全部条件 时,提升到系统级文件:
Recurrence-Count ≥ 3学习类型提升目标行为模式SOUL.md工作流改进AGENTS.md工具坑/GotchaTOOLS.md项目规范MEMORY.md普遍适用技能新Skill(提取)
.learnings/LEARNINGS.md#markdown
## [LRN-YYYYMMDD-XXX] category
**Logged**: ISO-8601 timestamp
**Priority**: low | medium | high | critical
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
### Summary
一句话描述学到了什么
### Details
完整上下文:发生了什么、哪里错了、正确的是什么
### Suggested Action
具体修复或改进
### Metadata
- Source: conversation | error | user_feedback
- Related Files: path/to/file.ext
- Tags: tag1, tag2
- See Also: LRN-YYYYMMDD-XXX
- Recurrence-Count: 1
- First-Seen: YYYY-MM-DD
- Last-Seen: YYYY-MM-DD
---
.learnings/ERRORS.md#markdown
## [ERR-YYYYMMDD-XXX] skill_or_command
**Logged**: ISO-8601 timestamp
**Priority**: high
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
### Summary
简要描述什么失败了
### Error
实际错误信息
text
### Context
- 尝试的命令/操作
- 使用的输入或参数
- 环境详情(如相关)
### Suggested Fix
如果可识别,给出解决方案
### Metadata
- Reproducible: yes | no | unknown
- Related Files: path/to/file.ext
- See Also: ERR-YYYYMMDD-XXX
---
.learnings/FEATURE_REQUESTS.md#markdown
## [FEAT-YYYYMMDD-XXX] capability_name
**Logged**: ISO-8601 timestamp
**Priority**: medium
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
### Requested Capability
用户想要什么能力
### User Context
为什么需要,解决什么问题
### Complexity Estimate
simple | medium | complex
### Suggested Implementation
如何实现
### Metadata
- Frequency: first_time | recurring
- Related Features: existing_feature_name
---
满足 Skill 创建标准时,用 write 工具创建:
bash
~/.openclaw/workspace/skills/<category>/<skill-name>/SKILL.md
SKILL.md 标准格式:
markdown
---
name: <skill_name>
description: 一句话描述技能及适用场景
version: 1.0.0
triggers:
- "触发条件1"
- "触发条件2"
---
# 技能标题
## When to Use
什么情况下用这个技能
## Procedure
1. 步骤一
2. 步骤二
## Pitfalls
- 已知失败模式
## Verification
如何验证成功
用 edit 工具增量修改(避免全量替换):
markdown
# patch 场景
## Pitfalls
- 原来只有1条,新发现1条 → edit 追加
# edit 场景
## Procedure
整个流程变了 → 全量替换
当 Skill 不再适用时:
bash
rm -rf ~/.openclaw/workspace/skills/<category>/<skill-name>/
当 Learning 满足 Skill 创建标准时,运行提取脚本:
bash
./scripts/extract-skill.sh <skill-name> --dry-run # 预览
./scripts/extract-skill.sh <skill-name> # 执行
类型格式示例单工具<tool>_<brief>``mysql_connect_prod多工具流程<domain>_<task>``deploy_k8s_rolling_update环境坑<env>_<issue>``aws_ssh_port_2222最佳实践<domain>_<best_practice>``git_commit_conventional
debug/ — 排错、调试devops/ — 部署、运维workflow/ — 工作流程platform/ — 平台集成learned/ — 从错误中学习bash
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement
openclaw hooks enable self-improvement
Hook触发时机功能activator.shUserPromptSubmit提醒评估学习error-detector.shPostToolUse (Bash)自动检测错误
bash
# 统计待处理项
grep -h "Status**: pending" .learnings/*.md | wc -l
# 查看高优先级项
grep -B5 "Priority**: high" .learnings/*.md | grep "^## \["
# 查找特定领域的学习
grep -l "Area**: backend" .learnings/*.md
Skill 不是越多越好,而是 精炼、可操作:
超过 200 行的 Skill 考虑拆分。
格式: TYPE-YYYYMMDD-XXX
LRN(学习)、 ERR(错误)、 FEAT(功能请求)001)示例: LRN-20260411-001, ERR-20260411-A3F, FEAT-20260411-002
维度skill_evolveself-improving-agent(本技能)架构纯 SKILL.md 指令SKILL.md + Hook 脚本 + 三层日志触发Agent 主观判断Hook 自动 + 主动判断结合错误捕获依赖 Agent 自觉error-detector.sh 自动扫描日志格式无标准格式结构化 LRN/ERR/FEAT 条目Promote无三层 Promote 系统Skill 提取手动extract-skill.sh 自动化适用场景经验固化错误追踪 + 经验固化 + Skill 进化
本技能是 skill_evolve 的超集——skill_evolve 有的本技能全有,本技能有的 skill_evolve 不一定有。