文档大纲

OpenClaw 自改进技能self-improving告别重复踩坑

你有没有过这样的经历:昨天刚让 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 告别"健忘症",每一次开发都能成为下一次的垫脚石。

阅读量: 494