Title: In-depth Analysis of self-improving-agent: The Self-Evolu...
URL Source: https://www.bestblogs.dev/status/2033497056460079453
Published Time: 2026-03-16 10:54:13
Markdown Content: ClawHub Skills 排名第一的「self-improving-agent」:记录经验、总结错误,形成持久化的经验记忆,提取成 Skills,自我提升,不断总结经验,这个 Skills 的设计理念真的很值得反复琢磨。
- 架构分为三层 -
在项目根目录下建立 .learnings/ 目录,包含三类文件:
· LEARNINGS.md:被用户纠正的错误认知、过时的知识、更优的做法
· ERRORS.md:命令执行失败、异常堆栈、意外行为
· FEATURE_REQUESTS.md:用户希望 Agent 具备但目前缺失的能力
每条记录采用统一的结构化格式:唯一 ID、时间戳、优先级、状态、涉及的代码区域、详细描述、建议修复方案,以及用于关联相似问题的 See Also 字段。
第二层:经验晋升
日志只是原始材料。当某条经验被验证为普遍适用——不是一次性的个案,而是跨文件、跨功能的通用规则——就应该"晋升"到更高层级的配置文件中:
· CLAUDE.md / .github/copilot-instructions.md:项目级的事实和约定,所有 Agents 会话都会读取
· AGENTS.md:Multi Agents 协作的工作流规则
· SOUL.md:OpenClaw 行为准则和沟通风格
· TOOLS.md:工具使用的注意事项和已知坑点
晋升时要求提炼,不是把冗长的事故报告搬过去,而是压缩成简短的防御性规则。比如:
> 原始记录:项目用 pnpm workspaces,我试了 npm install 结果失败了,锁文件是 pnpm-lock.yaml,必须用 pnpm install。
> 晋升后写入 CLAUDE.md:Package manager: pnpm (not npm) - use pnpm install
这个从"事故叙述"到"行为规则"的转化过程,是整个 Skills 最有价值的设计。
第三层:Skill 提取
当某条经验足够通用——不仅对当前项目有用,对其他项目也有参考价值——可以进一步提取为独立的 Skill。Skill 提供了一个 extract-skill. sh 脚本来辅助这个过程,支持 --dry-run 预览。
提取的门槛设得比较合理:需要有 2 个以上的关联条目(说明是反复出现的问题)、已验证的修复方案、非显而易见的知识点。
- 自动化机制 -
· activator. sh(挂载在 UserPromptSubmit):每次用户发送消息后注入一段提醒,让 Agent 评估是否需要记录经验。开销约 50-100 tokens。
· error-detector. sh(挂载在 PostToolUse):监听 Bash 命令执行结果,当检测到非零退出码时触发记录流程。
- 循环模式检测 -
· 每条记录可以带 Pattern-Key(如 simplify.dead_code、harden.input_validation)作为稳定的去重键
· 同一 Pattern-Key 再次出现时,递增 Recurrence-Count,更新 Last-Seen
· 当一个模式满足 出现 3 次以上 + 跨 2 个以上任务 + 30 天内 这三个条件时,自动触发晋升
这个量化的晋升规则避免了两个极端:过早晋升导致配置文件膨胀,或过晚晋升导致同样的错误不断重复。
- 多个 AI Agents 兼容性 -
· OpenClaw:通过 Workspace 注入 + 会话间通信激活
· GitHub Copilot:手动写入 instructions
OpenClaw 平台的集成最深,支持通过 sessions_send 在不同会话之间传递经验,这意味着一个会话踩过的坑可以实时通知到并行运行的其他会话。
Skills 安装地址 clawhub.ai/pskoett/self-i…