乐于分享
好东西不私藏

OpenClaw 自改进技能:让 AI 告别金鱼记忆,一次教训终身受用

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 真正变成会学习、会成长的助手。

从今天开始,让它告别”金鱼记忆”。每一次踩坑,都该是下一次的垫脚石。