名称: reflect
描述: |
通过对话分析实现自我改进。从用户纠正和成功模式中提取经验,更新智能体文件或创建新技能。
核心理念:"一次纠正,永不重犯。"
适用场景:(1) 用户明确纠正行为("永远不要做X"、"总是做Y"),
(2) 会话结束或上下文压缩时,(3) 用户请求 /reflect,
(4) 值得保留的成功模式。
版本: 2.0.0
作者: Claude Code Toolkit
允许工具:
- Read
- Write
- Edit
- Grep
- Glob
- Bash
| 命令 | 操作 |
|---|---|
/reflect |
分析对话以提取经验 |
/reflect on |
启用自动反思 |
/reflect off |
禁用自动反思 |
/reflect status |
显示状态和指标 |
/reflect review |
审查低置信度经验 |
/reflect [agent] |
聚焦特定智能体 |
"一次纠正,永不重犯。"
当用户纠正行为时,这些纠正将转化为永久性改进,编码到智能体系统中——适用于所有未来会话。
使用状态管理器检查和初始化状态文件:
# 检查现有状态
python scripts/state_manager.py init
# 状态目录可通过 REFLECT_STATE_DIR 环境变量配置
# 默认:~/.reflect/(便携版)或 ~/.claude/session/(Claude Code)
状态包括:
- reflect-state.yaml - 开关状态、待审查项
- reflect-metrics.yaml - 聚合指标
- learnings.yaml - 所有已应用经验的日志
使用信号检测器识别经验:
python scripts/signal_detector.py --input conversation.txt
| 置信度 | 触发条件 | 示例 |
|---|---|---|
| 高 | 明确纠正 | "从不"、"总是"、"错误"、"停止"、"规则是" |
| 中 | 认可的方法 | "完美"、"完全正确"、接受的输出 |
| 低 | 观察结果 | 有效的模式,未经验证 |
完整检测规则见 signal_patterns.md。
将每个信号映射到适当的目标:
经验类别:
| 类别 | 目标文件 |
|---|---|
| 代码风格 | code-reviewer、backend-developer、frontend-developer |
| 架构 | solution-architect、api-architect、architecture-reviewer |
| 流程 | CLAUDE.md、编排智能体 |
| 领域 | 领域特定智能体、CLAUDE.md |
| 工具 | CLAUDE.md、相关专家 |
| 新技能 | .claude/skills/{name}/SKILL.md |
映射规则见 agent_mappings.md。
某些经验应成为新技能而非智能体更新:
适合创建技能的标准:
- 非显而易见的调试(>10 分钟调查)
- 误导性错误(根本原因与消息不同)
- 通过实验发现的变通方案
- 配置洞察(与文档不同)
- 可重用模式(有助于类似情况)
质量门控(必须全部通过):
- [ ] 可重用:有助于未来任务
- [ ] 非琐碎:需要发现,而不仅仅是文档
- [ ] 具体:可描述确切的触发条件
- [ ] 已验证:解决方案确实有效
- [ ] 无重复:尚不存在
技能创建指南见 skill_template.md。
按以下格式生成输出:
# 反思分析
## 会话上下文
- **日期**:[时间戳]
- **分析消息数**:[数量]
- **焦点**:[所有智能体 或 特定智能体名称]
## 检测到的信号
| # | 信号 | 置信度 | 来源引用 | 类别 |
|---|------|--------|----------|------|
| 1 | [经验] | 高 | "[原话]" | 代码风格 |
| 2 | [经验] | 中 | "[上下文]" | 架构 |
## 建议的智能体更新
### 更改 1:更新 [智能体名称]
**目标**:`[文件路径]`
**章节**:[章节名称]
**置信度**:[高/中/低]
**理由**:[为何进行此更改]
```diff
--- a/path/to/agent.md
+++ b/path/to/agent.md
@@ -82,6 +82,7 @@
## 章节
* 现有规则
+* 来自经验的新规则
质量门控检查:
- [x] 可重用:[原因]
- [x] 非琐碎:[原因]
- [x] 具体:[触发条件]
- [x] 已验证:[验证方式]
- [x] 无重复:[已检查确认]
将创建:.claude/skills/[技能名称]/SKILL.md
reflect: 添加来自会话 [日期] 的经验
智能体更新:
- [经验 1 摘要]
新技能:
- [技能名称]:[简要描述]
提取:[N] 个信号([H] 高、[M] 中、[L] 低置信度)
应用这些更改吗?
- Y - 应用所有更改并提交
- N - 丢弃所有更改
- modify - 调整特定更改
- 1,3 - 仅应用更改 1 和 3
- s1 - 仅应用技能 1
- all-skills - 应用所有技能,跳过智能体更新
### 步骤 6:处理用户响应
**当 `Y`(批准)时:**
1. 使用编辑工具应用每个更改
2. 对修改的文件运行 `git add`
3. 使用生成的提交消息提交
4. 更新经验日志
5. 更新指标
**当 `N`(拒绝)时:**
1. 丢弃建议的更改
2. 记录拒绝以供分析
3. 询问用户是否要修改任何信号
**当 `modify` 时:**
1. 逐个展示每个更改
2. 允许编辑建议的添加内容
3. 应用前再次确认
**当选择性应用(如 `1,3`)时:**
1. 仅应用指定的更改
2. 记录部分接受
3. 仅提交应用的更改
### 步骤 7:更新指标
```bash
python scripts/metrics_updater.py --accepted 3 --rejected 1 --confidence high:2,medium:1
/reflect on
# 在状态文件中设置 auto_reflect: true
# 将在 PreCompact 钩子触发
/reflect off
# 在状态文件中设置 auto_reflect: false
/reflect status
# 显示当前状态和指标
/reflect review
# 显示等待验证的低置信度经验
项目级别(随仓库版本控制):
- .claude/reflections/YYYY-MM-DD_HH-MM-SS.md - 完整反思
- .claude/reflections/index.md - 项目摘要
- .claude/skills/{name}/SKILL.md - 新技能
全局(用户级别):
- ~/.claude/reflections/by-project/{project}/ - 跨项目
- ~/.claude/reflections/by-agent/{agent}/learnings.md - 按智能体
- ~/.claude/reflections/index.md - 全局摘要
某些经验更适合放入自动记忆(~/.claude/projects/*/memory/MEMORY.md)而非智能体文件:
| 经验类型 | 最佳目标 |
|---|---|
| 行为纠正("总是做 X") | 智能体文件 |
| 项目特定模式 | MEMORY.md |
| 重复出现的错误/变通方案 | 新技能 或 MEMORY.md |
| 工具偏好 | CLAUDE.md |
| 领域知识 | MEMORY.md 或复合文档 |
当信号置信度低且为项目特定时,优先写入 MEMORY.md 而非修改智能体。
git revert 轻松回滚如果启用了自动反思,PreCompact 钩子将在交接前触发反思。
当上下文使用率达到 70%+(黄色状态)时,会注入运行 /reflect 的提醒。
该技能包含用于自动集成的钩子脚本:
# 将钩子安装到 Claude 钩子目录
cp hooks/precompact_reflect.py ~/.claude/hooks/
在 ~/.claude/settings.json 中配置:
{
"hooks": {
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "uv run ~/.claude/hooks/precompact_reflect.py --auto"
}
]
}
]
}
}
完整配置选项见 hooks/README.md。
该技能适用于任何支持以下功能的 LLM 工具:
- 文件读写操作
- 文本模式匹配
- Git 操作(可选,用于提交)
# 设置自定义状态目录
export REFLECT_STATE_DIR=/path/to/state
# 或使用默认值
# ~/.reflect/(便携版默认)
# ~/.claude/session/(Claude Code 默认)
与之前的基于智能体的方法不同,此技能直接执行而无需生成子智能体。LLM 读取 SKILL.md 并遵循工作流程。
提交操作包含可用性检查——如果不在 git 仓库中,更改仍会保存但不会提交。
未检测到信号:
- 会话可能没有纠正
- 尝试 /reflect review 检查待处理项
冲突警告:
- 审查引用的现有规则
- 决定新规则是否应覆盖
- 可在应用前修改
未找到智能体文件:
- 检查智能体名称拼写
- 使用 /reflect status 查看可用目标
- 可能需要先创建智能体文件
reflect/
├── SKILL.md # 本文件
├── scripts/
│ ├── state_manager.py # 状态文件 CRUD
│ ├── signal_detector.py # 模式匹配
│ ├── metrics_updater.py # 指标聚合
│ └── output_generator.py # 反思文件和索引生成
├── hooks/
│ ├── precompact_reflect.py # PreCompact 钩子集成
│ ├── settings-snippet.json # settings.json 示例
│ └── README.md # 钩子配置指南
├── references/
│ ├── signal_patterns.md # 检测规则
│ ├── agent_mappings.md # 目标映射
│ └── skill_template.md # 技能生成
└── assets/
├── reflection_template.md # 输出模板
└── learnings_schema.yaml # 模式定义