Self-Improvement Skill
Log learnings and errors to markdown files. Important patterns get promoted to project memory files.
Quick Reference
| Situation | Action |
|---|
| Command/operation fails | Log to INLINECODE0 |
| User corrects you |
Log to
.learnings/LEARNINGS.md (category:
correction) |
| User wants missing feature | Log to
.learnings/FEATURE_REQUESTS.md |
| API/external tool fails | Log to
.learnings/ERRORS.md |
| Knowledge was outdated | Log to
.learnings/LEARNINGS.md (category:
knowledge_gap) |
| Found better approach | Log to
.learnings/LEARNINGS.md (category:
best_practice) |
| Similar to existing entry | Link with
**See Also**, bump priority |
| Broadly applicable learning | Promote to workspace files (see below) |
Promotion Targets
When a learning proves broadly applicable, elevate it:
| Learning Type | Promote To |
|---|
| Behavioral patterns | INLINECODE10 |
| Workflow patterns |
AGENTS.md |
| Tool gotchas |
TOOLS.md |
| Project facts |
CLAUDE.md or workspace prompt files |
Logging Format
Learning Entry
CODEBLOCK0
Error Entry
CODEBLOCK1
Paste actual error output here
CODEBLOCK2
Feature Request Entry
CODEBLOCK3
ID Generation
INLINECODE14 — e.g. LRN-20250322-001, INLINECODE16
Resolving Entries
When fixed:
- 1. Set Status:
resolved or INLINECODE18 - Add resolution block:
CODEBLOCK4
Promoting to Workspace Files
When: Learning applies across files, prevents recurring mistakes, or any contributor should know it.
How: Distill into a concise rule. Add to target file. Set original entry to promoted.
Example learning:
Project uses pnpm workspaces. npm install fails because lock file is pnpm-lock.yaml.
Promote to CLAUDE.md:
CODEBLOCK5
Recurring Pattern Detection
Before logging, search for related entries:
CODEBLOCK6
If similar entry exists:
- - Link with INLINECODE23
- Increment INLINECODE24
- Consider systemic fix (promote to AGENTS.md, create tech debt ticket)
Promote to permanent prompt guidance when a pattern:
- - Occurs 3+ times
- Spans 2+ distinct tasks
- Within a 30-day window
OpenClaw Inter-Session Tools
Share learnings across sessions:
| Tool | Use |
|---|
| INLINECODE25 | View active/recent sessions |
| INLINECODE26 |
Read another session's transcript |
|
sessions_send(sessionKey, message) | Send a learning to another session |
|
sessions_spawn(task, label, mode) | Spawn a background sub-agent |
Example: After a session ends, promote its key learnings to workspace files.
Use sessions_history to review what another session discovered.
Periodic Review
Check .learnings/ at natural breakpoints:
- - Before starting a new major task
- After completing a feature
- Weekly during active development
Quick status:
CODEBLOCK7
Detection Triggers
Log immediately when you notice:
| Signal | → Entry |
|---|
| Non-zero exit code, exception, timeout | INLINECODE31 |
| User says "No, that's wrong...", "Actually..." |
LEARNINGS.md (correction) |
| User provides info you didn't know |
LEARNINGS.md (knowledge_gap) |
| "Can you also...", "I wish you could..." |
FEATURE_REQUESTS.md |
| Found a better approach mid-task |
LEARNINGS.md (best_practice) |
| Repeated mistake (2+ times) | Promote to workspace file |
Best Practices
- 1. Log immediately — context is freshest right after the issue
- Be specific — future you needs to understand quickly
- Suggest concrete fixes — not just "investigate"
- Link related files — makes fixes easier
- Promote aggressively — broadly applicable learnings belong in workspace files, not hidden in INLINECODE36
- Use consistent IDs — enables
See Also linking
Installation (OpenClaw)
CODEBLOCK8
Manual:
CODEBLOCK9
Create log directory:
CODEBLOCK10
Detailed Topics
For complete documentation, see:
- - OpenClaw integration: INLINECODE38
- Hook setup: INLINECODE39
- Full entry examples: INLINECODE40
- Skill extraction workflow: INLINECODE41
- Other agents (Claude Code, Codex, Copilot): INLINECODE42
自我改进技能
将学习内容和错误记录到markdown文件中。重要模式会被提升到项目记忆文件中。
快速参考
| 情况 | 操作 |
|---|
| 命令/操作失败 | 记录到 .learnings/ERRORS.md |
| 用户纠正你 |
记录到 .learnings/LEARNINGS.md (类别: correction) |
| 用户需要缺失功能 | 记录到 .learnings/FEATURE_REQUESTS.md |
| API/外部工具失败 | 记录到 .learnings/ERRORS.md |
| 知识已过时 | 记录到 .learnings/LEARNINGS.md (类别: knowledge_gap) |
| 发现更好的方法 | 记录到 .learnings/LEARNINGS.md (类别: best_practice) |
| 与已有条目相似 | 使用
另见 链接,提升优先级 |
| 广泛适用的学习内容 | 提升到工作区文件(见下文) |
提升目标
当某个学习内容被证明广泛适用时,将其提升:
AGENTS.md |
| 工具陷阱 | TOOLS.md |
| 项目事实 | CLAUDE.md 或工作区提示文件 |
记录格式
学习条目
markdown
[LRN-YYYYMMDD-XXX] 类别
记录时间: ISO-8601 时间戳
优先级: 低 | 中 | 高 | 关键
状态: 待处理 | 已解决 | 已提升 | 进行中
摘要
所学内容的一行描述
详情
完整上下文:发生了什么,哪里错了,什么是对的
建议操作
具体的修复或改进措施
元数据
- - 来源: 对话 | 错误 | 用户反馈
- 相关文件: path/to/file.ext
- 标签: tag1, tag2
- 另见: LRN-YYYYMMDD-XXX (如果相关)
错误条目
markdown
[ERR-YYYYMMDD-XXX] 命令或工具
记录时间: ISO-8601 时间戳
优先级: 高
状态: 待处理
摘要
失败内容的简要描述
错误
在此粘贴实际错误输出
上下文
建议修复
如果可以确定,如何解决
元数据
- - 可重现: 是 | 否 | 未知
- 相关文件: path/to/file.ext
功能请求条目
markdown
[FEAT-YYYYMMDD-XXX] 功能名称
记录时间: ISO-8601 时间戳
优先级: 中
状态: 待处理
请求的功能
用户想要做什么
用户上下文
他们为什么需要这个功能
复杂度评估
简单 | 中等 | 复杂
ID 生成
类型-YYYYMMDD-XXX — 例如 LRN-20250322-001, ERR-20250322-A3F
解决条目
修复后:
- 1. 设置状态:已解决 或 已提升
- 添加解决块:
markdown
解决方案
- - 解决时间: 2025-01-16T09:00:00Z
- 提交/PR: abc123 或 #42
- 备注: 做了什么
提升到工作区文件
何时:学习内容适用于多个文件,防止重复错误,或任何贡献者都应了解。
如何:提炼为简洁规则。添加到目标文件。将原始条目设置为 已提升。
学习示例:
项目使用 pnpm 工作区。npm install 失败,因为锁定文件是 pnpm-lock.yaml。
提升到 CLAUDE.md:
markdown
构建与依赖
- - 包管理器:pnpm(不是 npm)— 始终使用 pnpm install
重复模式检测
记录前,搜索相关条目:
bash
grep -r 关键词 .learnings/
如果存在相似条目:
- - 使用 另见: LRN-... 链接
- 增加 重复计数
- 考虑系统性修复(提升到 AGENTS.md,创建技术债务工单)
提升为永久提示指导,当某个模式:
- - 出现 3 次以上
- 跨越 2 个以上不同任务
- 在 30 天窗口内
OpenClaw 会话间工具
跨会话共享学习内容:
| 工具 | 用途 |
|---|
| sessionslist | 查看活跃/最近会话 |
| sessionshistory(sessionKey, limit) |
读取另一个会话的记录 |
| sessions_send(sessionKey, message) | 向另一个会话发送学习内容 |
| sessions_spawn(task, label, mode) | 生成后台子代理 |
示例:会话结束后,将其关键学习内容提升到工作区文件。
使用 sessions_history 查看另一个会话发现了什么。
定期审查
在自然断点检查 .learnings/:
快速状态:
bash
grep -h Status.pending .learnings/.md | wc -l # 统计待处理数量
grep -B3 Priority.high .learnings/.md | grep ^## # 高优先级项目
检测触发器
立即记录,当你注意到:
| 信号 | → 条目 |
|---|
| 非零退出码、异常、超时 | ERRORS.md |
| 用户说不,那不对...、实际上... |
LEARNINGS.md (纠正) |
| 用户提供你不知道的信息 | LEARNINGS.md (知识缺口) |
| 你还能...吗、我希望你能... | FEATURE_REQUESTS.md |
| 任务中途发现更好的方法 | LEARNINGS.md (最佳实践) |
| 重复错误(2次以上) | 提升到工作区文件 |
最佳实践
- 1. 立即记录 — 问题发生后上下文最新鲜
- 具体明确 — 未来的你需要快速理解
- 建议具体修复 — 不仅仅是调查
- 链接相关文件 — 使修复更容易
- 积极提升 — 广泛适用的学习内容应放在工作区文件中,而不是隐藏在 .learnings/ 中
- 使用一致的 ID — 支持 另见 链接
安装 (OpenClaw)
bash
clawhub install self-improving-agent
手动安装:
bash
git clone https://github.com/pskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
创建日志目录:
bash
mkdir -p ~/.openclaw/workspace/.learnings
详细主题
完整文档请参见:
- - OpenClaw 集成:references/openclaw-integration.md
- 钩子设置:references/hooks-setup.md
- 完整条目示例:references/examples.md
- 技能提取工作流:references/skill-extraction.md
- 其他代理(Claude Code、Codex、Copilot):references/other-agents.md