用途
AutoResearch 是一个自主研究循环技能,核心原则是:你改变提示词,智能体改变其他一切。它把研究过程拆分为人类层与智能体层:人类定义研究问题、批准假设变更、设定评估指标、在满意时停止;智能体实现当前假设、在 git 分支上运行实验、分析日志与结果、提出下一轮假设,但绝不更改研究问题。
主要能力
- 自主迭代:智能体读取当前状态 → 运行实验 → 分析结果 → 提出下一轮迭代 → 你批准提示词变更 → 重复。
- 分支隔离:每个实验使用独立 git 分支,命名格式为 exp/[short-description],绝不修改 main 分支。
- 结果记录:所有结果记录到 experiments.jsonl,格式为 {"id": N, "hypothesis": "...", "metric": value, "notes": "..."}。
- 单变量控制:每轮实验只改变一个变量;若上次实验失败,则回退到更简单的假设。
- 研究总结:运行 N 轮后可生成总结,包含最佳配置、学到的内容、下一步方向、关于最佳配置为何有效的假设以及置信度。
使用方式
一次性设置提示词需填写:研究问题、评估指标(必须是单一数字)、当前最佳结果(基线或“none yet”)、约束条件、起始假设。随后每轮使用迭代循环提示词,要求智能体分析结果、提出下一假设、实现代码变更、运行并报告指标、提交到新分支。
实验日志示例: {"id": 1, "branch": "exp/baseline", "hypothesis": "default hyperparams", "metric": 0.423, "runtime_s": 45, "notes": "starting point"} {"id": 2, "branch": "exp/lr-0.001", "hypothesis": "lower learning rate 0.01→0.001", "metric": 0.451, "runtime_s": 47, "notes": "small improvement, keep lowering?"} {"id": 3, "branch": "exp/lr-0.0001", "hypothesis": "lower learning rate 0.001→0.0001", "metric": 0.438, "runtime_s": 46, "notes": "worse than id=2, sweet spot was 0.001"}
适用场景
该模式适用于任何迭代优化场景,资料中列出的领域包括:
- 机器学习训练:研究问题为最佳架构/超参数,指标为验证损失。
- 提示词工程:研究问题为最佳系统提示词,指标为任务成功率。
- 代码优化:研究问题为最快实现,指标为运行时间(毫秒)。
- 内容创作:研究问题为最具吸引力的格式,指标为点击/阅读率。
- 产品设计:研究问题为最佳 UX 流程,指标为任务完成率。
限制与安全规则
必须始终包含的 AutoResearcher 规则:
- 绝不删除之前实验的数据或提交。
- 绝不修改当前实验范围之外的任何文件。
- 未经检查,绝不运行成本超过 [COST_LIMIT] 的实验。
- 在开始下一轮迭代前始终提交。
- 在提出下一假设前始终报告指标。
- 如果指标连续 3 轮恶化,停止并请求指导。
验证清单:研究问题有明确的单一评估指标;每轮实验只改一个变量;所有结果都记录到 experiments.jsonl;每轮在独立 git branch 上工作;人类在方向性变更前被征求意见;有明确的停止条件(指标连续恶化/达到目标)。
工作流位置
属于工作流“研究到发布(内容创作者/研究者)”。上游为入口:用户有研究问题时直接触发;下游为 karpathy-llm-wiki(把实验结果沉淀为知识页)。完整链路:autoresearch → llm-wiki → output-evolution → education-first。
Prompt Contract
You are AutoResearcher. Research question: <QUESTION>. Evaluation metric: <SINGLE_NUMBER_METRIC>. Current baseline: <VALUE or "none">. Starting hypothesis: <FIRST_HYPOTHESIS>. Work on git branches (exp/<name>). Each iteration: implement → run → log result to experiments.jsonl → analyze → propose next hypothesis (one variable change). Never modify main. Stop and ask if metric degrades 3 iterations in a row.