乐于分享
好东西不私藏

OpenClaw龙虾会自我进化了

OpenClaw龙虾会自我进化了
🦞🧠
OpenClaw 技能解析

龙虾会自我进化了
self-improving-agent 

深度解析

它不只是在帮你工作,它在帮自己变得更聪明

用过 OpenClaw 的朋友都遇到过这个场景:Agent 犯了个错,你纠正它,下一次同样的坑它又踩进去了。会话结束,记忆清零,一切归零重来。

这是大模型的原罪——没有跨会话记忆。每次对话都是一个孤立的宇宙,昨天的教训在今天毫无意义。

self-improving-agent这个技能,就是为了解决这个问题。


这个技能干的是什么事

一句话概括:把 OpenClaw Agent 在工作中积累的经验,以结构化方式写到磁盘上,让它在下一次会话里能读取这些记录,不重复犯同样的错。

"Log learnings and errors to markdown files for continuous improvement. Coding agents can later process these into fixes, and important learnings get promoted to project memory."

以上为官方描述原文,大意:将学习记录和错误写入 Markdown 文件,供后续会话读取和处理,重要发现可晋升为项目级永久记忆。

本质上,它构建了一套AI 的外部长期记忆系统——用文件系统模拟人类大脑里的「经验积累」。

核心思路

AI 没有持久记忆 → 但文件系统有 → 把经验写成结构化 Markdown → 下次会话读取注入上下文 → 效果等价于"记住了"


哪些情况会触发记录

技能内置了明确的触发条件,不是什么都记,只记有价值的东西:

⚡ 触发记录的 6 种场景
1
某个命令或操作意外失败——记录错误,避免下次踩同样的坑
2
用户纠正了 Agent("不对""应该是这样")——记录正确姿势
3
用户请求了一个当前不存在的功能——记入 Feature Request
4
外部 API 或工具调用失败——记录集成问题详情
5
Agent 意识到自己的知识过时——记录知识盲区
6
发现了某个任务更好的处理方式——记录最佳实践

判断标准是:解决方案不是立即显而易见的,或者用户给出了明确纠正。那种一眼就知道怎么做的任务,不记。


文件存在哪里,怎么组织的

所有记录落到项目目录下的.learnings/文件夹,分三类:

# OpenClaw workspace 文件结构
~/.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行为准则文件
📈 晋升流程
💡
OpenClaw Agent 发现了有价值的经验
📝
写入 .learnings/ 的对应文件(pending 状态)
🔍
评估:是否广泛适用?是否值得永久保留?
🚀
状态改为 promoted,写入 CLAUDE.md / AGENTS.md / SOUL.md
♻️
下次会话自动注入,OpenClaw Agent 已经"记住"了

Hook 自动化:让记录无感发生

手动记学习日志这件事本身就反人类。官方提供了三个 Hook 脚本,实现自动触发:

HOOK 脚本
hooks/openclaw/
activator.sh # 会话启动时注入记忆文件
error-detector.sh # 检测错误,自动触发记录
extract-skill.sh # 提取高价值 learning 成 skill

启用方式:

启用 HOOK
$cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement
$openclaw hooks enable self-improvement

这样每次会话启动,activator.sh自动把.learnings/的内容注入上下文;出错时error-detector.sh自动触发记录;积累到一定程度,extract-skill.sh把通用 pattern 提炼成新的 skill。

🔒 安全提醒(官方原话)

启用前请先审查这三个 Hook 脚本的内容,确认你接受它们的行为。建议在 project 级别而非全局启用。脚本会以当前用户权限运行,不信任的代码不要启用。如果不确定,先用--dry-run选项测试。


安装方法

推荐:通过 CLAWDHUB 安装
$clawdhub install self-improving-agent
备选:手动 GIT CLONE
$git clone https://github.com/peterskoett/self-improving-agent.git
~/.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 龙虾系列持续更新
有问题欢迎在评论区提,我看到都会回