Install
openclaw skills install @thcjp/meta-agent-optimizer-freeopenclaw skills install @thcjp/meta-agent-optimizer-freeAI Agent的学习闭环系统。三类日志结构化记录,从错误与纠正中提取可复用知识。
AI Agent最大的浪费不是Token,而是"上次踩过的坑下次又踩"。元代理优化器免费版将零散的错误、纠正、特性需求转化为结构化的知识库,让每次犯错都成为进化的燃料。
┌─────────────────────────────────────────────────────────────────┐
│ 元代理优化器免费版 (META OPTIMIZER FREE) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 检测触发器 │ -> │ 分类路由 │ -> │ 日志记录 │ │
│ │ 4类信号捕获 │ │ LRN/ERR/FEAT │ │ 标准化ID │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │
│ v │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 复发检测 │ <- │ 定期复盘 │ <- │ 状态管理 │ │
│ │ See Also关联 │ │ 周/里程碑 │ │ pending->... │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │
│ v v │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ 优先级提升 │ │ 项目记忆提升 │ │
│ │ recurrence≥3 │ │ CLAUDE.md等 │ │
│ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
创建学习日志目录,立即开始记录:
mkdir -p .learnings
cat > .learnings/LEARNINGS.md << 'EOF'
EOF
cat > .learnings/ERRORS.md << 'EOF'
EOF
cat > .learnings/FEATURE_REQUESTS.md << 'EOF'
EOF
在基础搭建之上,配置检测触发器与复盘提醒:
cat > .learnings/INDEX.md << 'EOF'
[暂无]
[暂无]
[暂无]
1. 学习条目:0
2. 错误条目:0
3. 特性请求:0
EOF
cat > .learnings/REVIEW_TEMPLATE.md << 'EOF'
[YYYY-MM-DD] 至 [YYYY-MM-DD]
4. 学习:X
5. 错误:X
6. 特性请求:X
[列出]
[列出recurrence≥3的条目]
[列出可提升至CLAUDE.md的条目]
EOF
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
| 日志类型 | 触发场景 | 文件位置 | ID前缀 |
|---|---|---|---|
| 学习(Learning) | 用户纠正/发现更好方法/知识更新 | .learnings/LEARNINGS.md | LRN |
| 错误(Error) | 命令失败/异常抛出/超时/意外行为 | .learnings/ERRORS.md | ERR |
| 特性请求(Feature) | 用户想要缺失功能/能力不足 | .learnings/FEATURE_REQUESTS.md | FEAT |
输入: 用户提供三类日志分类记录所需的指令和必要参数。 处理: 按照skill规范执行三类日志分类记录操作,遵循单一意图原则。 输出: 返回三类日志分类记录的执行结果,包含操作状态和输出数据。
格式:TYPE-YYYYMMDD-XXX
| 组成 | 说明 | 示例 |
|---|---|---|
| TYPE | 日志类型 | LRN / ERR / FEAT |
| YYYYMMDD | 当前日期 | 20260118 |
| XXX | 顺序号或随机3字符 | 001 / A7B |
示例:LRN-20260118-001、ERR-20260118-A3F、FEAT-20260118-002
输入: 用户提供标准化ID生成所需的指令和必要参数。 处理: 按照skill规范执行标准化ID生成操作,遵循单一意图原则。 输出: 返回标准化ID生成的执行结果,包含操作状态和输出数据。
**Logged**: ISO-8601 timestamp
**Priority**: low | medium | high | critical
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
一行描述学到了什么
完整上下文:发生了什么、哪里错了、正确的是什么
具体的修复或改进建议
- Source: conversation | error | user_feedback
- Related Files: path/to/file.ext
- Tags: tag1, tag2
- See Also: LRN-20260110-001(关联条目)
- Pattern-Key: simplify.dead_code(可选,用于复发跟踪)
- Recurrence-Count: 1(可选)
- First-Seen: 2026-01-15(可选)
- Last-Seen: 2026-01-15(可选)
输入: 用户提供学习条目格式所需的指令和必要参数。 处理: 按照skill规范执行学习条目格式操作,遵循单一意图原则。 输出: 返回学习条目格式的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作**Logged**: ISO-8601 timestamp
**Priority**: high
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
简要描述什么失败了
实际错误消息或输出
- 尝试的命令/操作
- 使用的输入或参数
- 相关环境详情
如果可识别,可能解决的方案
- Reproducible: yes | no | unknown
- Related Files: path/to/file.ext
- See Also: ERR-20260110-001(如果复发)
输入: 用户提供错误条目格式所需的指令和必要参数。 处理: 按照skill规范执行错误条目格式操作,遵循单一意图原则。 输出: 返回错误条目格式的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作**Logged**: ISO-8601 timestamp
**Priority**: medium
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config
用户想要做什么
为什么需要,解决什么问题
simple | medium | complex
如何构建,可能扩展什么
- Frequency: first_time | recurring
- Related Features: existing_feature_name
输入: 用户提供特性请求条目格式所需的指令和必要参数。 处理: 按照skill规范执行特性请求条目格式操作,遵循单一意图原则。 输出: 返回特性请求条目格式的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作| 状态 | 含义 | 触发条件 |
|---|---|---|
| pending | 待处理 | 新建条目默认状态 |
| in_progress | 处理中 | 正在解决 |
| resolved | 已解决 | 问题已修复 |
| wont_fix | 不修复 | 决定不处理(需注明原因) |
| promoted | 已提升 | 提升至CLAUDE.md/AGENTS.md |
| promoted_to_skill | 已提取为技能 | 提取为独立技能 |
输入: 用户提供状态管理所需的指令和必要参数。 处理: 按照skill规范执行状态管理操作,遵循单一意图原则。 输出: 返回状态管理的执行结果,包含操作状态和输出数据。
| 优先级 | 使用场景 | 示例 |
|---|---|---|
| critical | 阻塞核心功能、数据丢失风险、安全问题 | 生产环境崩溃 |
| high | 重大影响、影响常见工作流、复发问题 | API集成失败 |
| medium | 中等影响、存在变通方案 | 文档过时 |
| low | 轻微不便、边缘场景、锦上添花 | UI对齐微调 |
输入: 用户提供优先级矩阵所需的指令和必要参数。 处理: 按照skill规范执行优先级矩阵操作,遵循单一意图原则。 输出: 返回优先级矩阵的执行结果,包含操作状态和输出数据。
| 区域 | 范围 | 典型场景 |
|---|---|---|
| frontend | UI、组件、客户端代码 | React组件错误 |
| backend | API、服务、服务端代码 | 数据库连接失败 |
| infra | CI/CD、部署、Docker、云 | 部署脚本错误 |
| tests | 测试文件、测试工具、覆盖率 | 测试用例失败 |
| docs | 文档、注释、README | 文档过时 |
| config | 配置文件、环境、设置 | 环境变量缺失 |
输入: 用户提供区域标签体系所需的指令和必要参数。 处理: 按照skill规范执行区域标签体系操作,遵循单一意图原则。 输出: 返回区域标签体系的执行结果,包含操作状态和输出数据。
自动捕获以下4类信号并记录:
纠正信号(→ 学习,category=correction):
特性请求信号(→ 特性请求):
知识差距信号(→ 学习,category=knowledge_gap):
错误信号(→ 错误条目):
输入: 用户提供检测触发器所需的指令和必要参数。 处理: 按照skill规范执行检测触发器操作,遵循单一意图原则。 输出: 返回检测触发器的执行结果,包含操作状态和输出数据。
当记录类似条目时:
grep -r "keyword" .learnings/See Also: ERR-20260110-001输入: 用户提供复发模式检测所需的指令和必要参数。 处理: 按照skill规范执行复发模式检测操作,遵循单一意图原则。 输出: 返回复发模式检测的执行结果,包含操作状态和输出数据。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:特性三类日志闭环、从纠正与错误中提、取可复用知识、元代理优化器免费、提供结构化的学习、闭环系统、将零散的错误、特性需求转化为可、可提升、可复用的知识库、每次犯错都是进化、的燃料、每次纠正都是规则、的种子、when、模型调用、智能对话、LLM、应用时使用、不适用于需要、确定性的关键决策、适用于独立开发者、企业团队和自动化、工作流场景等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
痛点:花了2小时调试一个数据库连接问题,下周又遇到类似问题,完全不记得上次怎么解决的。
使用方式:
[遇到错误]
Agent内部执行:
1. 捕获错误信号(命令返回非零)
2. 创建ERR-20260118-001条目
3. 记录错误消息、上下文、修复建议
4. 状态设为pending
[解决问题后]
1. 更新条目状态为resolved
2. 添加解决方案
[下次遇到类似问题]
1. grep搜索.learnings/
2. 找到ERR-20260118-001
3. 直接应用上次的解决方案
效果:同类问题解决时间从2小时降至5分钟。
痛点:用户每次都要纠正"用pnpm不用npm",但这个规则从未沉淀为项目约定。
使用方式:
用户:"不对,应该用pnpm install,不是npm install"
Agent内部执行:
1. 捕获纠正信号
2. 创建LRN-20260118-001,category=correction
3. 记录:项目使用pnpm,不是npm
4. Source: user_feedback
[3次复发后]
1. Recurrence-Count=3
2. 提升至CLAUDE.md:
- Package manager: pnpm (not npm) - use `pnpm install`
3. 状态改为promoted
效果:项目约定自动文档化,新人入职即知。
痛点:用户零散提出的特性需求没有统一收集,产品规划时遗漏。
使用方式:
用户:"有没有办法批量导出?"
Agent内部执行:
1. 捕获特性请求信号
2. 创建FEAT-20260118-001
3. 记录:批量导出能力
4. Complexity: medium
5. Frequency: first_time
[每月复盘]
1. 查看所有FEAT条目
2. 按Frequency排序(recurring优先)
3. 按Complexity评估(simple优先)
4. 形成产品需求池
效果:特性需求零遗漏,产品规划有数据支撑。
| 角色 | 典型场景 | 推荐日志类型 | 核心价值 |
|---|---|---|---|
| 开发者 | 错误经验沉淀 | ERR为主 | 同类问题5分钟解决 |
| 技术负责人 | 纠正规则化 | LRN(correction) | 项目约定自动文档化 |
| 产品经理 | 特性需求收集 | FEAT为主 | 需求零遗漏 |
| 运维工程师 | 故障经验复用 | ERR+LRN | 故障复现率-60% |
| 新成员入职 | 项目知识获取 | 全部读取 | 快速理解项目约定 |
当一个学习具有广泛适用性时(非一次性修复),提升至永久项目记忆:
| 目标 | 适合内容 | 示例 |
|---|---|---|
| CLAUDE.md | 项目事实、约定、陷阱 | "包管理器用pnpm" |
| AGENTS.md | Agent特定工作流、工具使用模式 | "API变更后重新生成客户端" |
| .github/copilot-instructions.md | 项目上下文与约定 | "测试框架用Vitest" |
原始学习(冗长):
提升至CLAUDE.md(简洁):
- Package manager: pnpm (not npm) - use `pnpm install`
grep -h "Status**: pending" .learnings/*.md | wc -l
grep -B5 "Priority**: high" .learnings/*.md | grep "^## ["
grep -l "Area**: backend" .learnings/*.md
免费版无日志条数限制。三类日志(LEARNINGS.md、ERRORS.md、FEATURE_REQUESTS.md)均可无限记录。建议定期复盘并提升高频条目至CLAUDE.md,保持.learnings/目录的可管理性。
三种策略可选:
*.md + !.gitkeep建议团队协作场景采用"跟踪至仓库"策略。
当类似问题多次出现时:
grep -r "keyword" .learnings/搜索已有条目See Also关联Recurrence-Count免费版提供三类日志记录+标准化ID+状态管理+复发检测+项目记忆提升。专业版额外解锁:Agent性能指标采集、自动瓶颈诊断、优化建议生成、多平台Hook集成、技能自动提取、复发模式可视化、跨项目知识聚合。专业版使用GPT-4o模型路由,免费版使用GPT-4o-mini。
关键原则是"立即记录、简洁明确"。每条日志建议<20行,重点是捕获上下文而非写长文。检测触发器自动捕获信号,减少手动记录负担。定期复盘时批量处理pending条目,避免积压。
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 日志未记录 | 检测触发器未启用 | 检查4类信号是否被识别 |
| ID冲突 | 同日多条目序号未递增 | 使用日期+随机3字符组合 |
| 复发未检测 | See Also未关联 | 用grep搜索关键词后手动关联 |
| 提升后未生效 | CLAUDE.md未加载 | 确认Agent会话开始时读取CLAUDE.md |
| 日志积压过多 | 未定期复盘 | 每周执行复盘,批量处理pending |
| 跨项目混淆 | 单一.learnings/目录 | 每个项目独立.learnings/目录 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| grep | 工具 | 可选 | 系统自带,用于复发检测 |
本skill基于原始作品改进,保留原始版权声明:
本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:
原始MIT license允许使用、复制、修改和分发,需保留版权声明。本改进作品在保留原始版权声明的基础上添加自有署名,完全符合MIT license要求。
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:meta-agent-optimizer-pro