OpenClaw 自改进技能:让 AI 告别金鱼记忆,一次教训终身受用
你有没有过这种感觉——昨天才跟 AI 说过别再犯的配置错误,今天它又”失忆”般地给你踩了一遍。上周刚纠正过的代码风格,这周又打回原形。
AI Agent 的”健忘症”已经成了阻碍开发效率的真正痛点。跟它合作久了,你会发现:它学得很快,但也忘得很快。
今天要聊的 self-improving-agent,就是 OpenClaw 生态里专门解决这个问题的核心技能。它的设计思路很朴素:让 AI 自己把错误、经验、需求记下来,形成本地知识库,跨会话持续沉淀。一句话——吃一堑,长一智,这次是认真的。
它到底是个什么东西
self-improving-agent 是开发者 pskoett 写的开源工具,MIT-0 协议,可以随便用、随便改、随便分发。它不依赖任何云端服务,所有数据都留在本地。
核心是一套轻量级的钩子机制 + 标准化日志格式,把 AI 的”经验”变成可追溯、可检索、可晋升的结构化资产。
五大能力,一次讲透
第一件事:日志归档标准化
启用后,工作空间会自动多出一个 .learnings 目录,里面有三份日志:
-
ERRORS.md:所有命令执行失败、工具调用异常、接口报错,一条不漏 -
LEARNINGS.md:用户纠正、技术洞察、知识盲区、最佳实践,按四类分好 -
FEATURE_REQUESTS.md:你提过的功能需求、使用场景、初步想法
第二件事:钩子自动触发
不需要手动操作,启用钩子后 AI 会自己判断什么时候该记录:
-
提交指令后自动评估是否有新经验 -
工具执行结束自动捕获异常退出码 -
整个过程只多花 50-100 token,几乎感知不到
第三件事:分层晋升
日志只是中间产物,真正值钱的是把零散经验沉淀成永久规则。满足以下任一条件,就该往更高层级的记忆文件搬:
-
行为准则、沟通风格 → SOUL.md -
工作流、Agent 分工 → AGENTS.md -
工具使用技巧、踩坑点 → TOOLS.md -
项目通用约定 → CLAUDE.md -
GitHub Copilot 专属 → .github/copilot-instructions.md
晋升完,原条目会自动标记”已晋升”,并附上目标路径。
第四件事:经验一键转技能
当某条经验足够通用、经过多次验证后,可以用内置的 extract-skill.sh 脚本,一键生成标准 OpenClaw 技能。比如你总结了一套高效的 Docker 部署流程,提成技能后任何新项目都能直接调用。
第五件事:跨项目复用
技能一旦抽出来,就脱离了具体项目。你可以在不同的工作空间之间共享,也可以推到 ClawdHub 让团队用。
三种安装方式,挑一个就行
方式 1:OpenClaw CLI(推荐)
openclaw skills install self-improving-agent
方式 2:ClawdHub
clawdhub install self-improving-agent
方式 3:手动克隆源码
git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
启用钩子,让它真的”自动”起来
光安装还不够。要让 AI 真正自己记录,需要启用官方钩子:
cp -r ~/.openclaw/skills/self-improving-agent/hooks/openclaw ~/.openclaw/hooks/self-improvement
openclaw hooks enable self-improvement
启完之后,每次你提指令,AI 都会自己问一句”这条要不要记一下”。
目录长什么样
装完之后工作空间的结构是这样的:
~/.openclaw/workspace/
├── SOUL.md # 行为准则、沟通风格
├── AGENTS.md # 多 Agent 协作工作流
├── TOOLS.md # 工具使用规范、避坑要点
├── MEMORY.md # 全局长期记忆
├── memory/ # 按日期拆分的日常日志
└── .learnings/ # 本技能专属仓库
├── ERRORS.md
├── LEARNINGS.md
└── FEATURE_REQUESTS.md
如果你用 Claude Code 或 GitHub Copilot,在项目根目录建一个 .learnings,在对应的 instructions 文件里加一行引用即可。
日志长什么样
官方给了一套标准模板,保证可读性和可检索性。挑两个示例:
学习条目
## [LRN-20260115-001] 纠正
**Logged**: 2026-01-15T09:00:00Z
**Priority**: medium
**Status**: pending
**Area**: backend
### Summary
项目用 pnpm 而不是 npm
### Details
跑 npm install 失败,根目录只有 pnpm-lock.yaml
### Suggested Action
所有依赖安装用 pnpm install
### Metadata
- Source: error
- Related Files: package.json
- Tags: dependencies, package-manager
错误条目
## [ERR-20260115-001] git-push
**Logged**: 2026-01-15T10:30:00Z
**Priority**: high
**Status**: pending
**Area**: infra
### Summary
Git push 失败,权限不足
### Error
remote: Permission to repo denied to user
### Context
- 执行操作:git push origin main
- 传入参数:无
### Suggested Fix
配置正确的 SSH 密钥或个人访问令牌
### Metadata
- Reproducible: yes
- Related Files: ~/.ssh/config
什么时候该把经验”晋升”
日志条目不能永远躺在 .learnings 里。当满足以下任一条件,就该往上搬:
-
这条经验适用于项目的多个文件或功能模块 -
团队所有成员都需要遵守 -
能有效预防后续重复出错 -
属于项目内部的专属规范
几个用之前要知道的点
-
不要记录敏感信息:密钥、Token、私钥、完整环境变量、账号密码,一律不要写进日志。保留脱敏后的摘要即可 -
问题发生马上记:不要等几天后才回想,错过就可能写不准 -
每周花 10 分钟清理:标记已解决的条目,晋升高价值经验,别让它变成垃圾桶 -
团队项目可以提交到 Git:让所有成员共享经验池 -
内置脚本都是开源的:可以自己审计代码,不用担心后门
最后说一句
AI Agent 的天花板从来不只是模型本身,更取决于它能积累多少经验。self-improving-agent 给了一个零成本、纯本地的方案,让 AI 真正变成会学习、会成长的助手。
从今天开始,让它告别”金鱼记忆”。每一次踩坑,都该是下一次的垫脚石。
夜雨聆风