OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  self-improvement:通过捕获错误与修正实现智能体的自主进化学习

self-improvement:通过捕获错误与修正实现智能体的自主进化学习

 
  fullstack ·  2026-02-05 18:22:15 · 3 次点击  · 0 条评论  

名称: self-improvement
描述: "捕获学习心得、错误和修正,以实现持续改进。在以下情况使用:(1) 命令或操作意外失败时,(2) 用户纠正 Claude 时(例如'不,那是错的...'、'实际上...'),(3) 用户请求不存在的功能时,(4) 外部 API 或工具失败时,(5) Claude 意识到其知识已过时或不正确时,(6) 为重复性任务发现更好的方法时。在开始主要任务前,也应回顾学习记录。"
元数据:


自我改进技能

将学习心得和错误记录到 Markdown 文件中,以实现持续改进。后续编码代理可以处理这些记录以生成修复方案,重要的学习内容会被提升到项目记忆中。

快速参考

情境 操作
命令/操作失败 记录到 .learnings/ERRORS.md
用户纠正你 记录到 .learnings/LEARNINGS.md,类别为 correction
用户想要缺失的功能 记录到 .learnings/FEATURE_REQUESTS.md
API/外部工具失败 记录到 .learnings/ERRORS.md,包含集成细节
知识已过时 记录到 .learnings/LEARNINGS.md,类别为 knowledge_gap
发现更好的方法 记录到 .learnings/LEARNINGS.md,类别为 best_practice
简化/加固重复模式 记录/更新 .learnings/LEARNINGS.md,设置 Source: simplify-and-harden 和一个稳定的 Pattern-Key
与现有条目类似 使用 **参见** 链接,考虑提升优先级
广泛适用的学习内容 提升到 CLAUDE.mdAGENTS.md 和/或 .github/copilot-instructions.md
工作流改进 提升到 AGENTS.md(OpenClaw 工作区)
工具使用技巧 提升到 TOOLS.md(OpenClaw 工作区)
行为模式 提升到 SOUL.md(OpenClaw 工作区)

OpenClaw 设置(推荐)

OpenClaw 是本技能的主要平台。它使用基于工作区的提示注入,并自动加载技能。

安装

通过 ClawdHub(推荐):

clawdhub install self-improving-agent

手动安装:

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

此版本基于原仓库为 openclaw 重构:https://github.com/pskoett/pskoett-ai-skills - https://github.com/pskoett/pskoett-ai-skills/tree/main/skills/self-improvement

工作区结构

OpenClaw 在每个会话中注入以下文件:

~/.openclaw/workspace/
├── AGENTS.md          # 多代理工作流、委托模式
├── SOUL.md            # 行为准则、个性、原则
├── TOOLS.md           # 工具能力、集成技巧
├── MEMORY.md          # 长期记忆(仅主会话)
├── memory/            # 每日记忆文件
│   └── YYYY-MM-DD.md
└── .learnings/        # 本技能的日志文件
    ├── LEARNINGS.md
    ├── ERRORS.md
    └── FEATURE_REQUESTS.md

创建学习文件

mkdir -p ~/.openclaw/workspace/.learnings

然后创建日志文件(或从 assets/ 复制):
- LEARNINGS.md — 修正、知识缺口、最佳实践
- ERRORS.md — 命令失败、异常
- FEATURE_REQUESTS.md — 用户请求的功能

提升目标

当学习内容被证明具有广泛适用性时,将其提升到工作区文件:

学习类型 提升到 示例
行为模式 SOUL.md "保持简洁,避免免责声明"
工作流改进 AGENTS.md "为长任务生成子代理"
工具使用技巧 TOOLS.md "Git push 需要先配置认证"

会话间通信

OpenClaw 提供工具在会话间共享学习内容:

  • sessions_list — 查看活动/最近的会话
  • sessions_history — 读取另一个会话的转录记录
  • sessions_send — 向另一个会话发送学习内容
  • sessions_spawn — 为后台工作生成子代理

可选:启用钩子

用于在会话开始时自动提醒:

# 将钩子复制到 OpenClaw 钩子目录
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement

# 启用它
openclaw hooks enable self-improvement

完整细节请参见 references/openclaw-integration.md


通用设置(其他代理)

对于 Claude Code、Codex、Copilot 或其他代理,在你的项目中创建 .learnings/

mkdir -p .learnings

assets/ 复制模板或创建带标题的文件。

在代理文件 AGENTS.md、CLAUDE.md 或 .github/copilot-instructions.md 中添加引用,以提醒自己记录学习内容。(这是钩子提醒的替代方案)

自我改进工作流

当发生错误或修正时:
1. 记录到 .learnings/ERRORS.mdLEARNINGS.mdFEATURE_REQUESTS.md
2. 审查并将广泛适用的学习内容提升到:
- CLAUDE.md - 项目事实和约定
- AGENTS.md - 工作流和自动化
- .github/copilot-instructions.md - Copilot 上下文

记录格式

学习条目

追加到 .learnings/LEARNINGS.md

## [LRN-YYYYMMDD-XXX] 类别

**记录时间**: ISO-8601 时间戳
**优先级**: 低 | 中 | 高 | 关键
**状态**: 待处理
**领域**: 前端 | 后端 | 基础设施 | 测试 | 文档 | 配置

### 摘要
一行描述所学内容

### 详情
完整上下文:发生了什么,哪里错了,什么是正确的

### 建议操作
具体的修复或改进措施

### 元数据
- 来源: 对话 | 错误 | 用户反馈
- 相关文件: 路径/到/文件.ext
- 标签: 标签1, 标签2
- 参见: LRN-20250110-001(如果与现有条目相关)
- 模式键: simplify.dead_code | harden.input_validation(可选,用于跟踪重复模式)
- 重复计数: 1(可选)
- 首次出现: 2025-01-15(可选)
- 最后出现: 2025-01-15(可选)

---

错误条目

追加到 .learnings/ERRORS.md

## [ERR-YYYYMMDD-XXX] 技能_或_命令_名称

**记录时间**: ISO-8601 时间戳
**优先级**: 高
**状态**: 待处理
**领域**: 前端 | 后端 | 基础设施 | 测试 | 文档 | 配置

### 摘要
失败情况的简要描述

### 错误

实际的错误信息或输出


### 上下文
- 尝试的命令/操作
- 使用的输入或参数
- 相关的环境细节

### 建议修复
如果可识别,可能解决此问题的方法

### 元数据
- 可重现: 是 | 否 | 未知
- 相关文件: 路径/到/文件.ext
- 参见: ERR-20250110-001(如果重复出现)

---

功能请求条目

追加到 .learnings/FEATURE_REQUESTS.md

## [FEAT-YYYYMMDD-XXX] 能力_名称

**记录时间**: ISO-8601 时间戳
**优先级**: 中
**状态**: 待处理
**领域**: 前端 | 后端 | 基础设施 | 测试 | 文档 | 配置

### 请求的能力
用户想要做什么

### 用户上下文
他们为什么需要它,他们正在解决什么问题

### 复杂度估计
简单 | 中等 | 复杂

### 建议实现
如何构建,可能扩展什么

### 元数据
- 频率: 首次 | 重复
- 相关功能: 现有_功能_名称

---

ID 生成

格式:TYPE-YYYYMMDD-XXX
- TYPE: LRN(学习)、ERR(错误)、FEAT(功能)
- YYYYMMDD: 当前日期
- XXX: 顺序号或随机 3 个字符(例如 001A7B

示例:LRN-20250115-001ERR-20250115-A3FFEAT-20250115-002

解决条目

当问题被修复时,更新条目:

  1. **状态**: 待处理**状态**: 已解决
  2. 在元数据后添加解决块:
### 解决
- **解决时间**: 2025-01-16T09:00:00Z
- **提交/PR**: abc123 或 #42
- **备注**: 所做工作的简要描述

其他状态值:
- 进行中 - 正在积极处理
- 不予修复 - 决定不处理(在解决备注中添加原因)
- 已提升 - 提升到 CLAUDE.md、AGENTS.md 或 .github/copilot-instructions.md

提升到项目记忆

当学习内容具有广泛适用性(不是一次性修复)时,将其提升到永久的项目记忆中。

何时提升

  • 学习内容适用于多个文件/功能
  • 任何贡献者(人类或 AI)都应该知道的知识
  • 防止重复错误
  • 记录项目特定的约定

提升目标

目标 应包含的内容
CLAUDE.md 项目事实、约定、所有 Claude 交互的技巧
AGENTS.md 代理特定的工作流、工具使用模式、自动化规则
.github/copilot-instructions.md GitHub Copilot 的项目上下文和约定
SOUL.md 行为准则、沟通风格、原则(OpenClaw 工作区)
TOOLS.md 工具能力、使用模式、集成技巧(OpenClaw 工作区)

如何提升

  1. 提炼学习内容为简洁的规则或事实
  2. 添加到目标文件的适当部分(如果需要则创建文件)
  3. 更新原始条目:
    - 将 **状态**: 待处理**状态**: 已提升
    - 添加 **已提升**: CLAUDE.mdAGENTS.md.github/copilot-instructions.md

提升示例

学习内容(详细):

项目使用 pnpm 工作区。尝试了 npm install 但失败了。
锁定文件是 pnpm-lock.yaml。必须使用 pnpm install

在 CLAUDE.md 中(简洁):

## 构建与依赖
- 包管理器: pnpm(不是 npm)- 使用 `pnpm install`

学习内容(详细):

修改 API 端点时,必须重新生成 TypeScript 客户端。
忘记这一点会导致运行时类型不匹配。

在 AGENTS.md 中(可操作):

## API 更改后
1. 重新生成客户端: `pnpm run generate:api`
2. 检查类型错误: `pnpm tsc --noEmit`

重复模式检测

如果记录的内容与现有条目类似:

  1. 先搜索grep -r "关键词" .learnings/
  2. 链接条目:在元数据中添加 **参见**: ERR-20250110-001
  3. 提升优先级如果问题持续出现
  4. 考虑系统性修复:重复出现的问题通常表明:
    - 缺少文档(→ 提升到 CLAUDE.md 或 .github/copilot-instructions.md)
    - 缺少自动化(→ 添加到 AGENTS.md)
    - 架构问题(→ 创建技术债务工单)

简化与加固反馈

使用此工作流从 simplify-and-harden 技能中提取重复模式,并将其转化为持久的提示指导。

提取工作流

  1. 从任务摘要中读取 simplify_and_harden.learning_loop.candidates
  2. 对于每个候选,使用 pattern_key 作为稳定的去重键。
  3. .learnings/LEARNINGS.md 中搜索具有该键的现有条目:
    - grep -n "Pattern-Key: <pattern_key>" .learnings/LEARNINGS.md
  4. 如果找到:
    - 增加 重复计数
    - 更新 最后出现
    - 添加 参见 链接到相关条目/任务
  5. 如果未找到:
    - 创建一个新的 LRN-... 条目
    - 设置 来源: simplify-and-harden
    - 设置 模式键重复计数: 1首次出现/最后出现

提升规则(系统提示反馈)

当满足以下所有条件时,将重复模式提升到代理上下文/系统提示文件中:

  • 重复计数 >= 3
  • 在至少 2 个不同的任务中出现过
  • 在 30 天的时间窗口内发生

提升目标:
- CLAUDE.md
- AGENTS.md
- .github/copilot-instructions.md
- SOUL.md / TOOLS.md(适用于 OpenClaw 工作区级别的指导)

将提升的规则写为简短的预防规则(在编码前/编码时做什么),而不是冗长的事件报告。

定期审查

在自然断点处审查 .learnings/

何时审查

  • 开始新主要任务之前
  • 完成一个功能之后
  • 在处理有过去学习内容的区域时
  • 在活跃开发期间每周一次

快速状态检查

# 计算待处理项数量
grep -h "状态\*\*: 待处理" .learnings/*.md | wc -l

# 列出待处理的高优先级项
grep -B5 "优先级\*\*: 高" .learnings/*.md | grep "^## \["

# 查找特定领域的学习内容
grep -l "领域\*\*: 后端" .learnings/*.md

审查操作

  • 解决已修复的项
  • 提升适用的学习内容
  • 链接相关条目
  • 上报重复出现的问题

检测触发器

当你注意到以下情况时自动记录:

修正(→ 类别为 correction 的学习):
- "不,那不对..."
- "实际上,应该是..."
- "你关于...是错的"
- "那是过时的..."

功能请求(→ 功能请求):
- "你还能..."
- "我希望你能..."
- "有没有办法..."
- "为什么你不能..."

知识缺口(→ 类别为 knowledge_gap 的学习):
- 用户提供了你不知道的信息
- 你引用的文档已过时
- API 行为与你的理解不同

错误(→ 错误条目):
- 命令返回非零退出码
- 异常或堆栈跟踪
- 意外的输出或行为
- 超时或连接失败

优先级指南

优先级 何时使用
关键 阻塞核心功能、有数据丢失风险、安全问题
影响显著、影响常见工作流、重复出现的问题
中等影响、存在变通方案
轻微不便、边缘情况、锦上添花的功能

领域标签

用于按代码库区域筛选学习内容:

领域 范围
前端 UI、组件、客户端代码
后端 API、服务、服务器端代码
基础设施 CI/CD、部署、Docker、云
测试 测试文件、测试工具、覆盖率
文档 文档、注释、README
配置 配置文件、环境、设置

最佳实践

  1. 立即记录 - 问题发生后上下文最新鲜
  2. 具体明确 - 未来的代理需要快速理解
  3. 包含重现步骤 - 特别是对于错误
  4. 链接相关文件 - 使修复更容易
  5. 建议具体修复 - 不仅仅是"调查"
  6. 使用一致的类别 - 支持筛选
  7. 积极提升 - 如有疑问,添加到 CLAUDE.md 或 .github/copilot-instructions.md
  8. 定期审查 - 过时的学习内容会失去价值

Gitignore 选项

保持学习内容本地化(每个开发者):

.learnings/

在仓库中跟踪学习内容(团队共享):
不要添加到 .gitignore - 学习内容成为共享知识。

混合模式(跟踪模板,忽略条目):

.learnings/*.md
!.learnings/.gitkeep

钩子集成

通过代理钩子启用自动提醒。这是选择加入的 - 你必须显式配置钩子。

快速设置(Claude Code / Codex)

在你的项目中创建 .claude/settings.json

{
  "hooks": {
    "UserPromptSubmit": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/activator.sh"
      }]
    }]
  }
}
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor