首页龙虾技能列表 › self-improving-agent — 自我改进代理

self-improving-agent — 自我改进代理

v3.0.13

捕获学习成果、错误和修正以实现持续改进。适用于命令/操作失败、用户纠正AI、请求新功能、API/工具失败、知识过时或发现更好方法等场景。

3200· 388,000·5646 当前·5942 累计·💬 53
by @pskoett·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/4
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
该技能的代码、钩子和指令与其捕获学习和提醒的目的相符,不请求无关凭证或下载任意远程代码,但应在启用前审查和选择钩子。
评估建议
该技能如声称般工作,注入轻量级提醒、检测命令错误和创建本地学习文件。安装或启用钩子前,请验证上游仓库、审查脚本、谨慎全局启用PostToolUse钩子并遵循技能指导。...
详细分析 ▾
用途与能力
名称和描述与包含的文件和脚本匹配,提醒输出、错误检测、技能创建和钩子处理均如预期,无不相关的凭证、网络端点或惊讶的二进制文件。
指令范围
运行时指令和脚本在本地工作空间文件上操作,并注入虚拟提醒文件。错误检测器通过CLAUDE_TOOL_OUTPUT环境变量检测失败,适用于PostToolUse钩子,但意味着命令输出可能被钩子检查。SKILL.md明确警告不要记录机密信息,应优先使用编辑后的摘要,这是合适的。如果计划记录字面工具输出或转录,请审查此行为。
安装机制
无内置安装规格,安装为手动或通过ClawdHub进行。SKILL.md建议从GitHub仓库克隆(作者仓库),正常,但注册表元数据列为“Source: unknown”,无主页——在复制或运行脚本前,请验证上游仓库和提交。技能本身不执行从不信任URL的下载或存档提取。
凭证需求
技能未声明任何必需的环境变量或凭证。脚本预计在运行时提供上下文(CLAUDE_TOOL_OUTPUT)用于错误检测,适用于分析工具输出的钩子。包不请求无关的机密或云凭证。
持久化与权限
默认always:false。钩子和文件为可选启用:启用OpenClaw钩子或复制文件会修改本地OpenClaw钩子/技能目录,但技能本身不要求永久包含或高权限。提取脚本可以在当前工作空间下创建文件(作为支撑工具的预期行为),并包含一些路径安全检查。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv3.0.132026/1/6

重新上传,无变化

● 无害

安装命令 点击复制

官方npx clawhub@latest install self-improving-agent
镜像加速npx clawhub@latest install self-improving-agent --registry https://cn.clawhub-mirror.com

技能文档

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

首次使用初始化

在记录任何内容之前,确保项目或工作区根目录中存在 .learnings/ 目录和文件。如果缺少任何文件,请创建它们:

mkdir -p .learnings
[ -f .learnings/LEARNINGS.md ] || printf "# Learnings\n\nCorrections, insights, and knowledge gaps captured during development.\n\nCategories: correction | insight | knowledge_gap | best_practice\n\n---\n" > .learnings/LEARNINGS.md
[ -f .learnings/ERRORS.md ] || printf "# Errors\n\nCommand failures and integration errors.\n\n---\n" > .learnings/ERRORS.md
[ -f .learnings/FEATURE_REQUESTS.md ] || printf "# Feature Requests\n\nCapabilities requested by the user.\n\n---\n" > .learnings/FEATURE_REQUESTS.md

切勿覆盖现有文件。如果 .learnings/ 已初始化,此操作不会产生任何效果。

不要记录秘密、令牌、私钥、环境变量或完整的源代码/配置文件,除非用户明确要求该级别的细节。优先使用简短摘要或脱敏摘录,而非原始命令输出或完整转录。

如果需要自动提醒或设置协助,请使用钩子集成中描述的选入钩子工作流。

快速参考

情况操作
命令/操作失败记录到 .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.mdSource: simplify-and-harden 和稳定的 Pattern-Key
与已有条目相似See Also 链接,考虑提升优先级
广泛适用的学习提升到 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

使用上面显示的标题内联创建文件。避免从当前仓库或工作区读取模板,除非您明确信任该路径。

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

自我改进工作流

当错误或纠正发生时:

  • 记录到 .learnings/ERRORS.mdLEARNINGS.mdFEATURE_REQUESTS.md
  • 审查并将广泛适用的学习提升到:
- CLAUDE.md - 项目事实和约定 - AGENTS.md - 工作流和自动化 - .github/copilot-instructions.md - Copilot 上下文

记录格式

学习条目

追加到 .learnings/LEARNINGS.md

## [LRN-YYYYMMDD-XXX] category

Logged: ISO-8601 时间戳 Priority: low | medium | high | critical Status: pending Area: frontend | backend | infra | tests | docs | config

Summary

一句话描述学到了什么

Details

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

Suggested Action

具体的修复或改进建议

Metadata

  • Source: conversation | error | user_feedback
  • Related Files: path/to/file.ext
  • Tags: tag1, tag2
  • See Also: LRN-20250110-001(如果与已有条目相关)
  • Pattern-Key: simplify.dead_code | harden.input_validation(可选,用于重复模式跟踪)
  • Recurrence-Count: 1(可选)
  • First-Seen: 2025-01-15(可选)
  • Last-Seen: 2025-01-15(可选)


错误条目

追加到 .learnings/ERRORS.md

## [ERR-YYYYMMDD-XXX] skill_or_command_name

Logged: ISO-8601 时间戳 Priority: high Status: pending Area: frontend | backend | infra | tests | docs | config

Summary

简要描述什么失败了

Error

实际错误消息或输出

Context

  • 尝试的命令/操作
  • 使用的输入或参数
  • 相关的环境详情
  • 相关输出的摘要或脱敏摘录(默认避免完整转录和包含秘密的数据)

Suggested Fix

如果可识别,可能的解决方案

Metadata

  • Reproducible: yes | no | unknown
  • Related Files: path/to/file.ext
  • See Also: ERR-20250110-001(如果是重复问题)


功能请求条目

追加到 .learnings/FEATURE_REQUESTS.md

## [FEAT-YYYYMMDD-XXX] capability_name

Logged: ISO-8601 时间戳 Priority: medium Status: pending Area: frontend | backend | infra | tests | docs | config

Requested Capability

用户想要做什么

User Context

为什么需要它,解决什么问题

Complexity Estimate

simple | medium | complex

Suggested Implementation

如何构建,可能扩展什么

Metadata

  • Frequency: first_time | recurring
  • Related Features: existing_feature_name


ID 生成

格式:TYPE-YYYYMMDD-XXX

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

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

解决条目

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

  • Status: pendingStatus: resolved
  • 在 Metadata 后添加解决块:
### Resolution
  • Resolved: 2025-01-16T09:00:00Z
  • Commit/PR: abc123 或 #42
  • Notes: 简要描述做了什么

其他状态值:

  • in_progress - 正在积极处理
  • wont_fix - 决定不处理(在 Resolution 注释中添加原因)
  • promoted - 已提升到 CLAUDE.md、AGENTS.md 或 .github/copilot-instructions.md

提升到项目记忆

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

何时提升

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

提升目标

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

如何提升

  • 提炼学习为简洁的规则或事实
  • 添加到目标文件的适当部分(如需要则创建文件)
  • 更新原始条目:
- 将 Status: pendingStatus: promoted - 添加 Promoted: CLAUDE.mdAGENTS.md.github/copilot-instructions.md

提升示例

学习(详细):

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

在 CLAUDE.md 中(简洁):

## Build & Dependencies
  • Package manager: pnpm (not npm) - use pnpm install

学习(详细):

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

在 AGENTS.md 中(可操作):

## After API Changes
  • Regenerate client: pnpm run generate:api
  • Check for type errors: pnpm tsc --noEmit

重复模式检测

如果记录的内容与已有条目相似:

  • 先搜索grep -r "keyword" .learnings/
  • 链接条目:在 Metadata 中添加 See Also: ERR-20250110-001
  • 如果问题持续出现则提升优先级
  • 考虑系统性修复:重复问题通常表明:
- 缺少文档(→ 提升到 CLAUDE.md 或 .github/copilot-instructions.md) - 缺少自动化(→ 添加到 AGENTS.md) - 架构问题(→ 创建技术债务工单)

简化与加固反馈

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

摄取工作流

  • 从任务摘要中读取 simplify_and_harden.learning_loop.candidates
  • 对每个候选项,使用 pattern_key 作为稳定的去重键。
  • .learnings/LEARNINGS.md 中搜索具有该键的已有条目:
- grep -n "Pattern-Key: " .learnings/LEARNINGS.md
  • 如果找到:
- 递增 Recurrence-Count - 更新 Last-Seen - 添加 See Also 链接到相关条目/任务
  • 如果未找到:
- 创建新的 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轻微不便、边缘情况、锦上添花

领域标签

用于按代码库区域筛选学习记录:

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

最佳实践

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

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

这是可选的。推荐的默认设置是仅激活器;仅在您对钩子脚本检查命令输出中的错误模式感到满意时才启用 PostToolUse

可用钩子脚本

脚本钩子类型用途
scripts/activator.shUserPromptSubmit在任务后提醒评估学习
scripts/error-detector.shPostToolUse (Bash)在命令错误时触发
详见 references/hooks-setup.md 获取详细配置和故障排除。

自动技能提取

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

技能提取标准

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

标准描述
重复出现有 2+ 个相似问题的 See Also 链接
已验证状态为 resolved 且有可用的修复
非显而易见需要实际调试/调查才能发现
广泛适用非项目特定;跨代码库有用
用户标记用户说"把这个保存为技能"或类似

提取工作流

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

手动提取

如果您更喜欢手动创建:

  • 创建 skills//SKILL.md
  • 使用 assets/SKILL-TEMPLATE.md 中的模板
  • 遵循代理技能规范
- 包含 namedescription 的 YAML frontmatter - 名称必须与文件夹名称匹配 - 技能文件夹内不要有 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

## Self-Improvement

After solving non-obvious issues, consider logging to .learnings/:

  • Use format from self-improvement skill
  • Link related entries with See Also
  • Promote high-value learnings to skills

Ask in chat: "Should I log this as a learning?"

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

OpenClaw

激活方式:工作区注入 + 代理间消息 设置:参见上方"OpenClaw 设置"部分 检测:通过会话工具和工作区文件

代理无关指导

无论使用哪个代理,在以下情况下应用自我改进:

  • 发现非显而易见的事情 - 解决方案不是立即得到的
  • 纠正自己 - 最初的方法是错误的
  • 学习项目约定 - 发现了未文档化的模式
  • 遇到意外错误 - 特别是诊断困难的情况
  • 找到更好的方法 - 改进了原始解决方案

Copilot Chat 集成

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

完成此任务后,评估是否应将任何学习记录到 .learnings/,使用自我改进技能格式。

或使用快速提示:

  • "将此记录到学习日志"
  • "从该解决方案创建技能"
  • "检查 .learnings/ 中的相关问题"
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务