mcpField
S
self-improvement

self-improvement

github.com/sundial-orgAgent 工作流673204 次安装34 周前更新
代码仓库

关于 self-improvement

self-improvement 是面向编码 Agent 的技能,可将经验、错误和功能请求记录到 Markdown 文件,并提供审查条目及将通用指导纳入项目或工作区记忆的规范。

主要功能

  1. 01记录经验、错误和功能请求
  2. 02使用结构化 Markdown 条目
  3. 03跟踪状态和优先级
  4. 04关联重复出现的条目
  5. 05将经验纳入项目记忆
  6. 06可选的提醒和错误检测钩子

适用场景

  1. 01记录命令失败以便后续处理
  2. 02保存用户纠正和功能请求
  3. 03将反复适用的项目指导写入 Agent 指令
  4. 04审查并解决待处理的经验条目

安装

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

$npx skills add https://github.com/sundial-org/awesome-openclaw-skills --skill self-improvement

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

包含的文件

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

.learnings/
ERRORS.md
FEATURE_REQUESTS.md
LEARNINGS.md
assets/
LEARNINGS.md
SKILL-TEMPLATE.md
hooks/openclaw/
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
与现有条目相似使用 **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 会在每个会话中注入以下文件:

~/.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 推送前需要先配置身份验证”
会话间通信

OpenClaw 提供了可在会话间共享经验的工具:

  • sessions_list — 查看活跃/最近的会话
  • sessions_history — 阅读另一个会话的记录
  • sessions_send — 将经验发送到另一个会话
  • sessions_spawn — 启动子 Agent 执行后台工作
可选:启用钩子

在会话开始时自动提醒:

# 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/ 复制模板,或创建带有标题的文件。

记录格式

经验条目

追加到 .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)

---
错误条目

追加到 .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 注释中说明原因)
  • promoted - 已提升到 CLAUDE.md、AGENTS.md 或 .github/copilot-instructions.md

提升到项目记忆

当某项经验具有普遍适用性(而非仅针对单次问题的修复)时,将其提升为永久项目记忆。

何时提升
  • 经验适用于多个文件或功能
  • 所有贡献者(人类或 AI)都应了解的信息
  • 可防止反复出现的错误
  • 记录项目特有的约定
提升目标
目标适用内容
CLAUDE.md适用于所有 Claude 交互的项目事实、约定和注意事项
AGENTS.mdAgent 专属工作流、工具使用模式和自动化规则
.github/copilot-instructions.mdGitHub 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. 关联条目:在元数据中添加 **See Also**: ERR-20250110-001
  3. 如果问题反复出现,提高优先级
  4. 考虑系统性修复:反复出现的问题通常表明:
    • 文档缺失(→ 提升到 CLAUDE.md 或 .github/copilot-instructions.md)
    • 自动化缺失(→ 添加到 AGENTS.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

启用方式:Hook(UserPromptSubmit、PostToolUse) 设置:在 .claude/settings.json 中配置 Hook 检测:通过 Hook 脚本自动检测

Codex CLI

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

GitHub Copilot

激活方式:手动(不支持钩子) 设置:添加到 .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