
报错回顾:给OpenClaw添加错误行为记忆机制,让自己写的skill不断成长
用过 OpenClaw 的朋友应该都遇到过这种情况:它在执行某个任务时踩了个坑,花了好大力气排查修复,结果下次又是同样的坑,它完全不记得之前是怎么爬出来的。
这不是 OpenClaw 不够聪明——它确实会尝试寻找并解决问题,但 AI 的会话本质上是 一次性 的。每次新会话启动,它就”失忆”了。错误排查的过程和经验,随着会话结束一起消失。
所以我写了一个叫「报错回顾」的 skill,专门来解决这个问题。
痛点在哪
OpenClaw 在执行复杂任务时会调用很多工具(Shell、API、浏览器操作等),一个任务下来几十次工具调用,出现几次报错是很正常的事。
每次报错,OpenClaw 会当场尝试修复——调整参数、换一种方法、查看错误信息然后重新尝试。这个过程其实是 有学习 的,但这个学习成果没有落地。下一次新会话中遇到同样的场景,一切从头开始。
报错的类型大致有三种。Skill 文档写错了——某个命令的参数更新了但 SKILL.md 里还是旧的;个人环境配置缺失——NAS 路径、服务器地址这些没记在文档里;AI 自己的判断失误——工具用法是对的但推理过程出了问题。
前两种属于”换个 AI 来也会报错”的问题,归根到底是文档不完善。第三种属于”下次换个思路就行”的模型行为问题。
报错回顾怎么工作
核心逻辑很直白:扫描报错 → 分析根因 → 分类 → 去重 → 持久化。
触发方式
两种:
- 手动触发:在会话中直接说「报错回顾」,它会自动拉取当前 session 的工具调用历史,找出所有报错
- 定时扫描:通过 cron 任务定时扫描一个周期内的全部 session,批量整理
三拍机制(去重 + 压缩 + 计数)
每次执行,每个报错都会按照「错误签名」来处理。签名是一条人能看懂的错误摘要,比如「clawhub publish 命令格式用错」。签名匹配——在已有的报错记录库中搜索,存在则计数器 +1,不存在则新建。压缩——每条记录保持在一行以内,只保留「原因 + 修复方案 + 出现次数」。高频标记——出现 10 次以上的自动标 ⚠️。
三类修复策略
| 类别 | 判断标准 | 修复目标 |
|---|---|---|
| Skill 问题 | SKILL.md 里写了错误的命令或参数 | 修改 SKILL.md |
| 配置缺失 | 缺少个人设备的特殊配置 | 记录到 TOOLS.md |
| 模型误判 | AI 自己的逻辑错误 | 追加到报错记录库,累计计数 |
就这样,错误的修复方案不再随会话消失——Skill 问题修文档,配置缺失补配置,模型误判记下来提醒自己。
执行流程
看看实际跑一次是什么样的:
- 获取当前 session 的完整历史(通过
sessions_history),拿到所有带错误的工具调用记录 - 逐个提取:哪个工具、报了什么错、当时的上下文是什么
- 分析根因,按上面的三类分类
- 分类执行修复——Skill 问题直接改 SKILL.md,配置缺失补充 TOOLS.md,模型误判更新计数器
- 输出结构化汇报,告诉你新增了几条、累积了几次、改了哪些文件
最终报错记录库看上去是这样:
1 | - [grep 无匹配返回 exit 1 被误标为工具 error] → 验证/检查步骤末尾加 || true(2次) |
每条都很短,一眼看到根因和修复方案。高频错误还带 ⚠️ 标记,方便排查哪些问题是反复踩的。
怎么用
去 ClawHub 下载安装即可:
https://clawhub.ai/zhheo/skills/zhheo-session-errorreview
安装后在会话中对 OpenClaw 说「报错回顾」就能触发。如果想让它定期自动扫描,可以让 OpenClaw 配置一个 cron 定时任务。
写在最后
算力在提升,模型在进步,但 OpenClaw 处理复杂任务的能力不仅取决于模型智商,也取决于文档的完备程度。报错回顾不是让 AI 变得更聪明,而是让它的”试错经验”能被沉淀下来,变成可持续积累的资产。
实际用下来最明显的感受是:同样的坑,踩过一次之后真的不会再踩了。而在这之前,同样的坑可以反复踩无数次——它自己不记得,用户看了也头疼。
如果你也在深度使用 OpenClaw,这个 skill 应该能帮你省不少心。
- 感谢你赐予我前进的力量




























