Install
openclaw skills install @thcjp/self-evolving-ai自我进化AI是一个让智能体从每次交互中持续学习并自主改进的记忆与进化系统。针对传统自改进代理"记不住、用不上、成本高"三大痛点,构建了智能分层记忆、自动痛点检测、模式复发追踪和按需加载四大核心能力。 核心能力包括:经验/错误/特性请求三类结构化记忆;基于语义的自动分类与优先级评估;跨会话模式复发检测与晋升机制;分层文档加载策略(快速入门→标准用法→高级配置);一键晋升到项目记忆与可复用技能。 适用场景:长期运行的AI代理项目、多人协作的代码仓库、需要积累领域知识的研发团队、希望减少重复犯错的独立开发者、需要将隐性经验转化为显性规则的技术团队。 差异化亮点:相比原始版本,新增智能痛点检测触发器(自动识别纠正/知识缺口/最佳实践)、模式复发追踪(Recurrence-Count跨任务统计+30天窗口晋升规则)、按需加载机制(主文档<150行,详情分层引用)、token成本预估与优化建议、故障排查决策树、分层评审清单。 触发关键词:自我进化、经验捕获、错误学习、模式追踪、记忆晋升、持续改进、self-evolving、learnings、corrections、pattern-detection
openclaw skills install @thcjp/self-evolving-ai让智能体从每次交互中持续学习,自动捕获经验、错误与纠正,并通过模式复发追踪将高频问题晋升为项目级规则。
mkdir -p .learnings
识别情境并记录(参见下方决策表)
定期评审与晋升(参见晋升机制)
| 情境 | 动作 | 目标文件 |
|---|---|---|
| 任务执行中主动修复失败 | 使用自愈流程,记录到 HEALS.md | .learnings/HEALS.md |
| 过去命令/操作失败(非自愈中) | 记录错误条目 | .learnings/ERRORS.md |
| 用户纠正你的回答 | 记录学习条目,类别=correction | .learnings/LEARNINGS.md |
| 用户提出缺失功能 | 记录特性请求 | .learnings/FEATURE_REQUESTS.md |
| 外部API/工具调用失败 | 记录错误条目,含集成详情 | .learnings/ERRORS.md |
| 自愈规则满足晋升条件 | 晋升为项目规则 | CLAUDE.md/AGENTS.md |
| 发现知识已过时 | 记录学习条目,类别=knowledge_gap | .learnings/LEARNINGS.md |
| 发现更优方案 | 记录学习条目,类别=best_practice | .learnings/LEARNINGS.md |
| 重复出现的模式 | 更新条目,递增Recurrence-Count | .learnings/LEARNINGS.md |
| 与已有条目相似 | 添加See Also链接,考虑提升优先级 | 对应条目 |
| 广泛适用的学习 | 晋升到项目记忆 | CLAUDE.md/AGENTS.md |
追加到 .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
pending → in_progress → resolved
↘ wont_fix(附原因)
↘ promoted(晋升到项目记忆)
↘ promoted_to_skill(提取为可复用技能)
修复问题后更新条目:
**Status**: pending 改为 **Status**: resolved### Resolution
- **Resolved**: 2025-01-16T09:00:00Z
- **Commit/PR**: abc123 或 #42
- **Notes**: 简要描述做了什么
当学习具有广泛适用性(非一次性修复)时,晋升为永久项目记忆。
| 目标 | 适合内容 |
|---|---|
CLAUDE.md | 项目事实、约定、注意事项 |
AGENTS.md | 代理特定工作流、工具使用模式、自动化规则 |
.github/copilot-instructions.md | GitHub Copilot的项目上下文与约定 |
**Status**: pending → **Status**: promoted**Promoted**: CLAUDE.md学习条目(冗长):
项目使用 pnpm workspaces。尝试
npm install但失败。 Lock file 是pnpm-lock.yaml。必须用pnpm install。
CLAUDE.md中(简洁):
## 构建与依赖
- 包管理器: pnpm(非npm) - 使用 `pnpm install`
记录与已有条目相似的内容时:
grep -r "keyword" .learnings/**See Also**: ERR-20250110-001Recurrence-Count当以下条件全部满足时,将复发模式晋升到代理上下文/系统提示文件:
Recurrence-Count >= 3晋升目标:
CLAUDE.mdAGENTS.md.github/copilot-instructions.md将晋升规则写成简短的预防规则(编码前/中做什么),而非冗长的事故报告。
从简化与加固工作流摄入复发模式:
pattern_key 作为稳定去重键.learnings/LEARNINGS.md 中已有该键的条目:
grep -n "Pattern-Key: <pattern_key>" .learnings/LEARNINGS.mdLRN-... 条目,设 Source: simplify-and-harden,设Pattern-Key、Recurrence-Count: 1、First-Seen/Last-Seen自动在以下情况记录:
| 优先级 | 使用场景 |
|---|---|
critical | 阻塞核心功能、数据丢失风险、安全问题 |
high | 重大影响、影响常用工作流、复发问题 |
medium | 中等影响、有变通方案 |
low | 轻微不便、边缘情况、可有可无 |
用于按代码区域过滤学习:
| 区域 | 范围 |
|---|---|
frontend | UI、组件、客户端代码 |
backend | API、服务、服务端代码 |
infra | CI/CD、部署、Docker、云 |
tests | 测试文件、测试工具、覆盖率 |
docs | 文档、注释、README |
config | 配置文件、环境、设置 |
grep -h "Status**: pending" .learnings/*.md | wc -l
grep -B5 "Priority**: high" .learnings/*.md | grep "^## ["
grep -l "Area**: backend" .learnings/*.md
当学习足够有价值可成为可复用技能时,使用提供的助手提取。
| 标准 | 描述 |
|---|---|
| 复发 | 有2+个相似问题的See Also链接 |
| 已验证 | 状态为resolved且有有效修复 |
| 非显而易见 | 需要实际调试/调查才发现 |
| 广泛适用 | 非项目特定,跨代码库有用 |
| 用户标记 | 用户说"把这个保存为技能" |
./skills/self-evolving-ai/scripts/extract-skill.sh skill-name --dry-run
./skills/self-evolving-ai/scripts/extract-skill.sh skill-name
promoted_to_skill,添加 Skill-Path提取前验证:
本技能跨不同AI编码代理工作,具有代理特定激活。
.claude/settings.json 配置钩子UserPromptSubmit、PostToolUse) — 实验性,需在config.toml启用 codex_hooks = true<repo>/.codex/hooks.json 或 ~/.codex/hooks.jsonAGENTS.md.github/copilot-instructions.md:## 自我进化
解决非显而易见的问题后,考虑记录到 `.learnings/`:
1. 使用自我进化AI技能格式
2. 用See Also链接相关条目
3. 将高价值学习晋升为技能
在聊天中询问:"应该把这个记录为学习吗?"
{
"hooks": {
"UserPromptSubmit": [{
"hooks": [{
"type": "command",
"command": "${CLAUDE_PROJECT_DIR}/.claude/skills/self-evolving-ai/scripts/activator.sh"
}]
}],
"PostToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "${CLAUDE_PROJECT_DIR}/.claude/skills/self-evolving-ai/scripts/error-detector.sh"
}]
}]
}
}
钩子接收事件payload为stdin的JSON。错误检测器从JSON解析 tool_response 并返回提醒作为 additionalContext JSON输出。
保持学习本地(每开发者):
.learnings/
在仓库中追踪(团队共享): 不添加到.gitignore,学习成为共享知识。
混合(追踪模板,忽略条目):
.learnings/*.md
!.learnings/.gitkeep
Q: 学习条目太多导致上下文膨胀怎么办? A: 使用按需加载机制。主文档只保留快速参考表,详细条目通过grep按需检索。定期将高价值学习晋升到CLAUDE.md后,可在.learnings/中标记为promoted,减少重复加载。
Q: 如何判断学习是否应该晋升? A: 满足以下任一条件即考虑晋升:跨2+任务复发(Recurrence-Count>=3)、适用于多个文件/功能、任何贡献者都应知道、防止重复犯错。
Q: 不同代理平台如何兼容? A: 核心记忆格式(LEARNINGS.md/ERRORS.md/FEATURE_REQUESTS.md)跨平台通用。平台差异仅在激活方式:Claude Code用钩子、Codex用hooks.json、Copilot用指令文件。
Q: 模式复发追踪如何避免误报? A: 使用Pattern-Key作为稳定去重键,要求Recurrence-Count>=3且跨2个不同任务且30天窗口内才晋升。单一任务内的重复不计入。
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 钩子未触发提醒 | 脚本路径错误 | 检查${CLAUDE_PROJECT_DIR}/.claude/skills/self-evolving-ai/scripts/路径是否存在 |
| grep搜索无结果 | 条目ID格式不匹配 | 确认ID格式为TYPE-YYYYMMDD-XXX |
| 晋升后CLAUDE.md重复 | 未更新原条目状态 | 将原条目Status改为promoted并添加Promoted字段 |
| Recurrence-Count未递增 | Pattern-Key不一致 | 确保相同模式使用相同的Pattern-Key字符串 |
| 记忆目录被git追踪但不想提交 | 未配置gitignore | 添加.learnings/到.gitignore |
| PostToolUse钩子无输出 | 未返回additionalContext | 确保脚本输出JSON格式的additionalContext |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| bash | 运行时 | 可选(钩子功能需要) | 系统自带或安装Git Bash |
| grep | 工具 | 可选(搜索功能需要) | 系统自带 |