把 Karpathy 的 autoresearch while 循环(coding agent 每轮改一次训练代码、跑评估、好则保留)套在一个真实工业 NLP 检索任务上,系统比较单/多 agent、Claude vs Cursor vs 开源 GPT-OSS、有无 SoTA 提示三个维度。核心发现:三个维度对峰值性能几乎没影响,所有 agent 收敛到相同的超参调优行为,即使文档里明确写了 ensemble/reranking 技术,agent 也从不实现它们。
给定一个 incident query ticket \(q\),从 250k ticket 数据库中检索相关的解决方案文档(Fault Analysis FA 或 Technical Analysis TA)。评估指标 Recall@1/10/50,7.6k 查询,1.2k gold 文档。搜索空间跨越文档预处理函数 \(P\)、训练数据采样策略 \(\lambda\)、encoder 权重 \(\theta\): \[ P^*, \lambda^*, \theta^* = \arg\max_{P,\lambda,\theta} \frac{1}{N}\sum_{i=1}^N \mathbf{1}(t_i^* \in \text{Top-}K(S_\theta(q_i, P(\cdot)))) \]
两种框架:单 agent 循环(继承 Karpathy autoresearch:agent 读代码、改代码、评估、commit 或 revert)和多 agent 团队(继承 AutoScientists:orchestrator + 三个专项 sub-agent:representation、data generation、architecture)。
关键 harness 组件:(1) 搜索空间文档化——显式定义可修改变量,防止 agent 只调标准超参;(2) 确定性 bash 外循环——替代 agent 自我循环(agent 自管理 loop 经常卡死),确保稳定运行:
while true; do
pi --resume <SESSION_KEY> -p \
"Continue experimenting to improve Recall@1. Feel free to refer to program.md."
done
| 轴 | 变量 |
|---|---|
| 框架结构 | 单 agent 循环 / 多 agent 团队 |
| 底层 LLM | Claude Sonnet 5 / Cursor Composer 2.5 / GPT-OSS 120B(本地 Ollama) |
| 信息量 | uninformed(从零开始)/ informed(文档中提供 SoTA 组件描述) |
flowchart LR
Brief["program.md\n+ codebase"] --> Agent["coding agent\nClaude/Cursor/GPT-OSS"]
Agent -->|"modify code"| Eval["training\n+ eval"]
Eval -->|"R@1 improved"| Commit["git commit"]
Eval -->|"R@1 worse"| Revert["git revert"]
Commit --> Agent
Revert --> Agent
Human["bash while loop"] -->|"resume session"| Agent
| 术语 | 在本实验中的具体含义 |
|---|---|
| autonomous research / campaign | 运行 coding agent 的 bash while 循环,包含 N 次实验迭代,直到人类停止 |
| open-ended task | TTR:不止调超参,还要决定文档表示 P、负样本挖掘策略、encoder 架构 |
| harness | 搜索空间变量文件 + 确定性外层 bash 循环,弥补 agent 自我管理的不稳定性 |
| informedness | system prompt / 文档里是否注明 ensemble、reranking、data augmentation 等 SoTA 技术 |
| Recall@1 | 7.6k 查询中,排第一的检索文档是正确解决方案的比率(主优化目标) |
| T / FA / TA | Ticket(incident 报告)/ Fault Analysis(高层次故障分析)/ Technical Analysis(单个 T 的深入调查) |
| hard negative | 与 query 在同一 product+feature 类别但不在同一 cluster 的文档,作为难负样本 |
| 模型 | Recall@1 | Recall@10 | Recall@50 |
|---|---|---|---|
| BM25 | 0.072 | 0.113 | 0.234 |
| Fine-tuned MPNet(人类设计) | 0.200 | 0.400 | 0.571 |
| Ensemble(Trabelsi & Uzunalioglu 2026) | 0.251 | 0.461 | 0.627 |
| Discovered MPNet(本文最佳) | 0.343 | 0.630 | 0.768 |
| Internal SoTA(人类,含 augmentation + reranking) | 0.380 | 0.783 | — |
最佳系统由 单 agent Cursor + informed 17 次实验后发现:T-T 正样本对 2× 过采样 + encoder 序列长度 384。单模型超越人类设计的 ensemble,达到 SoTA 的 90%(0.343 vs 0.380)。
| 人类研究 | 自主研究(最佳 campaign) | |
|---|---|---|
| 开发时间 | ~10 个月 | ~10 周端到端 |
| 实验次数 | — | 17 次(Cursor informed) |
| API 费用 | — | Cursor ~$150–200;Claude ~$300–600;GPT-OSS ~$0 |
| Recall@1 | SoTA 0.380 | 0.343(SoTA 的 90%) |