Coding

报错回顾 - 自动分析并修复工具报错

Try it

当用户说「报错回顾」时,整理当前 session 中工具调用的所有报错,分析根因并自动修复,含分类/去重/压缩/淘汰机制

What it does

当用户说「报错回顾」时,整理当前 session 中工具调用的所有报错,分析根因并自动修复,含分类/去重/压缩/淘汰机制

The skill document

报错回顾 Skill

用户说「报错回顾」时触发。自动整理当前 session 的工具报错历史,分析根因,修复文档。

核心原则

分类

类别判断标准修复位置
SKILL 问题SKILL.md 写了错误/过时的命令、API、参数修 SKILL.md
TOOLS.md 缺失缺少个人环境特有的配置、路径、坑记 TOOLS.md 正文区
模型判断失误AI 自己的逻辑错误,文档没问题记 TOOLS.md 报错记录区(带计数器)

工具使用不当归入模型判断失误。

分类判断:

  • 如果下次换个人来执行也会报错 → 文档/配置问题(SKILL 问题 或 TOOLS.md 缺失)
  • 如果下次换个人来执行不会出错 → 模型判断失误

三拍机制(去重 → 压缩 → 计数)

每次执行,对每个报错按「错误签名」处理:

① 去重(错误签名匹配)

每个错误有一个唯一「签名」— 人能看懂的摘要(如「clawhub publish 命令格式用错」)。

  • 搜索 TOOLS.md 的 ## 报错记录 区,按签名匹配
  • 签名已存在 → 不写新条目,仅计数器 +1
  • 签名不存在 → 新建条目,计数器 = 1

例外:

  • SKILL.md 修正是因为根因已被永久消除,不参与去重计数
  • 如果旧签名对应的内容已被 SKILL.md 修复、不再适用,则删除该条目

② 压缩

每条报错记录固定格式,不超过 1 行:

- **[错误签名]** → 修复说明(N次)

示例:

- [clawhub publish 命令用错] → 改用 `clawhub publish`(2次)
- [npm 全局安装权限拒绝] → 加 `--prefix ~/.npm-global` 安装到用户目录(2次)

⚠️ 签名必须通用化:错误签名要提炼通用规律,不要绑定具体工具名。比如:

  • [weixin-mp-cli npm 权限拒绝] → ✅ [npm 全局安装权限拒绝]
  • [tdl session 误删] → ✅ [误删重要配置文件]
  • [mcpporter mcporter 命令找不到] → ✅ [全局命令未加入 PATH]

这样下次遇到同类问题时,去重匹配才能命中。

去掉详细报错信息,只留「原因+修复+次数」。

③ 计数规则总结

  • 计数 ≥ 10 的条目 → 标记 ⚠️ 高频

  • 极端情况下条目过多,提示用户手动清理

  • 所有报错(含模型判断失误)都记入 TOOLS.md 的 ## 报错记录

  • 同签名错误重复出现 → 不新增,只累加计数

  • SKILL.md 修正是永久修复,不记入计数

  • 汇报时在每条报错后展示当前计数

执行流程

Step 1:获取当前 session 的历史

使用 sessions_history 工具:

  • sessionKey: "current"
  • includeTools: true
  • limit: 适当数值(通常 80 够用,超长 session 分页拉取)

Step 2:提取所有报错

遍历历史消息,找到所有 toolResultisError: true 的记录。

每条报错记录提取:

  1. toolName: 哪个工具报错了
  2. error: 报错内容(用于生成签名)
  3. context: 前一条 assistant 消息的 toolCall arguments
  4. timestamp: 报错时间

Step 3:分析根因并分类

对每个报错按核心原则分为 3 类。

Step 4:修复(按分类执行)

SKILL 问题

  • 找到对应 skill 的实际路径:find ~/.openclaw/skills -name "SKILL.md" -path "*skill名*"
  • 修改 SKILL.md 中错误/过时的内容
  • ⚠️ 不要改 /opt/homebrew/lib/node_modules/openclaw/skills/ 下的

TOOLS.md 缺失

  • 追加到 ~/.openclaw/workspace/TOOLS.md 正文区(不是报错记录区)
  • 去重:先 grep 目标关键词,已有 → 跳过或合并;没有 → 新增

模型判断失误 → 写入 TOOLS.md 报错记录区

格式化的新增/更新流程:

  1. 确定错误签名(简洁摘要)
  2. 读 TOOLS.md 的 ## 报错记录
  3. 按签名匹配:
    • 已存在 → 计数器 +1
    • 不存在 → 在末尾加新条目(计数器 = 1)
  4. 如果条目过多(>100),提示用户手动清理
  5. edit 工具做文本替换(如遇复杂引号嵌套,分多次 edit 完成,每次匹配一小段)

Step 5:修改(直接执行)

无需用户确认,直接执行修改。

Step 6:汇报

修改完成后,给用户的结构化汇报:

## 报错回顾

本次共检测到 X 个报错:新增 Y 条,累加 Z 次计数。

1. **[错误签名]**
   - 分类:SKILL问题 / TOOLS.md缺失 / 模型判断失误
   - 修复:已修改 SKILL.md / 已记录到 TOOLS.md / 计数 +1(当前 N 次)
   - 去重:新建 / 累加计数(已有同类记录)
   ...

### 修改文件清单
- :改了啥

向后兼容

执行前检查:本次 session 中是否已有报错回顾的执行记录。 若有(上次已修复过),则只统计新增报错,不重复报旧的。

注意事项

  • ⚠️ 不要修改 OpenClaw 内部 skill/opt/homebrew/lib/node_modules/openclaw/skills/),只改 ~/.openclaw/skills/ 下的
  • SKILL.md 路径确认:find ~/.openclaw/skills -name "SKILL.md" -path "*skill名*"
  • 字符串替换用 edit 工具,不要用 exec 跑脚本
  • 最终回复不要发原始 JSON,整理成易读的中文汇报
  • TOOLS.md 去重匹配用 grep -q 或 Shell 字符串匹配,不要目测判断

Related skills

轻量级JSON修复工具,自动修复尾随逗号、单引号、未引号键名等常见语法错误。Use when 需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于需要100%确定性的关键决策。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。

支持学生上传任意学科错题截图、试卷照片或粘贴题目文本,基于真实作答智能整理错题,识别题目科目和题型,定位并区分概念模糊、知识点遗漏、计算或操作失误、审题偏差、推理断点、方法选择不当、表达不规范等错误根因,拆解核心知识点并给出巩固建议。也用于在灵犀 AI 助手本地错题本中保存、更新、检索错题;用户明确要求保存或更新时直接写入,未要求保存时先询问确认,再按科目、题型和日期分类整理,统计高频错误类型和制作错题复盘记录。不要主动生成举一反三练习题或额外训练题。

四类错误分类与处理引擎。自动识别临时错误/永久错误/验证错误/上下文错误,并提供相应处理策略(重试/报告/修复/压缩)。当工具调用失败、API 报错、编译测试出错、上下文超限时自动分类并给出处理建议。

全科错题的归档、错因定位与弱项计数中枢。学生说“我这道题做错了”“帮我分析错误原因”“出一道同类题”“我的错题本里有什么”“帮我整理本章错题”,或发来错题图片并说明做错了时可激活——前提是**有一道具体做错的题**;泛泛说"我总出错""帮我总结一下"而没有题,先问题目,不登记、不分析。错因分四维(概念模糊/计算失误/读题失误/方法用错),并按 shared/vocab.md §5 唯一计数“28 天内同一知识点同一维度累计 3 次”。数学、物理、语文、英语的深度子类型定位不在此处,交给对应学科的错误 DNA;理解是否到位交给费曼学习法,提醒由 IM 智能提醒发送。

6 installs

Turn conversations, field observations, and follow-up reasoning from complex collaborative projects into evidence-backed analysis of participant understandin...

在当前对话中自动发现 corrections、feature requests、knowledge gaps 和 errors 四类学习信号,并评估其中已经验证、以后可复用的事实、规则、做法和踩坑;用户无需先说“记住”。适用于“不对,实际应该……/that is outdated”“还能不能……/I wish it could……”“原文或现场和理解不符”“命令非零、异常栈、意外输出、超时或连接失败”,也适用于主动要求记住、复盘、纠正、归档或删除。自动发现只启动评估:明确纠正、稳定能力期望、证据闭环或已收敛诊断满足写入条件才保存;临时诉求、猜测、原始报错和未定位事件不写,也不会后台监听或自行改变行为。

1 installs