你有没有过这样的经历:昨天刚让 AI 帮你解决了一个棘手的配置问题,今天它又犯了一模一样的错误;上周刚纠正过它的代码风格,这周又写出了不符合规范的内容。AI Agent 的"健忘症"一直是影响开发效率的一大痛点,很多时候我们不得不反复提醒它同样的事情。
今天要介绍的 self-improving-agent,就是专门为解决这个问题而生的 OpenClaw 核心技能。它能让 AI 自动记录开发过程中的所有错误、经验和需求,形成结构化的本地知识库,并且跨会话持续学习,真正做到"吃一堑长一智"。

一、什么是 self-improving-agent
self-improving-agent 是由开发者 pskoett 打造的开源 AI 自改进工具,采用 MIT-0 协议完全免费,无需署名即可自由使用、修改和分发。它不依赖任何云端服务,所有数据都保存在本地,通过轻量级的钩子机制和标准化的日志格式,为 AI Agent 构建完整的持续学习闭环。
二、五大核心能力
1. 标准化三类日志归档
这是整个技能的基础。它会在你的工作空间自动创建 .learnings 目录,维护三份独立的日志文件:
ERRORS.md:记录所有命令执行失败、工具调用异常、接口报错等问题,包含完整的错误信息和上下文LEARNINGS.md:整理用户纠正、技术洞察、知识盲区和开发最佳实践,支持四种分类:纠正、洞察、知识缺口、最佳实践FEATURE_REQUESTS.md:收集用户提出的新功能需求,包含使用场景和实现思路
2. 全自动钩子监听
无需手动触发记录,启用钩子后 AI 会自动判断何时需要归档:
- 每次你提交指令后,它会自动评估是否有新的经验需要记录
- 工具执行结束后,会自动捕获异常退出码,生成错误日志
- 整个过程的 Token 开销只有 50-100,几乎不会影响对话速度
3. 分层知识晋升固化
临时的日志只是第一步,真正的价值在于把零散的经验变成永久的规则。当一条学习内容被验证有效且广泛适用时,你可以将它晋升到更高层级的记忆文件,让所有会话都能生效:
- 行为准则和沟通风格写入
SOUL.md - 工作流和代理分工写入
AGENTS.md - 工具使用技巧和坑点写入
TOOLS.md - 项目通用约定和事实写入
CLAUDE.md - GitHub Copilot 专属上下文写入
.github/copilot-instructions.md
晋升完成后,原日志条目会自动标记为"已晋升",并标注对应的目标路径。
4. 经验一键提取为独立技能
当某条经验足够通用且经过多次验证后,你可以用内置的 extract-skill.sh 脚本,一键将它生成标准的 OpenClaw 技能,实现跨项目复用。比如你总结出了一套高效的 Docker 部署流程,提取成技能后,在任何新项目中都能直接调用。
三、三种安装方式
方式 1:OpenClaw CLI 推荐安装
这是最简单的方式,一条命令搞定:
openclaw skills install self-improving-agent
方式 2:ClawdHub 快速安装
如果你习惯用 ClawdHub 管理技能:
clawdhub install self-improving-agent
方式 3:手动 GitHub 源码克隆
git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
四、标准目录结构
安装完成后,你的 OpenClaw 工作空间会是这样的:
~/.openclaw/workspace/
├── SOUL.md # 行为准则、沟通风格、核心原则
├── AGENTS.md # 多Agent协作工作流
├── TOOLS.md # 各类工具使用规范、避坑要点
├── MEMORY.md # 全局长期项目记忆
├── memory/ # 按日期拆分的日常记忆
└── .learnings/ # 本技能专属学习仓库
├── ERRORS.md
├── LEARNINGS.md
└── FEATURE_REQUESTS.md
如果你用的是 Claude Code 或 GitHub Copilot 等非 OpenClaw 代理,只需要在项目根目录创建 .learnings 目录,并在 CLAUDE.md 或 copilot-instructions.md 中添加引用即可。
五、启用自动钩子
要实现全自动记录,还需要启用官方提供的钩子:
# 复制官方钩子文件
cp -r ~/.openclaw/skills/self-improving-agent/hooks/openclaw ~/.openclaw/hooks/self-improvement
# 正式启用钩子
openclaw hooks enable self-improvement
启用后,每次你提交指令,AI 都会自动提醒你是否需要记录新的学习内容。
六、官方标准日志模板
为了保证日志的可读性和可检索性,官方提供了统一的格式模板:
学习条目(LEARNINGS.md)
## [LRN-YYYYMMDD-XXX] 分类
**Logged**: 2025-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
错误条目(ERRORS.md)
## [ERR-YYYYMMDD-XXX] git-push
**Logged**: 2025-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
七、知识晋升规则
满足以下任意一个条件,就应该将学习内容晋升到更高层级的记忆文件:
- 适用于项目的多个文件或功能模块
- 所有团队成员都需要遵守的约定
- 能够有效预防后续重复出错
- 属于项目内部的专属规范
八、安全与最佳实践
- 严禁记录敏感信息:绝对不要在日志中写入密钥、Token、私钥、完整环境变量或账号密码,只保留脱敏后的摘要
- 立即记录:问题发生后马上归档,避免上下文丢失
- 定期审查:每周花 10 分钟清理
.learnings目录,标记已解决的问题,晋升高价值经验 - 团队协作:如果是团队项目,可以将
.learnings目录提交到 Git,让所有成员共享经验 - 源码审计:所有内置脚本都是开源透明的,你可以自行审计代码确保安全
写在最后
AI Agent 的能力不仅取决于模型本身,更取决于它能积累多少经验。self-improving-agent 给了我们一个零成本、纯本地的方式,让 AI 真正成为会学习、会成长的助手。
从今天开始,让你的 AI 告别"健忘症",每一次开发都能成为下一次的垫脚石。