#经验记忆

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 个以上的关联条目(说明是反复出现的问题)、已验证的修复方案、非显而易见的知识点。 - 自动化机制 - Skills 提供了两个 Hook 脚本,通过 Agent 的钩子系统实现半自动化: · activator. sh(挂载在 UserPromptSubmit):每次用户发送消息后注入一段提醒,让 Agent 评估是否需要记录经验。开销约 50-100 tokens。 · error-detector. sh(挂载在 PostToolUse):监听 Bash 命令执行结果,当检测到非零退出码时触发记录流程。 - 循环模式检测 - Skills 专门设计了一套去重和升级机制来处理反复出现的同类问题: · 每条记录可以带 Pattern-Key(如 simplify.dead_code、harden.input_validation)作为稳定的去重键 · 同一 Pattern-Key 再次出现时,递增 Recurrence-Count,更新 Last-Seen · 当一个模式满足 出现 3 次以上 + 跨 2 个以上任务 + 30 天内 这三个条件时,自动触发晋升 这个量化的晋升规则避免了两个极端:过早晋升导致配置文件膨胀,或过晚晋升导致同样的错误不断重复。 - 多个 AI Agents 兼容性 - · Claude Code / Codex:通过 Hook 脚本激活 · OpenClaw:通过 Workspace 注入 + 会话间通信激活 · GitHub Copilot:手动写入 instructions OpenClaw 平台的集成最深,支持通过 sessions_send 在不同会话之间传递经验,这意味着一个会话踩过的坑可以实时通知到并行运行的其他会话。 Skills 安装地址