自主技能优化系统

Auto Skill
Optimizer

评估改进实测验证人类确认保留或回滚

「autoresearch 的核心想法很简单:让系统自主运行实验,评估结果,只保留有效的改进。一个只能向前转的棘轮。」

Andrej Karpathy — 谈自主实验循环
01

核心原则

五条规则,防止优化器偏移方向、自我刷分或引入退化。

01

单一可编辑资产

每轮优化只针对一个 SKILL.md 文件。一次修改,一次测量,一次决策。不做跨文件编辑,避免归因模糊。

02

双重评估

静态结构分析捕捉格式和完整性问题。实测执行捕捉行为退化。两者缺一不可。

03

棘轮机制

提升总分的改进被 commit。降低分数的修改自动 revert。分数只能上升或持平,永远不会下降。

04

独立评分

编辑 Skill 的 Agent 永远不为自己打分。由独立的子 Agent 评估输出质量,防止自我表扬偏差。

05

人在回路

每个 Skill 的优化循环完成后,系统暂停。向人类展示 diff 摘要、分数变化和测试输出对比。没有明确确认,任何改动都不会生效。

02

8维度
评估体系

100分评估体系。结构维度捕捉你能看到的问题,效果维度捕捉只有运行时才能感知的问题。

60
结构
分值
40
效果
分值
结构维度 — 静态分析
# 维度 权重 评分标准
1 Frontmatter质量 8 名称正确,描述包含功能/触发条件/使用场景,不超过1024字符
2 工作流清晰度 15 步骤有编号、可执行,每步都有明确的输入/输出
3 边界条件覆盖 10 错误处理、降级方案、常见故障恢复
4 检查点设计 7 关键决策前需用户确认,防止自主失控
5 指令具体性 15 无歧义,具体的参数/格式/示例,可直接执行
6 资源整合度 5 所有引用的脚本/资产路径存在且可访问
效果维度 — 需要实测
# 维度 权重 评分标准
7 整体架构 15 层次清晰,无冗余或遗漏,符合生态系统约定
8 实测表现 25 运行2-3个测试提示词,对比启用 Skill 和 baseline 的输出质量
03

优化循环

从初始化到最终报告的五个阶段。系统在每个阶段内自主运行,但在阶段之间暂停等待人类审查。

0 初始化

范围与分支设置

确定优化范围,创建版本控制基础设施,加载历史记录。

  1. 确认范围:全部 Skill 还是用户指定子集
  2. 扫描 .claude/skills/*/SKILL.md 获取目标列表
  3. 创建 git 分支:auto-optimize/YYYYMMDD-HHMM
  4. 初始化或加载 results.tsv 用于历史追踪
0.5 设计

测试提示词工程

在任何评分之前,先设计用于衡量效果的测试提示词。没有好的测试,优化器就是盲飞。

  1. 阅读每个 SKILL.md,理解其声明的能力
  2. 为每个 Skill 设计2-3个提示词:一个正常路径,一个模糊场景
  3. 保存到每个 Skill 目录下的 test-prompts.json
  4. 在继续之前,将所有测试提示词提交人类审批
1 基线

全维度评分

为每个 Skill 建立起始分数。结构评分由主 Agent 完成,效果评分由独立子 Agent 完成。

  1. 阅读 SKILL.md,为维度1-7评分并附理由
  2. 启动子 Agent:分别在启用和未启用 Skill 的情况下运行测试提示词
  3. 对比输出,为维度8评分(如子 Agent 不可用则标记 dry_run)
  4. 计算加权总分,记录到 results.tsv
  5. 展示评分卡,暂停等待人类确认
2 优化

Hill-Climbing 循环

按分数从低到高处理 Skill。每轮:诊断最弱维度,提出一个针对性修复,执行,重新评分,做出决定。

  1. 找出该 Skill 得分最低的维度
  2. 生成一项具体改进(改什么,为什么改,预期分数变化)
  3. 编辑 SKILL.md,用结构化消息 git commit
  4. 重新评分:结构由主 Agent,效果由独立子 Agent
  5. 新分 > 旧分:保留。否则:git revert,进入下一个 Skill
  6. 每个 Skill 完成后:展示 diff + 分数变化,等待人类确认
3 报告

总结与指标

将所有结果汇总为最终优化报告,包含优化前后分数、实验次数和关键改进。

  1. 统计总实验次数、保留次数、回滚次数和测试模式
  2. 生成每个 Skill 的优化前后分数对比表
  3. 列出影响最大的改进及其对应维度
  4. 归档 results.tsv 供未来 baseline 参考
04

棘轮机制

分数只能上升。每轮要么改进 Skill,要么干净地回滚。不会随时间积累局部退化。

72
基线
轮次 0
78
保留
轮次 1
75
回滚
轮次 2
84
Keep
轮次 3
87
Keep
轮次 4
05

为什么需要
双重评估

单看结构无法判断 Skill 是否真正好用。单看效果无法判断它为何失败。

传统方法

纯结构审查

  • 检查 frontmatter 是否存在且格式正确
  • 验证步骤是否有编号和描述
  • 确认文件路径和引用是否有效
  • 无法检测 Skill 是否真正提升了输出质量
  • 无法检测看似正确实则产生差结果的误导性指令
  • 无法检测弊大于利的过度约束
Auto Skill Optimizer

双重评估

  • 结构评分捕捉格式、完整性和可读性问题
  • 实测执行揭示真实场景下的行为影响
  • 基线对比衡量 Skill 是增值还是减值
  • 独立子 Agent防止自我表扬的评分偏差
  • 测试提示词设计确保评估针对真实用户场景
  • Dry-run 降级在实测不可用时提供覆盖
06

概念映射

autoresearch 的核心抽象如何转化为 Skill 优化。同一台机器,不同的领域。

Autoresearch Skill Optimizer 实现细节
研究论文草稿 SKILL.md 文件 唯一的可编辑产物。所有改进都表现为对这一个文件的编辑。
评估指标 8维度评估体系 跨结构(60分)和效果(40分)的加权评分,总计100分。
实验循环 阶段2 hill-climbing 诊断最弱维度,提出修复,执行,重新评分,保留或回滚。每个 Skill 最多3轮。
版本控制 Git 分支 + revert 每次编辑都是一次 commit。退化通过 revert(新 commit)回滚。完整审计记录。
自动化评估 子 Agent 测试执行 独立 Agent 分别在启用和未启用 Skill 的情况下运行测试提示词,对比输出质量。
人类审查关卡 阶段转换暂停 系统在基线评分后和每个 Skill 优化后暂停。展示 diff + 分数变化。
探索 vs 利用 阶段2.5探索性重写 当 hill-climbing 停滞(连续2次在第1轮就中断),提出完整的结构重写。
实验日志 results.tsv 带时间戳的记录:commit 哈希、Skill 名称、新旧分数、保留/回滚状态、评估模式。