Self-Improving Agent:让 AI Agent 从错误中学习的 OpenClaw Skill

> 来源: clawhub.ai/pskoett/self-improving-agent

> 作者: pskoett(Peter Skoett)

> GitHub: peterskoett/self-improving-agent

> 平台: ClawHub

> 研究时间: 2026-03-31

🎯 一句话版本

一个 OpenClaw Skill,让 agent 自动把犯过的错误、用户的纠正、发现的最佳实践记录到 markdown 文件里,重复出现的模式自动"晋升"到 AGENTS.md / SOUL.md / TOOLS.md,实现跨 session 的持续学习。

🔧 工作原理

核心:三个 Markdown 日志文件


.learnings/
├── LEARNINGS.md     # 纠正、洞察、知识空白、最佳实践
├── ERRORS.md        # 命令失败、集成错误
└── FEATURE_REQUESTS.md  # 用户请求的能力

触发 → 记录 → 晋升 循环


用户纠正 agent → 记录 [LRN-20260331-001] correction
命令失败       → 记录 [ERR-20260331-001] command_name
用户要新功能   → 记录 [FEAT-20260331-001] capability_name
发现更好方法   → 记录 [LRN-20260331-002] best_practice
         ↓
  同一模式出现 3 次以上
         ↓
  晋升到 AGENTS.md / SOUL.md / TOOLS.md
  (写成简短预防规则,不是长事故报告)

每条记录的格式


## [LRN-20260331-001] correction

**Logged**: 2026-03-31T15:00:00Z
**Priority**: high
**Status**: pending
**Area**: backend

### Summary
一行描述

### Details
完整上下文

### Suggested Action
具体修复建议

### Metadata
- Source: user_feedback
- Pattern-Key: harden.input_validation
- Recurrence-Count: 2

晋升规则

满足以下全部条件时,自动晋升到永久配置:

条件阈值
出现次数≥ 3
跨任务数≥ 2
时间窗口30 天内

晋升目标:

学习类型晋升到示例
行为模式`SOUL.md`"简洁回复,避免免责声明"
工作流改进`AGENTS.md`"长任务启动子 agent"
工具坑`TOOLS.md`"Git push 需要先配置 auth"
项目约定`CLAUDE.md`"包管理器用 pnpm 不是 npm"

📦 安装

ClawHub 一键安装


clawdhub install self-improving-agent

手动安装


git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent

通用兼容:不只支持 OpenClaw,也支持 Claude Code(CLAUDE.md)、GitHub Copilot(.github/copilot-instructions.md)、Codex 等。

💡 与我们的关联

1. 这就是我们一直在手动做的事情的系统化

我们已经在用 AGENTS.md 记录研究流程规则、SOUL.md 定义行为准则、TOOLS.md 记录工具笔记。Self-Improving Agent 把这个过程自动化和结构化了——不再依赖 Jay 手动说"把这个加到 doc",agent 自己会记录和晋升。

2. 和 Meta-Harness 是同一方向的不同层次

项目层次方法
**Meta-Harness**(Stanford)系统级自动改写整个 harness 代码
**Self-Improving Agent**实践级手动记录 + 规则晋升
**我们现在的做法**临时级口头"补充到 doc"

Self-Improving Agent 是 Meta-Harness 的朴素版——不需要 Claude Code 费用,纯文件操作。

3. 实际可以直接用

这个 skill 的设计完全匹配 OpenClaw 的 workspace 模式——.learnings/ 目录 + markdown 文件 + 晋升到现有的 SOUL.md / AGENTS.md / TOOLS.md。可以直接装上试试。

4. "Simplify & Harden" 联动

Skill 内置了和另一个 skill(simplify-and-harden)的联动——重复出现的代码模式会自动被捕获并转化为预防规则。这种 skill 组合的思路值得借鉴。

5. 安全意识不错

明确规定不记录 secrets、tokens、私钥、环境变量。跨 session 通信只在信任环境中使用。这些约束合理。

🔍 具体怎么实现?真实案例演示

案例 1:用户纠正 → 记录 → 晋升

第 1 次(3月27日):agent 在 Discord 里用 text 格式发链接,用户说"Discord 不渲染 Markdown 链接,直接贴 URL"。

Agent 自动追加到 .learnings/LEARNINGS.md


## [LRN-20260327-001] correction
**Logged**: 2026-03-27T10:00:00Z
**Priority**: high | **Status**: pending | **Area**: docs

### Summary
Discord 消息中不能用 Markdown 链接格式

### Details
在 #deep-research 频道用 [text](url) 格式发链接,Discord 不渲染。

### Suggested Action
Discord 消息里所有链接直接贴完整 URL,报告 markdown 里用 [text](url)

### Metadata
- Source: user_feedback
- Pattern-Key: discord.link_format
- Recurrence-Count: 1

第 2、3 次:又犯同样的错 → Recurrence-Count 递增到 3 → 触发晋升规则(≥3 次 + ≥2 个任务 + 30 天内)

Agent 自动写入 AGENTS.md


## Discord 链接格式
- 所有链接必须是完整 URL,不要用 Markdown [text](url) 格式

原条目标记为 Status: promoted。从此每次新 session 都知道这条规则。

案例 2:命令失败 → 记录

web_search 被 429 限流 → 自动追加到 .learnings/ERRORS.md


## [ERR-20260331-001] web_search
**Priority**: medium | **Status**: pending

### Error
Brave Search API error (429): rate limit exceeded

### Suggested Fix
使用 DuckDuckGo fallback: python3 search.py "<query>"

反复出现 → 晋升到 TOOLS.md 的搜索工具部分。

触发机制:靠 Prompt,不是代码

没有 webhook、没有代码监听、没有事件系统——完全靠 LLM 理解 SKILL.md 里的指令后"自觉执行"。

SKILL.md 注入到 system prompt 后,定义了触发模式:

Agent 检测到这些模式 → 自己调用 write/edit 工具追加记录 → 然后继续正常对话。

优缺点

⚠️ 局限

📊 评分

维度评分(/10)
创新性7.0 — 把"从错误中学习"系统化为 OpenClaw Skill
实用性8.5 — 直接可用,格式清晰,兼容多平台
完成度8.0 — 文档详尽,格式完整,有 hook 集成
技术深度6.0 — 纯文件操作,无 ML/自动化决策
与我们的相关度9.0 — 完全匹配我们的工作模式,可直接安装使用
**综合****7.5**

报告由深度研究助手自动生成 | 2026-03-31

来源: ClawHub / GitHub