评估 → 改进 → 实测验证 → 人类确认 → 保留或回滚
「autoresearch 的核心想法很简单:让系统自主运行实验,评估结果,只保留有效的改进。一个只能向前转的棘轮。」
Andrej Karpathy — 谈自主实验循环五条规则,防止优化器偏移方向、自我刷分或引入退化。
每轮优化只针对一个 SKILL.md 文件。一次修改,一次测量,一次决策。不做跨文件编辑,避免归因模糊。
静态结构分析捕捉格式和完整性问题。实测执行捕捉行为退化。两者缺一不可。
提升总分的改进被 commit。降低分数的修改自动 revert。分数只能上升或持平,永远不会下降。
编辑 Skill 的 Agent 永远不为自己打分。由独立的子 Agent 评估输出质量,防止自我表扬偏差。
每个 Skill 的优化循环完成后,系统暂停。向人类展示 diff 摘要、分数变化和测试输出对比。没有明确确认,任何改动都不会生效。
100分评估体系。结构维度捕捉你能看到的问题,效果维度捕捉只有运行时才能感知的问题。
| # | 维度 | 权重 | 评分标准 |
|---|---|---|---|
| 1 | Frontmatter质量 | 8 | 名称正确,描述包含功能/触发条件/使用场景,不超过1024字符 |
| 2 | 工作流清晰度 | 15 | 步骤有编号、可执行,每步都有明确的输入/输出 |
| 3 | 边界条件覆盖 | 10 | 错误处理、降级方案、常见故障恢复 |
| 4 | 检查点设计 | 7 | 关键决策前需用户确认,防止自主失控 |
| 5 | 指令具体性 | 15 | 无歧义,具体的参数/格式/示例,可直接执行 |
| 6 | 资源整合度 | 5 | 所有引用的脚本/资产路径存在且可访问 |
| # | 维度 | 权重 | 评分标准 |
|---|---|---|---|
| 7 | 整体架构 | 15 | 层次清晰,无冗余或遗漏,符合生态系统约定 |
| 8 | 实测表现 | 25 | 运行2-3个测试提示词,对比启用 Skill 和 baseline 的输出质量 |
从初始化到最终报告的五个阶段。系统在每个阶段内自主运行,但在阶段之间暂停等待人类审查。
确定优化范围,创建版本控制基础设施,加载历史记录。
在任何评分之前,先设计用于衡量效果的测试提示词。没有好的测试,优化器就是盲飞。
为每个 Skill 建立起始分数。结构评分由主 Agent 完成,效果评分由独立子 Agent 完成。
按分数从低到高处理 Skill。每轮:诊断最弱维度,提出一个针对性修复,执行,重新评分,做出决定。
将所有结果汇总为最终优化报告,包含优化前后分数、实验次数和关键改进。
分数只能上升。每轮要么改进 Skill,要么干净地回滚。不会随时间积累局部退化。
单看结构无法判断 Skill 是否真正好用。单看效果无法判断它为何失败。
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 名称、新旧分数、保留/回滚状态、评估模式。 |