mcpField
S
self-improvement

self-improvement

github.com/kirkluokunAgent 工作流6640 次安装32 周前更新
代码仓库

关于 self-improvement

self-improvement 是面向编码 Agent 的技能,用 Markdown 记录错误、纠正和功能请求,并将普遍适用的经验整理到项目或工作区指南中。

主要功能

  1. 01记录错误、经验和功能请求
  2. 02分类并跟踪日志条目
  3. 03将经验整理为 Agent 指南
  4. 04识别并关联重复模式
  5. 05可选的 OpenClaw 会话启动钩子

适用场景

  1. 01记录失败的命令以供后续复查
  2. 02保存用户纠正或功能请求
  3. 03将重复问题的解决经验写入项目指南

安装

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

$npx skills add https://github.com/kirkluokun/awesome-a-stock-openclawskills --skill self-improvement

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

包含的文件

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

_meta.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