📊 页面导航
适用角色与上手难度
🎯 学习产出: 掌握错误日志记录技巧,能独立搭建 AI 错误自愈闭环系统,让 Claude Code 持续进化
🚀 AI 能力提升: 调试诊断、技能扩展
错误自愈 Skill
预计阅读时间: 12 分钟
AI 会犯错误,但同一个错误犯两次就是浪费。这个 Skill 实现了一个错误学习闭环:纠正 → 记录 → 复习 → 避免。
效果演示
你:这个 API 返回格式不对,应该是 { code, data, message } 不是 { success, result }
AI:已修正。记录到备忘录:API 响应格式用 { code, data, message }。
---三天后,新对话---
你:加一个获取用户列表的端点
AI:<读取备忘录> 上次你纠正过:API 响应格式用 { code, data, message }
已按此格式生成。✓
如何工作
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 犯错 │────▶│ 你纠正 │────▶│ 自动记录 │
└──────────┘ └──────────┘ └──────────┘
│
┌──────────┐ ┌──────────┐ │
│ 下次避免 │◀────│ 查备忘录 │◀─────────┘
└──────────┘ └──────────┘
安装
方式一:直接创建 Skill 文件(推荐)
在项目根目录创建 .agents/skills/mistake-log/SKILL.md:
mkdir -p .agents/skills/mistake-log
然后把下面的 Skill 内容复制进去。
方式二:一行命令
mkdir -p .agents/skills/mistake-log && cat > .agents/skills/mistake-log/SKILL.md << 'SKILL_EOF'
---
name: mistake-log
description: 自动收集和复习过往错误——每次纠正后记录,下次类似任务前检查,避免重复踩坑
trigger: after manual correction, before starting new work
---
# 错误自愈备忘录
## 核心理念
你是一个会自我进化的 AI 助手。每次用户纠正你的错误时,把这个教训记下来。下次做类似的事情时,先查备忘录——别再犯同样的错。
## 什么时候记录
以下情况**必须**追加一条备忘录:
1. **用户纠正了你的输出格式**(API 格式、命名风格、文件路径等)
2. **用户说"不对,应该是..."或"不是这样"**
3. **用户手动改了你生成的代码**,说明你生成的版本有问题
4. **你引入了一个 Bug**,用户指出后你才修复
5. **用户说"我之前告诉过你..."** —— 说明你忘了之前的约定
## 备忘录格式
每条记录放在 `.claude/mistakes/` 目录下,一个错误一个文件:
```markdown
---
category: api-format | naming | architecture | dependency | style | bug
severity: high | medium | low
date: YYYY-MM-DD
context: 当时在做什么任务
---
# 错误标题(一句话)
## 错误
我做了什么/输出了什么。
## 纠正
用户告诉我应该怎么做。
## 规则
下次遇到类似场景时,应该遵守的规则。
## 适用场景
什么时候需要检查这条规则。
什么时候检查
每次开始新任务前,快速扫描 .claude/mistakes/ 目录:
- 读目录列表,找
category 和当前任务相关的备忘录
- 读
severity: high 的全部备忘录(这些是反复犯的错)
- 在回复的开头列出本次要注意的规则
示例:
本次任务涉及 API 开发。从备忘录中检出 3 条相关规则:
1. API 响应格式:{ code, data, message }
2. 数据库字段用 snake_case
3. 异常统一用 AppError 抛出
我将严格遵守。
什么时候升级到 CLAUDE.md
当一条规则被触发达 3 次以上,说明它应该进 CLAUDE.md 成为永久约定。此时:
- 告诉用户:"这条规则已触发 3 次,建议加入 CLAUDE.md"
- 把规则写入 CLAUDE.md 的对应章节
- 在备忘录文件里标记
migrated: true
示例对话
用户:这个接口返回的不是 { code, data, message } 格式,改成统一的
AI:已修正。同时追加备忘录:
.claude/mistakes/api-response-format.md
下次 API 开发会自动检查此规则。
---下次对话---
用户:加一个删除用户的接口
AI:<扫描备忘录 → 检出 api-response-format.md>
将使用统一格式 { code, data, message }。
代码如下...
SKILL_EOF
把以上内容保存为文件即可。
## 手动测试
装好后,跟 Claude Code 说:
请检查你的 .claude/mistakes/ 目录。如果为空,说明还没有备忘录。
我们来创建第一条:记住,我的项目 API 响应格式统一用 { code, data, message }。
帮我生成一个获取用户列表的 API 端点。
如果它自动用了 `{ code, data, message }` 格式——Skill 生效了。
---
## Skill 内容(完整复制版)
如果你不想手动创建目录,直接复制下面内容保存到 `.agents/skills/mistake-log/SKILL.md`:
<details>
<summary>点击展开完整 SKILL.md 内容</summary>
```markdown
---
name: mistake-log
description: 自动收集和复习过往错误——每次纠正后记录,下次类似任务前检查,避免重复踩坑
trigger: after manual correction, before starting new work
---
# 错误自愈备忘录
## 核心理念
你是一个会自我进化的 AI 助手。每次用户纠正你的错误时,把这个教训记下来。下次做类似的事情时,先查备忘录——别再犯同样的错。
## 什么时候记录
以下情况**必须**追加一条备忘录:
1. **用户纠正了你的输出格式**(API 格式、命名风格、文件路径等)
2. **用户说"不对,应该是..."或"不是这样"**
3. **用户手动改了你生成的代码**,说明你生成的版本有问题
4. **你引入了一个 Bug**,用户指出后你才修复
5. **用户说"我之前告诉过你..."** —— 说明你忘了之前的约定
## 备忘录格式
每条记录放在 `.claude/mistakes/` 目录下,一个错误一个文件:
```markdown
---
category: api-format | naming | architecture | dependency | style | bug
severity: high | medium | low
date: YYYY-MM-DD
context: 当时在做什么任务
---
# 错误标题(一句话)
## 错误
我做了什么/输出了什么。
## 纠正
用户告诉我应该怎么做。
## 规则
下次遇到类似场景时,应该遵守的规则。
## 适用场景
什么时候需要检查这条规则。
什么时候检查
每次开始新任务前,快速扫描 .claude/mistakes/ 目录:
- 读目录列表,找
category 和当前任务相关的备忘录
- 读
severity: high 的全部备忘录(这些是反复犯的错)
- 在回复的开头列出本次要注意的规则
示例:
本次任务涉及 API 开发。从备忘录中检出 3 条相关规则:
1. API 响应格式:{ code, data, message }
2. 数据库字段用 snake_case
3. 异常统一用 AppError 抛出
我将严格遵守。
什么时候升级到 CLAUDE.md
当一条规则被触发达 3 次以上,说明它应该进 CLAUDE.md 成为永久约定。此时:
- 告诉用户:"这条规则已触发 3 次,建议加入 CLAUDE.md"
- 把规则写入 CLAUDE.md 的对应章节
- 在备忘录文件里标记
migrated: true
示例对话
用户:这个接口返回的不是 { code, data, message } 格式,改成统一的
AI:已修正。同时追加备忘录:
.claude/mistakes/api-response-format.md
下次 API 开发会自动检查此规则。
---下次对话---
用户:加一个删除用户的接口
AI:<扫描备忘录 → 检出 api-response-format.md>
将使用统一格式 { code, data, message }。
代码如下...
</details>
---
## 和 Claude-Mem 的区别
| 维度 | 错误自愈 Skill | Claude-Mem |
|------|---------------|------------|
| 关注点 | **错误和纠正** | 所有上下文 |
| 触发方式 | 每次纠正后自动记录 | 自动 / 手动触发 |
| 存储位置 | `.claude/mistakes/` | `~/.claude/projects/*/memory/` |
| 复习时机 | 每次新任务前主动扫 | 对话开始时注入 |
| 升级机制 | 3 次触发 → CLAUDE.md | 无 |
**两者不冲突,可以同时用**。错误自愈关注"不该做什么",Claude-Mem 关注"应该知道什么"。
---
## 进阶:结合 CLAUDE.md
当错误自愈运行一段时间后,你会积累一批备忘录。把 `severity: high` 且触发 3 次以上的规则整理进 CLAUDE.md:
```markdown
# CLAUDE.md
## 从错误中总结的规则(由 mistake-log Skill 自动维护)
- API 响应格式:`{ code, data, message }`(已触发 4 次)
- 数据库字段用 snake_case,接口字段用 camelCase(已触发 3 次)
- 不要引入新依赖,优先用已有工具(已触发 5 次)
这样即使不开 mistake-log Skill,CLAUDE.md 本身也会兜底。
实战:第一周使用流程
Day 1 — 安装 Skill,跟 Claude Code 说:
从现在开始,每次我纠正你的错误时,自动记录到 .claude/mistakes/ 目录。
每个错误一个文件,格式按照 mistake-log Skill 的规定。
Day 2-5 — 正常使用,你会看到:
- 每次纠正后 AI 追加一个
.md 文件
- 新任务开始时 AI 列出相关备忘录
- 重复的错误越来越少
Day 6 — 检查收益:
ls .claude/mistakes/ | wc -l # 看看积累了多少条
挑出 3 次以上的规则,让 AI 把它们写入 CLAUDE.md。
Week 2+ — CLAUDE.md 兜底,新对话自动遵守;备忘录继续积累边缘 case。
相关资源
功能串联
错误自愈 Skill 的关注点是错误预防——让 AI 从历史错误中学习。和 Claude-Mem(泛化记忆)互补:错误自愈记录"不该做什么",Claude-Mem 记录"应该知道什么"。高频错误(触发 3 次以上)应升级到 CLAUDE.md 成为项目永久约定。