mcpField
S
self-improvement

self-improvement

github.com/wanikuaAgent 工作流2.7k42 次安装23 周前更新
代码仓库

关于 self-improvement

self-improvement 是面向编码 Agent 的技能,用 Markdown 记录错误、纠正和实践经验,并将普遍适用的经验整理到项目或工作区指引中。提供 OpenClaw 及其他 Agent 的设置说明。

主要功能

  1. 01记录错误、经验和功能请求
  2. 02使用结构化模板分类条目
  3. 03将经验纳入 Agent 指引文件
  4. 04追踪重复模式并关联条目
  5. 05复查并解决已记录事项

适用场景

  1. 01记录命令或集成故障以供后续复查
  2. 02保存用户纠正或知识缺口
  3. 03记录待后续处理的功能请求
  4. 04将重复出现的经验写入项目指引

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wanikua/danghuangshang --skill self-improvement

安装后在 Claude Code 中输入/self-improvement确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

_meta.json
package.json
.clawdhub/
origin.json
.learnings/
ERRORS.md
FEATURE_REQUESTS.md
LEARNINGS.md
assets/
LEARNINGS.md
SKILL-TEMPLATE.md
hooks/openclaw/
handler.js
handler.ts
HOOK.md
references/
examples.md
hooks-setup.md
openclaw-integration.md
scripts/
activator.sh
error-detector.sh
extract-skill.sh

详细介绍

自我改进技能

将经验和错误记录到 Markdown 文件中,以便持续改进。编码 Agent 之后可以处理这些记录并据此修复问题,重要经验则会被提升到项目记忆中。

快速参考

情况操作
命令/操作失败记录到 .learnings/ERRORS.md
用户纠正了你以 correction 类别记录到 .learnings/LEARNINGS.md
用户想要缺失的功能记录到 .learnings/FEATURE_REQUESTS.md
API/外部工具失败将集成详情记录到 .learnings/ERRORS.md
知识已过时以 knowledge_gap 类别记录到 .learnings/LEARNINGS.md
发现更好的方法以 best_practice 类别记录到 .learnings/LEARNINGS.md
简化/强化反复出现的模式在 .learnings/LEARNINGS.md 中记录/更新,并添加 Source: simplify-and-harden 和稳定的 Pattern-Key
与现有条目相似使用 **See Also** 建立链接,并考虑提高优先级
具有广泛适用性的经验提升到 CLAUDE.md、AGENTS.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          # Multi-agent workflows, delegation patterns
├── SOUL.md            # Behavioral guidelines, personality, principles
├── TOOLS.md           # Tool capabilities, integration gotchas
├── MEMORY.md          # Long-term memory (main session only)
├── memory/            # Daily memory files
│   └── YYYY-MM-DD.md
└── .learnings/        # This skill's log files
    ├── LEARNINGS.md
    ├── ERRORS.md
    └── FEATURE_REQUESTS.md
创建经验记录文件
mkdir -p ~/.openclaw/workspace/.learnings

然后创建日志文件(或从 assets/ 复制):

  • LEARNINGS.md — 纠正、知识缺口、最佳实践
  • ERRORS.md — 命令失败、异常
  • FEATURE_REQUESTS.md — 用户请求的功能
提升目标

当经验被证明具有广泛适用性时,将其提升到工作区文件中:

经验类型提升到示例
行为模式SOUL.md“简洁表达,避免免责声明”
工作流改进AGENTS.md“为长任务启动子 Agent”
工具注意事项TOOLS.md“Git push 前需要先配置身份验证”
会话间通信

OpenClaw 提供了用于跨会话共享经验的工具:

  • sessions_list — 查看当前/近期会话
  • sessions_history — 阅读其他会话的记录
  • sessions_send — 将经验发送到其他会话
  • sessions_spawn — 启动子 Agent 执行后台工作
可选:启用 Hook

如需在会话开始时自动提醒:

# Copy hook to OpenClaw hooks directory
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement

# Enable it
openclaw hooks enable self-improvement

完整详情请参阅 references/openclaw-integration.md。


通用设置(其他 Agent)

对于 Claude Code、Codex、Copilot 或其他 Agent,请在项目中创建 .learnings/:

mkdir -p .learnings

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

在 Agent 文件 AGENTS.md、CLAUDE.md 或 .github/copilot-instructions.md 中添加引用,提醒自己记录经验。(这是基于 Hook 的提醒方式的替代方案)
自我改进工作流

发生错误或收到纠正时:

  1. 将记录写入 .learnings/ERRORS.md、LEARNINGS.md 或 FEATURE_REQUESTS.md
  2. 审查经验,并将具有广泛适用性的内容提升到:
    • CLAUDE.md — 项目信息和约定
    • AGENTS.md — 工作流和自动化
    • .github/copilot-instructions.md — Copilot 上下文

记录格式

经验条目

追加到 .learnings/LEARNINGS.md:

## [LRN-YYYYMMDD-XXX] category

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

### Summary
One-line description of what was learned

### Details
Full context: what happened, what was wrong, what's correct

### Suggested Action
Specific fix or improvement to make

### Metadata
- Source: conversation | error | user_feedback
- Related Files: path/to/file.ext
- Tags: tag1, tag2
- See Also: LRN-20250110-001 (if related to existing entry)
- Pattern-Key: simplify.dead_code | harden.input_validation (optional, for recurring-pattern tracking)
- Recurrence-Count: 1 (optional)
- First-Seen: 2025-01-15 (optional)
- Last-Seen: 2025-01-15 (optional)

---
错误条目

追加到 .learnings/ERRORS.md:

## [ERR-YYYYMMDD-XXX] skill_or_command_name

**Logged**: ISO-8601 timestamp
**Priority**: high
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config

### Summary
Brief description of what failed

### Error

实际错误消息或输出


### Context
- Command/operation attempted
- Input or parameters used
- Environment details if relevant

### Suggested Fix
If identifiable, what might resolve this

### Metadata
- Reproducible: yes | no | unknown
- Related Files: path/to/file.ext
- See Also: ERR-20250110-001 (if recurring)

---
功能请求条目

追加到 .learnings/FEATURE_REQUESTS.md:

## [FEAT-YYYYMMDD-XXX] capability_name

**Logged**: ISO-8601 timestamp
**Priority**: medium
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config

### Requested Capability
What the user wanted to do

### User Context
Why they needed it, what problem they're solving

### Complexity Estimate
simple | medium | complex

### Suggested Implementation
How this could be built, what it might extend

### Metadata
- Frequency: first_time | recurring
- Related Features: 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. 将 **Status**: pending 改为 **Status**: resolved
  2. 在 Metadata 后添加解决说明块:
### Resolution
- **Resolved**: 2025-01-16T09:00:00Z
- **Commit/PR**: abc123 or #42
- **Notes**: Brief description of what was done

其他状态值:

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

提升至项目记忆

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

何时提升
  • 学习经验适用于多个文件或功能
  • 所有贡献者(人类或 AI)都应了解的知识
  • 可防止重复出现的错误
  • 记录项目特定约定
提升目标
目标适合收录的内容
CLAUDE.md适用于所有 Claude 交互的项目事实、约定和注意事项
AGENTS.mdAgent 专属工作流、工具使用模式和自动化规则
.github/copilot-instructions.md面向 GitHub Copilot 的项目背景和约定
SOUL.md行为准则、沟通风格和原则(OpenClaw 工作区)
TOOLS.md工具能力、使用模式和集成注意事项(OpenClaw 工作区)
如何提升
  1. 提炼学习经验,将其概括为简洁的规则或事实
  2. 添加到目标文件的相应部分(如有需要则创建文件)
  3. 更新原始条目:
    • 将 **Status**: pending 改为 **Status**: promoted
    • 添加 **Promoted**: CLAUDE.md、AGENTS.md 或 .github/copilot-instructions.md
提升示例

学习经验(冗长):

项目使用 pnpm 工作区。尝试执行 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
1. Regenerate client: `pnpm run generate:api`
2. Check for type errors: `pnpm tsc --noEmit`

检测重复模式

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

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

精简并强化 Feed

使用此工作流,从 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
    • 添加指向相关条目或任务的 See Also 链接
  5. 如果未找到:
    • 创建一个新的 LRN-... 条目
    • 设置 Source: simplify-and-harden
    • 设置 Pattern-Key、Recurrence-Count: 1 和 First-Seen/Last-Seen
推广规则(系统提示反馈)

满足以下所有条件时,将反复出现的模式推广到 Agent 上下文/系统提示文件中:

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

推广目标:

  • CLAUDE.md
  • AGENTS.md
  • .github/copilot-instructions.md
  • 适用时,为 OpenClaw 工作区级指导添加 SOUL.md / TOOLS.md

将推广后的规则写成简短的预防规则(说明编码前/编码过程中该做什么), 而不是冗长的事件记录。

定期审查

在自然的工作间歇审查 .learnings/:

何时审查
  • 开始新的重要任务前
  • 完成功能后
  • 在有过往经验记录的领域工作时
  • 开发期间每周一次
快速状态检查
# Count pending items
grep -h "Status\*\*: pending" .learnings/*.md | wc -l

# List pending high-priority items
grep -B5 "Priority\*\*: high" .learnings/*.md | grep "^## \["

# Find learnings for a specific area
grep -l "Area\*\*: backend" .learnings/*.md
审查操作
  • 解决已修复的事项
  • 推广适用的经验
  • 关联相关条目
  • 升级反复出现的问题

检测触发条件

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

纠正(→ correction 类别的经验):

  • “不,这不对……”
  • “实际上,应该是……”
  • “你说错了……”
  • “那已经过时了……”

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

  • “还能不能……”
  • “我希望你能……”
  • “有没有办法……”
  • “为什么不能……?”

知识盲区(→ knowledge_gap 类别的经验):

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

错误(→ 错误条目):

  • 命令返回非零退出代码
  • 出现异常或堆栈跟踪
  • 输出或行为出乎预料
  • 超时或连接失败

优先级指南

优先级适用情况
critical阻碍核心功能、存在数据丢失风险或安全问题
high影响重大,波及常见工作流,或问题反复出现
medium影响中等,存在变通方法
low轻微不便、边缘情况、锦上添花

区域标签

用于按代码库区域筛选经验:

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

最佳实践

  1. 立即记录 - 问题刚发生后,相关上下文最完整
  2. 具体明确 - 让后续 Agent 能快速理解
  3. 包含复现步骤 - 尤其是错误
  4. 关联相关文件 - 让修复更容易
  5. 提出具体修复建议 - 不要只写“调查”
  6. 使用一致的类别 - 便于筛选
  7. 积极推广 - 如有疑问,将内容添加到 CLAUDE.md 或 .github/copilot-instructions.md
  8. 定期审查 - 过时的经验会失去价值

Gitignore 选项

将经验保留在本地(每位开发者独享):

.learnings/

在仓库中跟踪经验(全团队共享): 不要将其添加到 .gitignore - 经验将成为共享知识。

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

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

Hook 集成

通过 Agent Hook 启用自动提醒。此功能为选择加入 - 必须显式配置 Hook。

快速设置(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"
      }]
    }]
  }
}
可用的 Hook 脚本
脚本Hook 类型用途
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 规范:
    • 使用包含 name 和 description 的 YAML frontmatter
    • 名称必须与文件夹名称一致
    • 技能文件夹内不要放置 README.md
提取检测触发条件

留意以下信号,判断是否应将经验转化为技能:

在对话中:

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

在经验条目中:

  • 多个 See Also 链接(反复出现的问题)
  • 高优先级且状态为已解决
  • 类别为 best_practice,且广泛适用
  • 用户反馈称赞解决方案
技能质量门槛

提取前,请确认:

  • 解决方案已经过测试且有效
  • 不依赖原始上下文也能清楚理解描述
  • 代码示例自包含
  • 不包含特定于项目的硬编码值
  • 遵循技能命名规范(小写,使用连字符)

多 Agent 支持

此技能支持多种 AI 编码 Agent,并可根据 Agent 类型激活。

Claude Code

激活方式:Hooks(UserPromptSubmit、PostToolUse)
设置:在 .claude/settings.json 中配置 hook
检测:通过 hook 脚本自动检测

Codex CLI

激活方式:Hooks(与 Claude Code 使用相同模式)
设置:在 .codex/settings.json 中配置 hook
检测:通过 hook 脚本自动检测

GitHub Copilot

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

## Self-Improvement

After solving non-obvious issues, consider logging to `.learnings/`:
1. Use format from self-improvement skill
2. Link related entries with See Also
3. Promote high-value learnings to skills

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

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

OpenClaw

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

不依赖特定 Agent 的指导

无论使用哪种 Agent,在以下情况都应进行自我改进:

  1. 发现不明显的内容——无法立即找到解决方案
  2. 纠正自己的错误——最初采用的方法有误
  3. 了解项目约定——发现未记录的模式
  4. 遇到意料之外的错误——尤其是诊断过程较困难时
  5. 找到更好的方法——改进原有解决方案
Copilot Chat 集成

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

完成此任务后,请评估是否应按照自我改进技能格式,将经验记录到 .learnings/ 中。

也可使用快捷提示词:

  • “将此记录到经验条目中”
  • “根据此解决方案创建技能”
  • “检查 .learnings/ 中是否有相关问题”

评论

支持 Markdown