龙虾会自我进化了
self-improving-agent
深度解析
用过 OpenClaw 的朋友都遇到过这个场景:Agent 犯了个错,你纠正它,下一次同样的坑它又踩进去了。会话结束,记忆清零,一切归零重来。
这是大模型的原罪——没有跨会话记忆。每次对话都是一个孤立的宇宙,昨天的教训在今天毫无意义。
self-improving-agent这个技能,就是为了解决这个问题。
这个技能干的是什么事
一句话概括:把 OpenClaw Agent 在工作中积累的经验,以结构化方式写到磁盘上,让它在下一次会话里能读取这些记录,不重复犯同样的错。
以上为官方描述原文,大意:将学习记录和错误写入 Markdown 文件,供后续会话读取和处理,重要发现可晋升为项目级永久记忆。
本质上,它构建了一套AI 的外部长期记忆系统——用文件系统模拟人类大脑里的「经验积累」。
AI 没有持久记忆 → 但文件系统有 → 把经验写成结构化 Markdown → 下次会话读取注入上下文 → 效果等价于"记住了"
哪些情况会触发记录
技能内置了明确的触发条件,不是什么都记,只记有价值的东西:
判断标准是:解决方案不是立即显而易见的,或者用户给出了明确纠正。那种一眼就知道怎么做的任务,不记。
文件存在哪里,怎么组织的
所有记录落到项目目录下的.learnings/文件夹,分三类:
~/.openclaw/workspace/
│
├── AGENTS.md # 多 Agent 工作流、委派模式
├── SOUL.md # 行为准则、个性、原则
├── TOOLS.md # 工具能力、集成坑点
├── MEMORY.md # 长期记忆(主会话)
├── memory/ # 每日记忆文件
│ └── YYYY-MM-DD.md
│
└── .learnings/ ← 本技能写入的目录
├── LEARNINGS.md # 通用学习记录
├── ERRORS.md # 错误记录
└── FEATURE_REQUESTS.md # 功能需求
每条记录有标准格式,包含时间戳、优先级、状态、所属领域(frontend/backend/infra/docs...),以及最关键的两个字段:Summary(一行描述)和Suggested Action(具体行动建议)。
学到的东西怎么"晋升"
这是设计里最聪明的部分。记录不会永远躺在.learnings/里——有一套晋升机制,把高价值的学习提升到更持久的位置:
| 触发条件 | 写入位置 |
|---|---|
| 单次修复,局部影响 | LEARNINGS.md留在 .learnings/ 下 |
| 跨文件/跨功能都适用 | CLAUDE.md项目全局记忆 |
| 工作流改进、自动化规则 | AGENTS.mdOpenClaw workspace |
| 工具使用坑点 | TOOLS.mdOpenClaw workspace |
| 行为模式、沟通风格 | SOUL.md行为准则文件 |
Hook 自动化:让记录无感发生
手动记学习日志这件事本身就反人类。官方提供了三个 Hook 脚本,实现自动触发:
activator.sh # 会话启动时注入记忆文件
error-detector.sh # 检测错误,自动触发记录
extract-skill.sh # 提取高价值 learning 成 skill
启用方式:
$openclaw hooks enable self-improvement
这样每次会话启动,activator.sh自动把.learnings/的内容注入上下文;出错时error-detector.sh自动触发记录;积累到一定程度,extract-skill.sh把通用 pattern 提炼成新的 skill。
启用前请先审查这三个 Hook 脚本的内容,确认你接受它们的行为。建议在 project 级别而非全局启用。脚本会以当前用户权限运行,不信任的代码不要启用。如果不确定,先用--dry-run选项测试。
安装方法
~/.openclaw/skills/self-improving-agent
它真正解决的问题是什么
光说机制有点抽象,来做个对比。
- 每次会话从零开始
- 同样的错误反复出现
- 你不得不反复纠正
- 积累的经验随对话消失
- 项目越长越累
- 历史错误有记录可查
- 重要经验写进项目记忆
- 同类任务效率持续提升
- 团队共享知识沉淀
- 项目越长越顺
换一个角度:这是在把 OpenClaw Agent 从一个「每次出门都忘带钥匙的人」,改造成一个「会在门口贴备忘录的人」。方法很朴素,但效果实在。
我的使用建议
这个技能适合有持续项目的场景:同一个代码仓库长期开发、固定团队用同一套 OpenClaw workspace、或者你有个人的 AI 工作流需要不断优化。
如果你只是随机问问题、临时任务,装了也意义不大——.learnings/会积累一堆没人看的文件。
有几个使用技巧值得注意:
主动问 Agent "要不要记录这个"。技能说明里有提示:"Ask in chat: Should I log this as a learning?"——你可以直接这样问,OpenClaw Agent 会根据技能格式来判断和记录。
定期 Review .learnings/ 里的内容。pending 状态的条目需要人工决定是否 promote。Agent 会建议,但最终判断还是你来做。
在重大任务前提示 OpenClaw Agent 先读记录。官方说明里有这句话:"Also review learnings before major tasks"——可以在 prompt 里加一句"先看看 .learnings/ 里有没有相关记录"。
最后说几句
这个技能本质上是在弥补 LLM 架构的一个先天缺陷——无状态。它用的方法不是什么黑魔法,就是最朴素的文件 IO:把值得记的东西写下来,下次读进去。
但这个设计思路很有意思:它把「AI 变聪明」这件事,从一个模型训练问题,转化成了一个工程问题。不需要等 Anthropic 更新模型,你自己就能让你的 OpenClaw 越用越好用。
从某种意义上说,这才是个人 AI 工作流的正确打开方式:不只是使用 AI,而是在持续地训练和优化你的 AI 工作方式。
OpenClaw 龙虾系列持续更新
有问题欢迎在评论区提,我看到都会回
夜雨聆风