Self Improving Agent 1.0.2技能使用说明
自我提升技能
将学习和错误记录到 Markdown 文件中,以便持续改进。编码代理稍后可以处理这些内容以进行修复,重要的学习成果会被提升到项目记忆中。
快速参考
| 情境 | 操作 |
|---|---|
| 命令/操作失败 | 记录到.learnings/ERRORS.md |
| 用户纠正你 | 记录到.learnings/LEARNINGS.md类别为correction |
| 用户需要缺失的功能 | 记录到.learnings/FEATURE_REQUESTS.md |
| API/外部工具失败 | 记录到.learnings/ERRORS.md包含集成详情 |
| 知识已过时 | 记录到.learnings/LEARNINGS.md类别为knowledge_gap |
| 找到更好的方法 | 记录到.learnings/LEARNINGS.md分类为最佳实践 |
| 类似于现有条目 | 与**参见**建立链接,考虑提升优先级 |
| 广泛适用的学习成果 | 提升至CLAUDE.md、AGENTS.md和/或.github/copilot-instructions.md |
| 工作流程改进 | 提升至AGENTS.md(clawdbot工作区) |
| 工具使用注意事项 | 提升至TOOLS.md(clawdbot工作区) |
| 行为模式 | 提升至SOUL.md(clawdbot 工作区) |
设置
创建.learnings/目录在项目根目录下(如果不存在):
mkdir -p .learnings
从assets/复制模板或创建带有标题的文件。
日志记录格式
学习记录条目
追加到.learnings/LEARNINGS.md:
## [LRN-YYYYMMDD-XXX] 类别
**记录时间**: ISO-8601 时间戳
**优先级**:低 | 中 | 高 | 关键
**状态**:待处理
**领域**:前端 | 后端 | 基础架构 | 测试 | 文档 | 配置
### 摘要
所学内容的一行描述
### 详情
完整上下文:发生了什么,什么错了,什么是正确的
### 建议操作
要做的具体修复或改进
### 元数据
- 来源:对话 | 错误 | 用户反馈
- 相关文件:路径/到/文件.扩展名
- 标签:标签1, 标签2
- 另请参阅:LRN-20250110-001 (如果与现有条目相关)
---
错误条目
追加到.learnings/ERRORS.md:
## [ERR-YYYYMMDD-XXX] 技能或命令名称
**记录时间**: ISO-8601 时间戳
**优先级**:高
**状态**:待处理
**领域**:前端 | 后端 | 基础架构 | 测试 | 文档 | 配置
### 摘要
失败内容的简要描述
### 错误
实际错误信息或输出
### 上下文
- 尝试的命令/操作
- 使用的输入或参数
- 环境详情(如相关)
### 建议修复
如果可识别,可能解决此问题的方法
### 元数据
- 可重现:是 | 否 | 未知
- 相关文件:路径/到/文件.扩展名
- 另请参阅:ERR-20250110-001 (如果重复出现)
---
功能请求条目
追加到.learnings/FEATURE_REQUESTS.md:
## [FEAT-YYYYMMDD-XXX] 功能名称
**记录时间**: ISO-8601 时间戳
**优先级**: 中
**状态**: 待处理
**领域**: 前端 | 后端 | 基础设施 | 测试 | 文档 | 配置
### 请求的功能
用户想要做什么
### 用户背景
为什么他们需要它,他们正在解决什么问题
### 复杂度评估
简单 | 中等 | 复杂
### 建议实现方案
如何构建此功能,它可能扩展什么
### 元数据
- 频率: 首次出现 | 重复出现
- 相关功能: 现有功能名称
---
ID 生成
格式:类型-YYYYMMDD-XXX
- 类型:
LRN(学习),ERR(错误),FEAT(功能) - YYYYMMDD: 当前日期
- XXX: 顺序号或随机 3 个字符 (例如,
001,A7B)
示例:LRN-20250115-001,ERR-20250115-A3F,FEAT-20250115-002
解决条目
当问题被修复时,更新条目:
- 将
**状态**: 待处理→**状态**:已解决 - 在元数据后添加解决方案区块:
### 解决方案
- **解决时间**:2025-01-16T09:00:00Z
- **提交/PR**:abc123 或 #42
- **备注**:所做工作的简要说明
其他状态值:
进行中- 正在进行积极处理不予修复- 决定不处理(在解决方案备注中说明原因)已提升- 已提升至 CLAUDE.md、AGENTS.md 或 .github/copilot-instructions.md
提升至项目记忆
当一项学习成果具有广泛适用性(非一次性修复)时,将其提升为永久性项目记忆。
何时提升
- 学习成果适用于多个文件/功能
- 任何贡献者(人类或AI)都应了解的知识
- 防止错误重复发生
- 记录项目特定的约定
提升目标
| 目标文件 | 适合存放的内容 |
|---|---|
CLAUDE.md | 面向所有Claude交互的项目事实、约定、注意事项 |
AGENTS.md | 特定于智能代理的工作流程、工具使用模式、自动化规则 |
.github/copilot-instructions.md | GitHub Copilot 的项目上下文与约定 |
SOUL.md | 行为准则、沟通风格、原则 (clawdbot) |
TOOLS.md | 工具能力、使用模式、集成注意事项 (clawdbot) |
如何推广
- 提炼将学习内容提炼为简洁的规则或事实
- 添加到目标文件的适当部分(如果需要则创建文件)
- 更新原始条目:
- 更改
**状态**: 待处理→**状态**: 已推广 - 添加
**已推广至**: CLAUDE.md、AGENTS.md、或.github/copilot-instructions.md
- 更改
推广示例
学习内容(详细):
项目使用 pnpm 工作区。尝试了
npm install但失败了。 锁定文件是pnpm-lock.yaml。必须使用pnpm install。
在 CLAUDE.md(简洁版):
## 构建与依赖
- 包管理器:pnpm(不是 npm)- 使用 `pnpm install`
学习记录(详细版):
修改 API 端点时,必须重新生成 TypeScript 客户端。 忘记这一点会导致运行时类型不匹配。
在 AGENTS.md(可操作版):
## API 变更后
1. 重新生成客户端:`pnpm run generate:api`
2. 检查类型错误:`pnpm tsc --noEmit`
重复模式检测
如果记录的内容与现有条目类似:
- 先搜索:
grep -r "关键词" .learnings/ - 链接条目:在元数据中添加
**另请参阅**:ERR-20250110-001如果问题持续出现,则 - 提升优先级if issue keeps recurring
- 考虑系统性修复:反复出现的问题通常表明:
- 缺少文档(→ 提升到 CLAUDE.md 或 .github/copilot-instructions.md)
- 缺少自动化(→ 添加到 AGENTS.md)
- 架构问题(→ 创建技术债务工单)
定期回顾
回顾.learnings/在自然断点处:
何时回顾
- 开始一项新的主要任务之前
- 完成一个功能之后
- 在具有过往经验的领域工作时
- 在积极开发期间每周进行
快速状态检查
# 统计待处理项数量
grep -h "Status\*\*: pending" .learnings/*.md | wc -l
# 列出待处理的高优先级项
grep -B5 "Priority\*\*: high" .learnings/*.md | grep "^## \["
# 查找特定领域的经验
grep -l "Area\*\*: backend" .learnings/*.md
回顾操作
- 解决已修复的项
- 提升适用的经验
- 关联相关条目
- 升级反复出现的问题
检测触发器
当你注意到以下情况时自动记录:
更正(→ 带有更正类别的学习):
- "不,那不对……"
- "实际上,应该是……"
- "关于……你错了"
- "那个已经过时了……"
功能请求(→ 功能请求):
- "你还能……"
- "我希望你能……"
- "有没有办法……"
- "为什么你不能……"
知识缺口(→ 标记为知识缺口类别):
- 用户提供了你不知道的信息
- 你参考的文档已过时
- API行为与你的理解不符
错误(→ 错误条目):
- 命令返回非零退出码
- 异常或堆栈跟踪
- 意外输出或行为
- 超时或连接失败
优先级指南
| 优先级 | 何时使用 |
|---|---|
关键 | 阻碍核心功能,存在数据丢失风险,安全问题 |
高 | 影响重大,影响常规工作流程,问题反复出现 |
中 | 影响中等,存在变通方案 |
低 | 轻微不便,边缘情况,锦上添花的功能 |
区域标签
用于按代码库区域筛选经验教训:
| 区域 | 范围 |
|---|---|
前端 | 用户界面、组件、客户端代码 |
后端 | API、服务、服务器端代码 |
基础设施 | 持续集成/持续部署、部署、Docker、云服务 |
测试 | 测试文件、测试工具、覆盖率 |
文档 | 文档、注释、自述文件 |
配置 | 配置文件、环境、设置 |
最佳实践
- 立即记录- 问题刚发生时上下文最清晰
- 具体明确- 未来的智能体需要快速理解
- 包含复现步骤- 特别是对于错误
- 关联相关文件- 使修复更容易
- 建议具体的修复方案- 不仅仅是"调查"
- 使用一致的分类- 便于筛选
- 积极推广- 如果不确定,就添加到 CLAUDE.md 或 .github/copilot-instructions.md
- 定期审查- 过时的学习成果会失去价值
.gitignore 选项
保持学习成果本地化(按开发者):
.learnings/
在代码仓库中跟踪学习成果(团队范围内): 不要添加到 .gitignore - 学习成果将成为共享知识。
混合模式(跟踪模板,忽略条目):
.learnings/*.md
!.learnings/.gitkeep
钩子集成
通过智能体钩子启用自动提醒。这是可选的- 你必须明确配置钩子。
快速设置(Claude Code / Codex)
创建.claude/settings.json在你的项目中:
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "./skills/self-improvement/scripts/activator.sh"
}]
}]
}
}
这会在每次提示后注入一个学习评估提醒(约50-100个令牌的开销)。
完整设置(含错误检测)
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "./skills/self-improvement/scripts/activator.sh"
}]
}],
"PostToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "./skills/self-improvement/scripts/error-detector.sh"
}]
}]
}
}
可用的钩子脚本
| 脚本 | 钩子类型 | 用途 |
|---|---|---|
scripts/activator.sh | UserPromptSubmit | 任务完成后提醒评估学习成果 |
scripts/error-detector.sh | PostToolUse (Bash) | 在命令出错时触发 |
参见references/hooks-setup.md获取详细配置和故障排除信息。
自动技能提取
当某个学习成果足够有价值,可以成为可复用的技能时,请使用提供的辅助工具进行提取。
技能提取标准
当满足以下**任意**条件时,学习成果即有资格进行技能提取:
| 标准 | 描述 |
|---|---|
| 重复出现 | 有参见链接到2个以上类似问题 |
| 已验证 | 状态为已解决带有可行的修复方案 |
| 非显而易见 | 需要实际调试/调查才能发现 |
| 广泛适用 | 非项目特定;在多个代码库中都有用 |
| 用户标记 | 用户说"将此保存为技能"或类似表达 |
提取工作流程
- 识别候选:学习内容符合提取标准
- 运行辅助脚本(或手动创建):
./skills/self-improvement/scripts/extract-skill.sh 技能名称 --dry-run ./skills/self-improvement/scripts/extract-skill.sh 技能名称 - 定制SKILL.md文件:用学习内容填充模板
- 更新学习记录:将状态设置为
已提升为技能,添加技能路径 - 验证在新会话中读取技能,确保其自包含性
手动提取
如果您倾向于手动创建:
- 创建
skills/<技能名称>/SKILL.md - 使用模板,来源为
assets/SKILL-TEMPLATE.md - 遵循代理技能规范:
- 包含
名称和描述 - 的YAML前置元数据
- 名称必须与文件夹名称匹配
- 包含
技能文件夹内无README.md文件
提取检测触发点
留意这些表明某个学习点应转化为技能的信号:
- 在对话中:
- “将此保存为技能”
- “我老是遇到这个问题”
- “这对其他项目会有用”
“记住这个模式”
- 在学习条目中:
多个另请参阅 - 高优先级 + 已解决状态
- 类别:
最佳实践具有广泛适用性 - 用户反馈赞扬该解决方案
技能质量门控
提取前,请验证:
- 解决方案已测试且可运行
- 描述清晰,无需原始上下文
- 代码示例自包含
- 无项目特定的硬编码值
- 遵循技能命名约定(小写,连字符)
多智能体支持
此技能适用于不同的AI编码智能体,并具有智能体特定的激活方式。
Claude Code
激活:钩子(UserPromptSubmit, PostToolUse)设置:.claude/settings.json包含钩子配置检测:通过钩子脚本自动进行
Codex CLI
激活:钩子(与Claude Code模式相同)设置.codex/settings.json包含钩子配置检测:通过钩子脚本自动检测GitHub Copilot
激活
:手动(不支持钩子)设置:添加到.github/copilot-instructions.md:## 自我提升
解决非显而易见的问题后,考虑记录到 `.learnings/` 目录:
1. 使用自我提升技能中的格式
2. 通过“另请参阅”链接相关条目
3. 将高价值学习内容提升为技能
在聊天中询问:“我应该将此记录为一个学习内容吗?”
检测
:在会话结束时手动审查Clawdbot
激活
:工作区注入 + 代理间消息传递设置:在以下文件中配置工作区路径~/.clawdbot/clawdbot.json检测
:通过会话工具和工作区文件(AGENTS.md、SOUL.md、TOOLS.mdTOOLS.mdClawdbot采用基于工作区的模型,并注入提示文件。请参阅
references/clawdbot-integration.md以获取详细的设置说明。与代理无关的指导原则
无论使用何种代理,请在以下情况下应用自我改进:
发现非显而易见的事物
- - 解决方案并非立即可得自我修正
- - 初始方法是错误的学习项目惯例
- - 发现了未记录的规律遇到意外错误
- - 尤其是诊断困难时找到更好的方法
- - 改进了原有的解决方案Copilot Chat 集成
对于 Copilot 用户,请在相关时将此添加到您的提示中:
完成此任务后,评估是否有任何学习内容应记录到
.learnings/
目录中,使用自我改进技能格式。或者使用快速提示:
"将此记录到学习内容中"
- "根据此解决方案创建技能"
- "检查 .learnings/ 目录中的相关问题"
- Clawdbot 集成
Clawdbot 使用基于工作区的提示注入,并针对不同关注点使用专门的文件。
工作区结构
~/clawd/ # 默认工作区(可配置) ├── AGENTS.md # 多代理工作流,委派模式 ├── SOUL.md # 行为准则,沟通风格 ├── TOOLS.md # 工具能力,MCP 集成 └── sessions/ # 会话记录(自动管理)
Clawdbot 提升目标
学习类型
| Learning Type | 晋升至 | 示例 |
|---|---|---|
| 代理协调 | AGENTS.md | "将文件搜索委托给探索代理" |
| 沟通风格 | SOUL.md | "简洁明了,避免免责声明" |
| 工具注意事项 | TOOLS.md | "MCP服务器X需要身份验证刷新" |
| 项目事实 | CLAUDE.md | 标准项目惯例 |
代理间学习
Clawdbot支持基于会话的通信:
- sessions_list- 查看活跃/最近会话
- sessions_history- 读取其他会话的转录记录
- sessions_send- 向其他会话发送消息
混合设置(Claude Code + Clawdbot)
同时使用时:
- 保留
.learnings/用于项目特定学习内容 - 使用clawdbot工作区文件进行跨项目模式管理
- 将高价值学习内容同步到两个系统
参见references/clawdbot-integration.md获取完整设置、晋升格式和故障排除信息。


微信扫一扫,打赏作者吧~