Shopify工程团队在开源自研的pi-autoresearch后,把它用在了几乎所有能想到的优化场景上。官方公布的阶段成果:

  • 单元测试:300倍加速
  • React组件挂载:20%提升
  • CI构建时间:减少65%
  • pnpm:运行速度提升

他们说了一句话很直接:Autoresearch永不停止尝试那些你根本没时间自己去试的东西。

pi-autoresearch是什么

这是一个为pi(一个终端里跑的AI编程Agent)设计的自主实验循环扩展。核心理念来自Karpathy的autoresearch思想:

试一个想法 → 测量结果 → 保留有效的 → 丢弃无效的 → 永久重复。

本质上是一个自动化的"猜测-验证"循环,由AI驱动,不断寻找最优解。

核心机制

工具链包含三类组件:

扩展工具(Extension Tools)

工具作用
init_experiment一次性会话配置——名称、指标、单位、方向
run_experiment运行任意命令,计时抓输出
log_experiment记录结果,自动commit,更新仪表盘

交互命令(/autoresearch

/autoresearch optimize unit test runtime, monitor correctness /autoresearch model training, run 5 minutes of train.py and note the loss ratio /autoresearch export # 打开实时仪表盘 /autoresearch off # 退出自动循环模式

Skills

  • autoresearch-create:问几个问题(或从上下文推断)关于目标、命令、指标和涉及的文件范围,然后写好两个文件并立即启动循环
  • autoresearch-finalize:把一个嘈杂的autoresearch分支变成干净的独立分支,一个逻辑变更一个分支,可以独立review和合并

工作流程

每次实验循环写入两个文件:

autoresearch.md——会话文档,记录目标、指标、涉及的文件、已尝试过的方向。新来的Agent可以独立从这份文档继续。

autoresearch.sh——基准测试脚本,预检查、跑工作负载、输出METRIC name=number行。

可选的autoresearch.checks.sh是压力测试——类型检查、lint——在每次基准测试通过后运行,失败会阻止"保留"操作。

仪表盘:实时可见的优化轨迹

界面上有一个始终可见的状态组件:

🔬 autoresearch 12 runs 8 kept │ ★ total_µs: 15,200 (-12.3%) │ conf: 2.1×

3次以上运行后显示置信度评分:把最佳改进与会话噪声floor做比较。≥2.0×(绿色)=很可能是真的,1.0–2.0×(黄色)=超出噪声但边际,<1.0×(红色)=在噪声范围内。

Ctrl+X展开成完整结果表,用Ctrl+Shift+X打开全屏滚动仪表盘。

为什么Shopify能跑出这些数字

传统优化是人工的:工程师猜一个方向,花时间实现,测一下,不行就换。人的时间是有限的,不可能把每个想法都试完。

Autoresearch把这件事自动化了。AI不断生成候选优化方向、系统化测试、保留有效改进、丢弃无效尝试——循环永不停歇,直到达到目标或置信度阈值。

300倍的单元测试加速,不是某一次神奇优化,而是多次微改进累积的结果。每一次改进可能只有几个百分点,但AI跑了成百上千次组合尝试。人不会这样去做,但AI会。

适用场景

不限于代码性能。任何可量化的优化目标都可以:

  • 测试速度
  • 构建产物大小
  • LLM训练loss
  • Lighthouse分数
  • 任何能写出METRIC name=number的工作负载