计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
self-improvement-zh【效率与协作】捕获学习内容、错误和纠正以实现持续改进。使用场景:(1) 命令或操作意外失败时,(2) 用户纠正 AI 时('不对,这样错了...', '实际上应该...'),(3) 用户请求不存在的功能时,(4) 外部 API 或工具失败时,(5) AI 意识到其知识过时或不正确时,(6) 发现重复任务的更好方法时。同时建议在执行重要任务前审查学习内容。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
将学习内容和错误记录到 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 |
| 与现有条目相似 | 用 **See Also** 链接,考虑提升优先级 |
| 广泛适用的学习 | 提升到 CLAUDE.md、AGENTS.md 和/或 .github/copilot-instructions.md |
| 工作流改进 | 提升到 AGENTS.md(OpenClaw 工作区) |
| 工具陷阱 | 提升到 TOOLS.md(OpenClaw 工作区) |
| 行为模式 | 提升到 SOUL.md(OpenClaw 工作区) |
OpenClaw 是此技能的主要平台。它使用基于工作区的提示注入和自动技能加载。
通过 ClawdHub(推荐):
clawdhub install self-improvement-zh
手动:
git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improvement-zh
基于 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 提供工具在会话间共享学习内容:
在会话开始时自动提醒:
# 复制钩子到 OpenClaw 钩子目录
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement-zh
# 启用它
openclaw hooks enable self-improvement-zh
详见 references/openclaw-integration.md。
对于 Claude Code、Codex、Copilot 或其他代理,在项目中创建 .learnings/:
mkdir -p .learnings
从 assets/ 复制模板或创建带标题的文件。
当错误或纠正发生时:
.learnings/ERRORS.md、LEARNINGS.md 或 FEATURE_REQUESTS.mdCLAUDE.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
---
格式:TYPE-YYYYMMDD-XXX
LRN (学习), ERR (错误), FEAT (功能)001, A7B)示例:LRN-20250115-001, ERR-20250115-A3F, FEAT-20250115-002
当问题被修复时,更新条目:
**Status**: pending → **Status**: resolved### 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当学习内容具有广泛适用性(不是一次性修复)时,将其提升到永久项目记忆。
| 目标 | 内容归属 |
|---|---|
CLAUDE.md | 所有 Claude 交互的项目事实、约定、陷阱 |
AGENTS.md | 代理特定的工作流、工具使用模式、自动化规则 |
.github/copilot-instructions.md | GitHub Copilot 的项目上下文和约定 |
SOUL.md | 行为指南、沟通风格、原则(OpenClaw 工作区) |
TOOLS.md | 工具能力、使用模式、集成陷阱(OpenClaw 工作区) |
**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`
如果记录与现有条目相似的内容:
grep -r "keyword" .learnings/**See Also**: ERR-20250110-001使用此工作流从 simplify-and-harden 技能中提取重复模式,并将其转化为持久的提示指导。
simplify_and_harden.learning_loop.candidates。pattern_key 作为稳定的去重键。.learnings/LEARNINGS.md 中搜索具有该键的现有条目:
grep -n "Pattern-Key: <pattern_key>" .learnings/LEARNINGS.mdRecurrence-CountLast-SeenSee Also 链接到相关条目/任务LRN-... 条目Source: simplify-and-hardenPattern-Key、Recurrence-Count: 1 和 First-Seen/Last-Seen当以下所有条件都为真时,将重复模式提升到代理上下文/系统提示文件:
Recurrence-Count >= 3提升目标:
CLAUDE.mdAGENTS.md.github/copilot-instructions.mdSOUL.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 的学习):
错误(→ 错误条目):
| 优先级 | 何时使用 |
|---|---|
critical | 阻止核心功能,数据丢失风险,安全问题 |
high | 影响重大,影响常见工作流,重复问题 |
medium | 影响中等,存在解决方法 |
low | 轻微不便,边缘情况,锦上添花 |
用于按代码库区域过滤学习内容:
| 区域 | 范围 |
|---|---|
frontend | UI、组件、客户端代码 |
backend | API、服务、服务器端代码 |
infra | CI/CD、部署、Docker、云 |
tests | 测试文件、测试工具、覆盖率 |
docs | 文档、注释、README |
config | 配置文件、环境、设置 |
保持学习内容本地(每个开发者):
.learnings/
在仓库中跟踪学习内容(团队范围): 不要添加到 .gitignore - 学习内容成为共享知识。
混合(跟踪模板,忽略条目):
.learnings/*.md
!.learnings/.gitkeep
通过代理钩子启用自动提醒。这是选择性加入 - 你必须明确配置钩子。
在项目中创建 .claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "./skills/self-improvement/scripts/activator.sh"
}]
}]
}
}
这会在每个提示后注入学习评估提醒(约 50-100 个令牌开销)。
{
"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.sh | UserPromptSubmit | 在任务后提醒评估学习内容 |
scripts/error-detector.sh | PostToolUse (Bash) | 在命令错误时触发 |
详见 references/hooks-setup.md 进行详细配置和故障排除。
当学习内容足够有价值成为可重用技能时,使用提供的助手提取它。
当满足以下任一条件时,学习内容符合技能提取条件:
| 标准 | 描述 |
|---|---|
| 重复 | 有 See Also 链接到 2+ 个相似问题 |
| 已验证 | 状态为 resolved 且有有效修复 |
| 非显而易见 | 需要实际调试/调查才能发现 |
| 广泛适用 | 非项目特定;跨代码库有用 |
| 用户标记 | 用户说"把这个保存为技能"或类似 |
./skills/self-improvement/scripts/extract-skill.sh skill-name --dry-run
./skills/self-improvement/scripts/extract-skill.sh skill-name
promoted_to_skill,添加 Skill-Path如果你更喜欢手动创建:
skills/<skill-name>/SKILL.mdassets/SKILL-TEMPLATE.md 中的模板name 和 description 的 YAML 前置数据注意这些信号表明学习应该成为技能:
在对话中:
在学习条目中:
See Also 链接(重复问题)best_practice 具有广泛适用性在提取之前,验证:
此技能适用于不同的 AI 编码代理,具有代理特定的激活。
激活:钩子(UserPromptSubmit、PostToolUse)
设置:带钩子配置的 .claude/settings.json
检测:通过钩子脚本自动
激活:钩子(与 Claude Code 相同的模式)
设置:带钩子配置的 .codex/settings.json
检测:通过钩子脚本自动
激活:手动(无钩子支持)
设置:添加到 .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 设置"部分 检测:通过会话工具和工作区文件
无论使用什么代理,在以下情况下应用自我改进:
对于 Copilot 用户,在相关时将此添加到你的提示中:
完成此任务后,评估是否应使用自我改进技能格式将任何学习内容记录到
.learnings/。
或使用快速提示: