pi-autoresearch:Shopify的π自主实验循环扩展插件


Shopify的π的自主实验循环扩展插件 !

Shopify用这个扩展插件加速了Shopify的模板引擎:

这可能有点过度拟合,但其中确实包含一些非常棒的想法。

最重要的是:我们开源了pi的/autoresearch插件。你只需告诉它你的需求,剩下的就交给它来完成。

pi-autoresearch是受karpathy/autoresearch的启发。适用于任何优化目标:测试速度、软件包大小、LLM 训练、构建时间、Lighthouse 分数。

本插件扩展Extension程序采用与领域无关的基础架构;技能编码了领域知识。
这种分离意味着一个扩展程序可以服务于无限多个领域。

┌──────────────────────┐     ┌──────────────────────────┐
│  Extension (global)  │     │  Skill (per-domain)       │
│                      │     │                           │
│  run_experiment      │◄────│  command: pnpm test       │
│  log_experiment      │     │  metric: seconds (lower)  │
│  widget + dashboard  │     │  scope: vitest configs    │
│                      │     │  ideas: pool, parallel…   │
└──────────────────────┘     └──────────────────────────┘

1、Extension(全局执行引擎)

可以理解成一个“通用优化操作系统”,负责:

  • 跑实验(run_experiment)
  • 记录结果(log_experiment)
  • 可视化(dashboard)
  • 控制循环(继续 or 停止)

它完全不关心你在优化什么。

2、Skill(领域插件)

Skill 才是灵魂:它定义了一个优化问题:

  • command:怎么执行(例如 pnpm test)
  • metric:优化目标(时间 / 体积 / 分数)
  • scope:允许修改的范围
  • ideas:搜索空间(优化策略)

Extension 不需要变:只换 Skill = 换一个行业!

自动化“实验驱动优化”
传统优化是这样的:

  1. 人猜一个优化点
  2. 改代码
  3. 跑测试
  4. 看结果
  5. 再猜

这个系统做了什么?
把这个循环彻底自动化:

提出优化想法
   ↓
自动修改
   ↓
执行命令
   ↓
记录指标
   ↓
判断是否更好
   ↓
继续搜索

这本质上是: “工程版强化学习 + A/B 测试 + AutoML 的混合体”


置信度评分

在一次实验中完成 3 次以上实验后,pi-autoresearch 会计算一个置信度分数——衡量最佳改进与该次实验噪声基底的对比情况。这有助于区分真正的性能提升和基准测试的波动,尤其是在机器学习训练、Lighthouse 评分或不稳定的基准测试等噪声信号上。

工作原理:

  • 使用当前段中所有指标值的中位数绝对偏差 (MAD)作为稳健的噪声估计器。
  • 置信度 = |best_improvement| / MAD。得分 2.0× 表示最佳改进效果是噪声基底的两倍。
  • 显示在小部件、展开的仪表板和log_experiment输出中。
  • 对autoresearch.jsonl每个结果进行事后分析。
  • 仅提供建议——绝不会自动丢弃。当置信度较低时,系统会引导智能体重新运行实验,但最终的保留/丢弃决定权仍掌握在智能体手中。

最关键的创新:记忆系统

1、autoresearch.jsonl(事实日志)
这是: 不可篡改的实验历史,每一条记录:

  • metric(指标)
  • status(成功/失败)
  • commit(代码版本)
  • description(改了什么)
这是“客观世界的证据”

2、autoresearch.md(认知层)
这是: AI 的“思考笔记”
记录:

  • 目标是什么
  • 尝试过什么
  • 哪些是死路
  • 哪些有效
这是“主观经验总结”

传统 AI:上下文一断 → 全忘
这个系统:

  • 新智能体进来
  • 读 jsonl(事实)
  • 读 md(经验)
  • 直接接管
这就是一种可继承的智能体工作流

Shopify用这个扩展插件加速了Shopify的模板引擎:

  • 对 Liquid 代码库运行了 /autoresearch 命令:解析和渲染综合速度提升 53%,对象分配减少 61%。
  • https://github.com/Shopify/liquid/pull/2056:Shopify Liquid性能优化报告,揭示通过分配驱动、字节扫描等策略,实现解析快61%、渲染快20%,且无功能回退的工程奇迹。

整体成果(量化效果)

  • Parse + Render 总时间:7,469µs → 3,534µs,-53%
  • Parse 时间:6,031µs → 2,353µs,-61%
  • Render 时间:1,438µs → 1,146µs,-20%
  • 对象分配:62,620 → 24,530,-61%
974 个单元测试全部通过,YJIT 启用,Ruby 3.4,真实 Shopify 主题模板。

autoresearch驱动优化(autoresearch loop)
优化流程:

  1. 修改代码
  2. 提交 commit
  3. 自动跑单元测试
  4. 运行基准
  5. 保留或回退
  • 总共约 120 次自动实验
  • allocation-driven:减少对象分配 → 降低 GC 占用
  • GC 占 CPU 74%,每减少一次分配对性能收益巨大

核心启示

  1. Allocation-driven optimization:减少对象分配对 Ruby 性能决定性
  2. Byte-level scanning:C-level regex + byteindex 提速显著
  3. Fast-paths:变量解析、渲染、条件判断的快速路径
  4. 实验循环:autoresearch loop 让大改动可控、可验证
本质上,这是一次工程级性能革命,彻底击破 parse+render 瓶颈