在AI编程助手的使用过程中,我们经常会遇到一个令人头疼的问题:每次对话都是全新的开始。上周调试了半天的报错,这次AI还是不会处理;你告诉它"这个项目用pnpm,不要用npm",下次开新对话又回到原点。这种重复踩坑、纠正白费的情况,严重影响了工作效率。
self-improving-agent就是为了解决这个问题而生的。它通过一套精巧的机制,在AI没有长期记忆的硬约束下,构建出了一个持续学习的闭环。简单来说,它让AI能够自动记录、存储和复用项目经验,就像人类工程师一样不断积累知识。
self-improving-agent的核心在于它能自动识别并记录有价值的学习时机。具体来说,它会监控以下四种情况:
用户纠正:当用户说出"不对"、"应该是..."、"你理解错了"这类话时,AI会立即记录这次纠正,包括错误的认知、正确的做法以及适用范围。
执行失败:通过error-detector.sh脚本,系统会在每次Bash命令执行后自动检查输出,匹配16种常见错误模式(如npm ERR!、Permission denied等)。一旦检测到报错,就会提示AI记录错误现象、上下文和修复方案。
最佳实践:当AI在调试过程中发现非显而易见的解法、特殊API用法或处理某类问题的模式时,这些"经验"会被记录为best_practice,供下次直接复用。
能力缺失:当用户提出AI当前无法满足的需求时,这个需求会被记录到功能请求日志,方便后续跟踪和实现。
所有记录下来的经验并不是杂乱无章地堆在一起,而是按照性质分类存储:
每条记录都包含时间戳、优先级、状态、所属区域和详细上下文等信息,形成一个完整的知识库。
self-improving-agent最核心的设计就是知识晋升机制。日志里的条目不是一次性记录,而是有完整的生命周期管理:
.learnings/目录下,随项目走CLAUDE.md或AGENTS.md,每次新会话自动加载SKILL.md,发布到ClawdHub供所有项目安装复用晋升后的知识会产生实际效果。例如,晋升到CLAUDE.md的内容,Claude每次开新对话都会自动读取。这意味着AI不会再犯用错包管理器或漏掉API重新生成这类错误——不需要每次提醒,它自己就知道。
每次记录新条目时,系统会先检索是否已有类似记录。如果有,会:
See Also关联链接Recurrence-Count计数累加这确保了"同一个坑踩三次"不会被当作三个独立事件处理,而是被识别为需要系统性解决的问题。
对于足够通用、价值高的学习内容,可以一键打包为独立技能:
bash复制./scripts/extract-skill.sh docker-m1-fixes --dry-run # 预览
./scripts/extract-skill.sh docker-m1-fixes # 创建
脚本会生成标准结构的SKILL.md脚手架,填充内容后可发布到ClawdHub,实现知识的跨项目流通。
self-improving-agent通过Hook机制实现自动化触发:
.claude/settings.json中配置Hook.github/copilot-instructions.md中添加提醒bash复制# OpenClaw(推荐)
clawdhub install self-improving-agent
# 手动安装
git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
在实际项目中,self-improving-agent带来了显著的效率提升:
.learnings/目录下的内容,清理过时或错误的记录self-improving-agent的理念可以扩展到其他领域:
error-detector.sh脚本的核心是模式匹配。它维护了一个常见错误模式列表,包括:
当命令执行后,脚本会检查输出是否匹配这些模式,如果匹配则触发记录流程。
晋升决策基于以下因素:
系统会根据这些因素计算一个晋升分数,超过阈值则触发晋升。
self-improving-agent代表了一种新的AI应用范式——不是简单地执行任务,而是在任务中持续学习和改进。随着技术的演进,这类自我改进的系统将会变得越来越智能和实用。