跳至主要内容
小龙虾小龙虾AI
🤖

自我改进代理

记录学习成果、错误及修正以实现持续改进。适用于以下情况:(1) 指令或操作意外失败时,(2) 用户纠正Clau...

下载119.5k
星标1.4k
版本1.0.11
AI 智能体
安全通过
⚙️脚本

技能说明


name: self-improvement
description: "记录学习心得、错误与修正以实现持续改进。使用场景:(1) 命令或操作意外失败时,(2) 用户纠正 Claude 时(如'不对,应该是...'、'实际上...'),(3) 用户请求不存在功能时,(4) 外部 API 或工具失败时,(5) Claude 发现知识库过时或错误时,(6) 发现重复性任务的更优方案时。执行重要任务前需回顾学习记录。"
metadata:

自我提升技能

通过 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] skill_or_command_name

**记录时间**: ISO-8601 时间戳  
**优先级**: 高  
**状态**: 待处理  
**领域**: frontend | backend | infra | tests | docs | config  

### 摘要
简述失败的内容

### 错误

实际错误信息或输出


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

### 建议修复
如果可识别,可能的解决方案

### 元数据
- 可重现: yes | no | unknown  
- 相关文件: path/to/file.ext  
- 参见: ERR-20250110-001 (如果重复发生)

---

功能请求条目

追加到 .learnings/FEATURE_REQUESTS.md

## [FEAT-YYYYMMDD-XXX] capability_name

**记录时间**: ISO-8601 时间戳  
**优先级**: 中  
**状态**: 待处理  
**领域**: frontend | backend | infra | tests | docs | config  

### 请求功能
用户希望实现的功能

### 用户上下文
用户需求的原因及解决的问题

### 复杂度评估
simple | medium | complex

### 建议实现
如何构建此功能,可能扩展的内容

### 元数据
- 频率: first_time | recurring  
- 相关功能: existing_feature_name

---

ID 生成

格式: TYPE-YYYYMMDD-XXX

  • TYPE: LRN (学习), ERR (错误), FEAT (功能)
  • YYYYMMDD: 当前日期
  • XXX: 顺序号或随机 3 字符 (如 001, A7B)

示例: LRN-20250115-001, ERR-20250115-A3F, FEAT-20250115-002

解决问题条目

当问题解决时,更新条目:

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

其他状态值:

  • in_progress - 正在积极处理中
  • wont_fix - 决定不解决(在解决备注中添加原因)
  • promoted - 提升到 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.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. 如果找到:
    • 增加 Recurrence-Count
    • 更新 Last-Seen
    • 添加 参见 链接到相关条目/任务
  5. 如果未找到:
    • 创建一个新的 LRN-... 条目
    • 设置 Source: simplify-and-harden
    • 设置 Pattern-KeyRecurrence-Count: 1First-Seen/Last-Seen

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

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

  • Recurrence-Count >= 3
  • 在至少 2 个不同任务中出现
  • 在 30 天内发生

提升目标:

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

将提升的规则写为简短的预防规则(编码前/编码时该做什么),而非冗长的事件记录。

定期回顾

在自然断点处回顾 .learnings/ 目录:

何时回顾

  • 开始新的主要任务之前
  • 完成一个功能之后
  • 在处理过去有相关学习的领域时
  • 在积极开发期间每周一次

快速状态检查

# 统计待处理项
grep -h "Status\*\*: pending" .learnings/*.md | wc -l

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

# 查找特定领域的学习
grep -l "Area\*\*: backend" .learnings/*.md

回顾操作

  • 解决已修复项
  • 推广适用的学习
  • 链接相关条目
  • 升级重复出现的问题

检测触发点

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

修正(→ 带有 correction 类别的学习):

  • “不,那不对...”
  • “实际上,应该是...”
  • “你关于...的看法是错误的”
  • “那已经过时了...”

功能请求(→ 功能请求):

  • “你能不能也...”
  • “我希望你能...”
  • “有没有办法可以...”
  • “为什么你不能...”

知识缺口(→ 带有 knowledge_gap 类别的学习):

  • 用户提供了你不知道的信息
  • 你参考的文档已过时
  • API 行为与你的理解不符

错误(→ 错误条目):

  • 命令返回非零退出码
  • 异常或堆栈跟踪
  • 意外的输出或行为
  • 超时或连接失败

优先级指南

优先级使用场景
critical阻碍核心功能,存在数据丢失风险,安全问题
high严重影响,影响常见工作流,重复出现的问题
medium中等影响,存在解决方法
low小不便,边缘情况,锦上添花的功能

区域标签

用于按代码库区域过滤学习内容:

区域范围
frontend用户界面、组件、客户端代码
backendAPI、服务、服务端代码
infraCI/CD、部署、Docker、云服务
tests测试文件、测试工具、覆盖率
docs文档、注释、README 文件
config配置文件、环境、设置

最佳实践

  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"
      }]
    }]
  }
}

该配置会在每次提示后注入学习评估提醒(约产生50-100个token的开销)。

完整设置(含错误检测)

{
  "hooks": {
    "UserPromptSubmit": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/activator.sh"
      }]
    }],
    "PostToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/error-detector.sh"
      }]
    }]
  }
}

可用钩子脚本

脚本钩子类型用途
scripts/activator.shUserPromptSubmit任务完成后触发学习评估提醒
scripts/error-detector.shPostToolUse (Bash)检测命令执行错误时触发

详细配置与故障排除请参阅 references/hooks-setup.md 文档。

自动技能提取

当一项学习足够有价值,可以成为可复用的技能时,使用提供的辅助工具进行提取。

技能提取标准

当满足以下任一条件时,学习内容就符合技能提取资格:

标准描述
重复性有指向 2 个以上类似问题的 See Also 链接
已验证状态为 resolved 且有有效的修复方案
非显而易见需要实际调试/调查才能发现
广泛适用不限于特定项目;跨代码库有用
用户标记用户表示“将其保存为技能”或类似内容

提取工作流程

  1. 识别候选:学习内容符合提取标准
  2. 运行辅助工具(或手动创建):
    ./skills/self-improvement/scripts/extract-skill.sh skill-name --dry-run
    ./skills/self-improvement/scripts/extract-skill.sh skill-name
    
  3. 定制 SKILL.md:用学习内容填充模板
  4. 更新学习记录:将状态设置为 promoted_to_skill,添加 Skill-Path
  5. 验证:在新会话中阅读技能,确保其自包含

手动提取

如果您更喜欢手动创建:

  1. 创建 skills/<skill-name>/SKILL.md
  2. 使用 assets/SKILL-TEMPLATE.md 中的模板
  3. 遵循 Agent Skills 规范
    • YAML 前置部分包含 namedescription
    • 名称必须与文件夹名称匹配
    • 技能文件夹内没有 README.md

提取检测触发器

注意以下信号,表明学习内容应转化为技能:

在对话中:

  • “将其保存为技能”
  • “我经常遇到这个问题”
  • “这对其他项目也有用”
  • “记住这个模式”

在学习记录中:

  • 多个 See Also 链接(重复问题)
  • 高优先级 + 已解决状态
  • 类别:best_practice 且具有广泛适用性
  • 用户对解决方案的好评

技能质量门

在提取之前,请验证:

  • 解决方案经过测试且有效
  • 描述清晰,无需原始上下文
  • 代码示例自包含
  • 没有特定项目的硬编码值
  • 遵循技能命名规范(小写,连字符)

多智能体支持

此技能适用于不同的 AI 编码智能体,并支持智能体特定的激活方式。

Claude Code

激活:钩子(UserPromptSubmit、PostToolUse) 设置:在 .claude/settings.json 中配置钩子 检测:通过钩子脚本自动进行

Codex CLI

激活:钩子(与 Claude Code 相同模式) 设置:在 .codex/settings.json 中配置钩子 检测:通过钩子脚本自动进行

GitHub Copilot

激活:手动(不支持钩子) 设置:添加到 .github/copilot-instructions.md

## 自我提升

解决非显而易见的问题后,考虑记录到 `.learnings/`:
1. 使用自我提升技能的格式
2. 使用“参见”链接相关条目
3. 将有价值的见解提升为技能

在聊天中询问:“我应该将此记录为学习吗?”

检测:在会话结束时手动审查

OpenClaw

激活:工作区注入 + 智能体间消息传递 设置:参见上文的“OpenClaw 设置”部分 检测:通过会话工具和工作区文件进行

智能体无关指导

无论使用何种智能体,请在以下情况下应用自我提升:

  1. 发现非显而易见的内容——解决方案并非立即得出
  2. 自我纠正——初始方法存在错误
  3. 学习项目惯例——发现未记录的规律
  4. 遇到意外错误——尤其是诊断过程复杂
  5. 找到更好的方法——改进了原始解决方案

Copilot Chat 集成

对于 Copilot 用户,在相关提示中添加以下内容:

完成此任务后,评估是否应将学习内容记录到 .learnings/ 中,并使用自我提升技能格式。

或使用快速提示:

  • "将此记录到学习"
  • "从此解决方案创建技能"
  • "检查 .learnings/ 中相关的问题"

如何使用「自我改进代理」?

  1. 打开小龙虾AI(Web 或 iOS App)
  2. 点击上方「立即使用」按钮,或在对话框中输入任务描述
  3. 小龙虾AI 会自动匹配并调用「自我改进代理」技能完成任务
  4. 结果即时呈现,支持继续对话优化

相关技能