Install
openclaw skills install @zhheo/zhheo-session-errorreviewopenclaw skills install @zhheo/zhheo-session-errorreview用户说「报错回顾」时触发。自动整理当前 session 的工具报错历史,分析根因,修复文档。
| 类别 | 判断标准 | 修复位置 |
|---|---|---|
| SKILL 问题 | SKILL.md 写了错误/过时的命令、API、参数 | 修 SKILL.md |
| TOOLS.md 缺失 | 缺少个人环境特有的配置、路径、坑 | 记 TOOLS.md 正文区 |
| 模型判断失误 | AI 自己的逻辑错误,文档没问题 | 记 TOOLS.md 报错记录区(带计数器) |
工具使用不当归入模型判断失误。
分类判断:
每次执行,对每个报错按「错误签名」处理:
每个错误有一个唯一「签名」— 人能看懂的摘要(如「clawhub publish 命令格式用错」)。
## 报错记录 区,按签名匹配例外:
每条报错记录固定格式,不超过 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 修正是永久修复,不记入计数
汇报时在每条报错后展示当前计数
使用 sessions_history 工具:
sessionKey: "current"includeTools: truelimit: 适当数值(通常 80 够用,超长 session 分页拉取)遍历历史消息,找到所有 toolResult 且 isError: true 的记录。
每条报错记录提取:
对每个报错按核心原则分为 3 类。
find ~/.openclaw/skills -name "SKILL.md" -path "*skill名*"/opt/homebrew/lib/node_modules/openclaw/skills/ 下的~/.openclaw/workspace/TOOLS.md 正文区(不是报错记录区)格式化的新增/更新流程:
## 报错记录 区edit 工具做文本替换(如遇复杂引号嵌套,分多次 edit 完成,每次匹配一小段)无需用户确认,直接执行修改。
修改完成后,给用户的结构化汇报:
## 报错回顾
本次共检测到 X 个报错:新增 Y 条,累加 Z 次计数。
1. **[错误签名]**
- 分类:SKILL问题 / TOOLS.md缺失 / 模型判断失误
- 修复:已修改 SKILL.md / 已记录到 TOOLS.md / 计数 +1(当前 N 次)
- 去重:新建 / 累加计数(已有同类记录)
...
### 修改文件清单
- <path>:改了啥
执行前检查:本次 session 中是否已有报错回顾的执行记录。 若有(上次已修复过),则只统计新增报错,不重复报旧的。
/opt/homebrew/lib/node_modules/openclaw/skills/),只改 ~/.openclaw/skills/ 下的find ~/.openclaw/skills -name "SKILL.md" -path "*skill名*"edit 工具,不要用 exec 跑脚本grep -q 或 Shell 字符串匹配,不要目测判断