研究项目

SoL-Pi:为高效智能体脚手架扩展自动研究循环

少花钱,不减效。

层层叠叠的代码纸页,递归研究路径通向一个已验证的结果

简介

编码智能体发展又快又陡,从 补全代码行 到 跨仓库修 issue,能根据反馈行动,甚至改造自己手边的工具。有了现代脚手架, 成千上万个智能体现在能连续协作一周,全程无需人工干预。这就带出一个基本问题:在几小时乃至几天的无人值守运行里,每个 token 都在推动任务往前走吗,还是冗余会随着轨迹变长越积越多?

这个问题在 递归式自我改进 (RSI)面前进一步加深:AI 既然能构建复杂软件系统,也就能构建 产出 AI 的系统。RSI 因此可能加速迈向通用智能的进程。但 RSI 本身也很烧 token:每次尝试造出更好的系统,无论成败都要花 token。把 RSI 做大之前,是不是该先让 AI 把 AI 变得更省?

为了解决这个问题,我们搭了一条可扩展的 RSI 流水线。智能体用 公开数据 和 公开可用的软件环境为脚手架推演搭建可执行环境。另一些智能体观察模型在这些轨迹里怎么探索,再把观察结果做成自动研究循环,朝着效率目标改进脚手架。活过这些搜索的机制被组装成 SoL-Pi——一个专注 token 效率的智能体脚手架。对一位处理单个问题的专业研究员来说,SoL-Pi 相比原生 Codex 和 Claude Code 脚手架每小时能省 $8.75–$13.50 ,相比 Pi 每小时能省 $4.36–$5.71 *。

SoL-Pi 还给 RSI 提供了一个更开阔的视角:长远看,真正有价值的未必是某个具体产物,而是一个可扩展的搜索过程——它能在公开环境里不断找出可复用的改进。

Pi 是个轻量、可扩展的编码智能体脚手架,本研究就搭在它上面。 EdgeBench 是包含 51 个长时程可执行智能体任务的任务集,它的任务、验证器和反馈都留到最后做留出评估。* 节省区间取决于模型后端,按官方 API 等效价格计算。

方法

SoL-Pi 把 152 个提议方向送进自动研究循环,最终只有 4 个机制进入成品脚手架。 使用备用视频 · 下载视频

我们把脚手架改进当作一个开放式 RSI 问题:在不同环境里寻找能迁移到未见场景的改动。自动研究流程批量生成机制想法,选中的想法各进一个独立循环,活过验证的候选往下走。

目标是带约束的效率:在预先公布的能力保持标准下,找成本或 token 用量的下降空间。研究流程本身固定不变,活下来的机制划出下一轮研究的前沿。

自动研究提议池

152个提议4个存活机制
C1用实测上下文压力代替全局上限C4按证据提拔事实,保持提示词前缀稳定C7跨压缩保留契约锚点C10已验证的子目标帧弹出为结果卡C13配置时禁用休眠机制C16选择性屏蔽旧观测C19权威记忆日志只追加不改写C22把精选工作状态当一等产物P1进度控制以证据为准P4恢复产物,不做破坏性清理P7检查失败后加专用修复控制器P10检查必须能区分坏状态P13窄口径失败转通过后升级,需更广的证据P16反复被卡的完成,用精确命令升级P19用选择性软边界代替硬探索拦截P22自动检查去抖,评估器服从证据P25事件池为空时移除无动作轮次守卫T2在有界 schema 内修复畸形工具载荷T5用 `run-steps` 执行确定性命令序列T8只预检任务真正需要的能力T11长命令按显式生命周期管理T14从确定性来源注入环境事实T17精确去重 provider 工具调用 IDT20按契约判读命令结果,不只看退出码T23让 `run` 成为语言无关的任务管理器T26智能体和能力都注册成数据D3按证据需求而非任务长度路由委派D6避开无验证器契约的生成式编辑委派D9在硬性不退化约束下优化拓扑D12按决策密度拆分模型角色D15每个 Actor 拥有自己的角色和上下文历史R3显式最小化解决范围R6单独测试隐藏可见推理摘要R9用已验证的进度信号分配推理投入R12别把 few-shot、RAG 或关键词门控当主要手段R15缓存断裂时付费升级M3门控必须隔离、配对、密封M6用 issue 历史和盲失败挖掘做提议证据M9从关键检查点重放备选方案M12用先失败后通过的测试评判补丁M15安全绑定评审证据,证明机制已激活M18给分析器分层证据梯M21只读编排器加文件系统队列M24按消耗、休眠行为和分布漂移给 V2 候选设门M27最终 diff 加有界权威门控M30终态为负或含糊时按 fail-closed 处理M33把轨迹编译成结构化分诊视图M36操作在线服务前先确认其身份M39先定角色架构,再优化提示词M42放量前先选有机制余量的任务M45先修数据信任,再调单模型能力
C2从已验证的替换检查点重置C5保留不可变归档,按需定点恢复C8明确触发时才重组分层C11首次拼入 prompt 前先压缩工具输出C14把 provider 推理单列为一条上下文轴C17查询外部上下文档案C20检测并修复 prompt 缓存前缀抖动C23为全文付费前先建 observation packP2把收尾视为显式状态迁移P5下一步合法且有信息量时才打破僵局P8成功变异要配上验证器P11训练集命中的剪枝经验别推广到长上下文P14首次实质改动后检查影响面P17区分已验证、已声明、建议三类完成状态P20在 ReAct 循环里补上变异验证欠账P23打断重复诊断循环,不拦住真实进展P26末端闸门只管保全证据,不用来宣称能力T3锚定编辑,开放产物修正动作T6没证明状态复用,就别加常驻 REPLT9合并等待和重复调用T12专家工具和 schema 按需加载T15先严格按 unified diff 应用,再走唯一兜底T18只在语义边界输出流式更新T21把高频发现固化为有界原语T24在轮次边界交付异步完成D1超大结果压缩委派,配确定性兜底D4限定子任务范围,衡量父级复用D7子执行隔离、有界,默认关闭D10研究、实现、评审之间交接新鲜上下文D13只有在硬验证器后才买额外尝试R1按阶段和证据调整推理与详略R4把 provider 能力纳入运行时策略R7别把生硬的简略和提前压缩当机制R10叙述合并为一条事件驱动状态行R13保留模型原身份和真实投入上限M1用反例和对照挖掘配对轨迹M4为后续提议轮次保留失败记忆M7保留负面证据和不可用的历史候选M10用递归锦标赛挑选推演摘要M13只对高风险任务做第二轮完整推演M16长步拯救只做诊断用M19服务档位节省走单独成本通道M22研究漏斗保持可分、可停M25调度、执行、监控权限分离M28先封存清单,再算覆盖率和指标M31提议示例和私有任务不得进入评估M34质量和记录成本分开优化M37用一个 worktree 边界做隔离、回滚、对比M40贵的机制先过配对的低成本门M43专家引导转为可证伪的诊断协议M46协议改革先隔离验证再强制
C3记忆分层用不同的时钟C6用分层上下文纪元和事件驱动压缩C9先确定性驱逐陈旧观测,再加摘要器C12变异后精确失效读取C15不拆工具原子恢复 ReAct 上下文溢出C18压缩时原样带走近期有效读取C21长子任务无清晰边界时用进度卡C24按期望生命周期价值启用 ObservationPackP3验证欠账和验收欠账分开跟踪P6宣称完成前先要验证证据P9反例优先,打断重复失败循环P12连续静态读取太弱,不足以触发验证P15按错误指纹分配修复预算P18检查点存工作区和进程状态,不止消息P21最终输出算作显式状态迁移P24变异后找出最小验证器T1先修好工具调用传输,再调行为T4批量独立探测,别掩盖因果T7别依赖被动观测压力锁存T10按常见动作序列精简工具面T13仅思考时触达长度上限,只重试一次T16只在 provider schema 约束真实时用T19通用动作批保持比工作流引擎更薄T22核心接口围绕 `search`、`view`、`edit`、`run` 设计T25先加语义层,再打磨字节级读取D2有界子问题尽早委派,晚了没用D5按子问题路由模型D8前两个探测动作就定路由D11条件评审前先派便宜的侦察D14只咨询,不交出执行链R2提炼工具族策略,不止工具语法R5跨工具调用保留 provider 推理项R8语义 prompt 和 schema 去重延后R11阈值从当前轨迹推导,别抄基线R14加兼容垫片前先探测模型M2假设提出和证据评审分离M5按动作、阶段和提供方归集成本M8在机制首次触发点评估M11为新尝试提供多份历史失败摘要M14用冻结的分层工作流搜索脚手架杠杆M17为备选 PI 传输方案运行成对优化循环M20用几个语言原生原语表达编排M23设计杠杆前,先证明能力缺口真实存在M26在混合分布上训练,先估计基线噪声M29证据账本事务化、可重放M32审查包与修复包端到端绑定M35证据底座失效就停M38单轮机制进内核,跨轮策略放外面M41拒绝组件前,先拆解打包失败M44按首个变化的决策分类重放
C上下文24P进展26T工具26D委派15R提示与策略15M改进与评估46

并行的自动研究循环

每个谱系内部自动研究循环

一个想法先过轨迹推演、Map–Reduce 分析、提案三关;一个智能体实现提案,另一个审查;要改就打回实现;接着是轨内验证和留出验证;轨内验证可退回实现或轨迹推演;留出验证在完全隔离的测试集上评估冻结的候选。

轨迹推演生成探索轨迹
Map–Reduce 分析各自映射,再归约证据
提案提出一个机制
实现一个智能体实现
审查另一个智能体审查
轨内验证训练集筛选
留出验证冻结候选 · 隔离测试集
想法之间并行,谱系内部迭代。

在外层,SoL-Pi 把宽泛的创意池展开成彼此独立的机制谱系。第一轮从 152 个提议方向起步。Oracle Analysis 是推演前置的一道环节:根据已有轨迹估算机会,在花掉推演预算之前先筛一轮。每个入选方向都对“脚手架里哪些工作可省”给出具体断言,系统就能否决弱谱系,而不丢掉其他谱系的进展。

六个提案家族记录的是假设的起点,而不是存活下来的机制最终落在哪里。比如 ObservationPack 起初属于上下文家族(C23、C24),最后在观察边界上成为一个机制。

在每个谱系内部,我们沿用 Karpathy 那套经典的 自动研究实验循环:提出改动、实现改动、跑实验、读结果,然后保留或丢弃改动,不断重复。针对脚手架研究,我们做了三处调整。

第一,实现环节跑在一个 Ralph Loop,一个不断迭代的实现循环,直到显式退出条件通过才停。另有一个审查方检查实现及其行为契约,审查不过,提案打回重改。

第二,map-reduce 分析处理多条探索轨迹:独立分析器各查一条轨迹,归约器在下一个机制提案前把证据合并。

第三,验证用两个隔离的数据划分:候选方案在训练集上开发和筛选;机制和验收规则冻结后,系统在留出测试集上评估。 留出轨迹永不进入后续分析,自动研究循环内的智能体也看不到留出结果。 留出评估一旦失败,冻结的候选即被否决,不会变成修复的反馈,也不会开启新的搜索轮次。

从编译型工作流到一次性技能循环

要在几百个想法、几百轮研究迭代上编排自动研究,并不容易。我们的工作流经历过三种设计,区别在于编排逻辑放在哪、代码能活多久,以及规模一大先崩的是哪一环。

编译型工作流。 每个智能体流程用 YAML 描述、编译成可执行工作流:编排逻辑落在配置文件里,编译完就锁死。显式图谱让协作和交接都很清楚。规模一大,固定图谱反而成了上限:预编译工作流盖不住所有边角情况,任务反复停下来等人修,几百个并发尝试的上下文,运维也还原不出来。

代码编排。 主智能体写协调代码、开会话、在会话之间传消息,运行时拼出每个工作流:编排逻辑落在跨实验长期存在的代码里。这下没了固定图谱的限制。但规模一大,协调器成了瓶颈:要让每个循环都兼容,就得往一个长期存在、没有边界的代码库里加分支、加测试、加验证脚本,开一个新实验,光改它就可能花十几个小时。

一次性技能循环。 我们只维护一个最小的循环模板,外加使用说明。每个实验实例化一份新拷贝,设好参数,跑完就把改过的编排代码丢掉:编排代码只活一轮。扩规模变成反复实例化模板,而不是不断给一个协调器加码。这招也不是没有代价:模板本身必须保持正确,因为每个实验都继承它。维护这一个共享依赖,比维护固定图谱或不断膨胀的协调器都省事。

两个环境家族:搜索和评估分开

我们建了 535 个可执行的训练环境,分两大家族。第一家有 495 个任务,标准答案轨迹从 GitHub 的 issue–PR 对里挖出来。第二家是 40 个合成任务,用可执行的验证器定义成功。

对第一家:issue 说明任务,关联 PR 给出被接受的补丁和变更历史,二者合在一起就是标准答案轨迹。我们把仓库恢复到修复前那一次提交,在离线镜像里装好依赖,对智能体隐瞒 PR 和维护者的回归测试。只有满足“测试在 PR 前失败、PR 后通过”的环境才保留,这样任务、轨迹、验证器三者一致。

第二家是验证器驱动的。我们先生成一个定义成功的可执行验证器,再围绕它搭环境,供智能体开放式探索,没有参考轨迹。这 40 个环境主要用 Terminal-Bench 风格的验证器。为了让 EdgeBench 继续当好留出基准,我们不用 EdgeBench 的数据和验证器来做环境合成的素材或模板。EdgeBench 的任务和反馈不参与脚手架搜索,只用于留出验证。这层隔离让它的分数更能说明对没见过的任务和验证器设计的泛化能力。

能力下限约束效率收益

搜索学到的是可复用的脚手机制。能力下限决定哪些候选能活下来。便宜的候选如果靠提前停、跳过必要验证、删掉完成任务所需的证据来省钱,就会被淘汰。

每轮循环设两道验收门。第一,所有能力指标都必须落在预先声明的容差范围内。第二,至少一个效率指标必须提升。在过线的候选里,循环保留非支配解。验收是逐个机制做的,它放行的小损失会在机制组合后累积:组装好的脚手架大概保留 Pi 平均分的 94%。这道门真正拦下的是靠少干活省下来的钱。

自动研究循环发现了什么

自动研究成果

图里是基础脚手架的四个节点:Agent、Context Memory、Action、Observation。悬停、聚焦或点按一个节点,就能看到自动研究在该组件上的成果。动画沿着 Task → Agent → Action → Environment → Observation 追踪,Context Memory 在循环重复前和 Agent 交换信息。

环境
任务
悬停、聚焦或点按某个组件,查看改变它的自动研究成果。

自动研究产出了四个小而专的机制,分别对应工具、上下文管理、观察压缩和多智能体委派。

工具Action Fusion一个意图,一轮对话

双栏对比:Action Fusion 把一次编辑和随后的命令合并为一次工具调用
Action Fusion 把一次编辑和随后的命令收进同一个本地序列,省掉中间那轮模型决策。

在基础版 Pi 的推演里,一个固定套路反复出现:改完文件,编码智能体往往会再发一条命令,用来测试、构建或运行这次改动。 Action Fusion 把这套流程收成一次工具调用。脚手架在本地完成编辑并执行命令,然后一次性返回合并后的观测结果,中间不再需要模型再跑一轮。

Action Fusion

智能体如何构建工具

自动研究从“遗漏的相邻动作”的神谕估计起步,一路走到稳定工具、提示词搜索,再到独立的最终验证。

Action Fusion 研究概览:四个优化阶段、十个触发率与任务分搜索点、相邻动作占比,以及反事实的模型轮数与 token 节省
概览汇总了四阶段搜索历程、十个已记录的搜索批次点、观测到的相邻动作占比,以及“全部触发”的效率反事实。探索过程中触发率非单调变化;第 10 轮是最终选定点,曲线反映的是探索过程,不是单调上升。

四个研究阶段

  1. Oracle Analysis搜索前测得相邻“编辑/写入→命令”候选占跨轮转换的 12.3%;观测到的后续动作中,Bash 占 85.1%。
  2. 基线构建搭建Action Fusion 在符合条件的调用中触发率稳定在 87.7%,零无效调用,为提示词搜索提供了可靠基线。
  3. 提示词优化10 轮搜索批次去掉一个失败的提示词变体后,继续打磨提示词和 schema。第 10 轮触发率 100%、任务得分 87.0,被选为最终版本。
  4. 最终验证2 轮最终检查选定后跑独立的最终检查,确认发布行为无误,再把该机制并入组合脚手架。

Oracle Analysis 的发现

基础脚手架总是把一次编辑和紧随其后的测试/运行命令拆成两步。Oracle Analysis 估计,这类相邻的“编辑/写入→命令”候选占跨轮转换的 12.3%,正是融合动作要瞄准的边界。

触发率如何提升

十轮已记录的搜索批次里,触发率从 28.3% 一路走到 100%。提示词和 schema 的调整最终在第 10 轮达到 100%,任务得分保持在 87.0。探索中的搜索路径起伏不定。

上下文Online Context Compact子任务边界处压缩

Online Context Compact 在后续请求重放完整历史之前,先把已完成的子任务压缩掉
Online Context Compact 把已完成的子任务视为潜在的压缩点,等到后续请求能“回本”这轮重写时才动手。

KV 缓存复用通常把压缩推到一次运行的后半段。Online Context Compact 用的是另一套时钟:它把任务拆成子任务,每完成一个就重新考虑要不要压缩。 Online Context Compact 把语义上的“完成”变成压缩触发器,但只有当预期未来的节省能抵回重写成本时才真正动手。

观测ObservationPack保留访问,去除重复

ObservationPack 用紧凑的句柄替换重复的工具输出,同时保留回取能力
ObservationPack 用稳定的句柄替换重复出现的完整输出,原件保留,随时可分页取回。

在基础版 Pi 里,大文件或工具结果会在之后的每一次请求里重新出现,既占上下文又占缓存。 ObservationPack 它改变了这套生命周期:把载荷归档到本地。上下文里只留一个句柄和一小段摘录,需要时再精确取回对应页面。脚手架让载荷始终可取,但不再每次重放。

ObservationPack

智能体如何选出并验证机制

自动研究从“洁净室”实现起步,经历合约冻结和配置搜索,最后做并行对照评估。

ObservationPack 研究概览:四阶段优化流程、八配置权衡扫描、确认的前沿,以及 EdgeBench 上配对的成本与得分结果
扫描在质量和成本门限内选中了 V2。最终的配对评估在同一集群上并行启动了两组。 查看完整图表 ↗

四个研究阶段

  1. 从零重建1 轮迭代从干净的 Pi 出发重建占位机制,产出“洁净室”实现。
  2. 机制冻结4 轮迭代把实现精简到 315 行代码加两个钩子,采用“失败即放行”合约。
  3. TB40 权衡扫描8 种配置扫描投影设置,用四次同期确认交叉验证。只有 V2 落在质量门限内。
  4. EdgeBench 配对 A/B11 个任务 × 2 组在同一集群并行启动两组,确认成本更低,归一化得分不降。

V2 为何胜出

V2 是扫描中唯一落在质量门限内的配置:2,048 字节头部加 1,536 字节尾部,投影前完整发送两次。

配对实验确认了什么

最终的 EdgeBench 实验用 11 个任务,在同一集群上并行两组。响应次数只变化了 0.20%,说明节省来自更便宜的响应,而不是响应量减少。

委派Evidence-Preserving Reducer委派阅读,核验证据

Evidence-Preserving Reducer 把冗长的诊断日志变成一份可验证的简短回执
只有当回执里的证据能对照归档日志逐一核验时,Evidence-Preserving Reducer 才接受这份紧凑的诊断回执。

在构建和测试的轨迹里,冗长的日志中真正影响下一步决策的往往只有几行。 Evidence-Preserving Reducer 利用这个分界,把初读工作交给更便宜的智能体。生成的回执与归档日志绑定,每句引用在到达前沿智能体之前都要核验。委派不再依赖对“流畅摘要”的信任。

结果

EdgeBench

这项工作用前沿 AI 模型扩展自动研究循环,构建了新的智能体脚手架 SoL-Pi。所有对比实验都让各模型后端跑在 xhigh,即本次评估中最高的推理强度档。在 EdgeBench 任务上,SoL-Pi 在两种模型后端都保留了 Pi 平均分的大约 94%;用 GPT-5.6 Sol 时,还超过了模型自带的 Codex 脚手架。效率提升更大:相比 Pi,token 用量少 45–49%,成本低约三分之一;相比模型原生脚手架,token 用量少 35–64%,按官方标价算 API 成本低 50–54%。

Terminal-Bench 4

我们还在 63 个 Terminal-Bench 4 任务上评估了 Codex、Pi 和 SoL-Pi,结果汇总如下。

63 个任务中解出的数量:Codex 18,Pi 18,SoL-Pi 15。纵轴从零开始。
解出的任务数
API 等效总模型成本:Codex $272.35,Pi $286.45,SoL-Pi $211.12。纵轴从零开始。
官方 API 等效成本
63 个纯 CPU 任务。柱子表示解出的任务数和 API 等效总模型成本,精确值标在每根柱子上方。

基于 SoL-Pi 的高效智能体群体

高效的脚手架能让集体搜索更经济吗?我们用 SoL-Pi 做了一个测试—— Anthropic 最初的性能 take-home 题,一道内核优化题,用模拟机器周期计分。问题不只是“能同时派出多少智能体搜索”,更是“共享的预算能买到多少有用且可验证的进展”。

一台 GPT-5.6 Sol 协调器 跑在 Codex 上,指挥 20 个 GPT-5.6 Luna 工作者,全部跑在 xhigh。20 个工作者分成 5 组、每组 4 个,各有独立工作区和一块本地证据板。两种条件都用 Codex 智能体做协调器,只对比工作者脚手架用 SoL-Pi 还是 Pi。

一台 Sol 智能体协调的 5 组 Luna 工作者(每组 4 个)Sol 协调器分配任务并广播已验证的进展。5 个组各有 4 个独立工作者和一块本地证据板。两种对比条件里,工作者分别用 SoL-Pi 或 Pi,协调器跑 Codex 智能体。针对性的同伴笔记只在组内流转;协调器在组间传递紧凑的发现。不可变的候选快照经过冻结的官方验证。只有主智能体认可的严格改进才会成为提交和得分记录,再经协调器反馈回去。协调器Codex · GPT-5.6 Sol · xhigh任务 + 前沿 ↓ · 发现 ↑组 011234小组证据板组 025678小组证据板组 039101112小组证据板组 0413141516小组证据板组 0517181920小组证据板快照 + 紧凑证据候选池不可变快照验证冻结测试 + 周期主智能体验收严格增益 → 提交 + JSON已验证进展

这套架构把独立探索和选择性交换结合起来。工作者请组内同伴复现或合并有前景的发现;协调器在组间传递紧凑的洞察,同时让一部分工作者继续探索别的方向。只有当协调器请求验收、独立检查确认是严格改进时,共享的最佳结果才会向前推进。

更便宜的已验证前沿

我们从同一个冻结起点跑了三次独立的 2 小时试验:单智能体 Sol、Sol 带 20 个 Pi 工作者、Sol 带 20 个 SoL-Pi 工作者。两个对照试验按顺序跑,单智能体先行。每次都用全新会话,不带之前试验的解法和笔记。

SoL-Pi 终点:1,127 周期,$60.11;单 Sol:1,333 周期,$39.20;Pi 群体:1,366 周期,$82.12三次试验共享 0–120 分钟时间轴和一条反向对数周期轴。淡色点是提交正确的候选,空心圆是被接受的提交,阶梯线保持当前最优的已接受结果。成本框报告各模型 API 等效的美元估算。周期 ↓8012,4357,40122,49668,376207,8310 分钟24 分钟48 分钟72 分钟96 分钟120 分钟模型成本 · 美元等效Sol + 20 SoL-Pi$60.11单 Sol$39.20Sol + 20 Pi$82.12提交时的累计实验时间Sol + 20 SoL-PiSingle SolSol + 20 Pi实心点:正确的候选 · 空心点:被接受的提交 · 线:当前最优的已接受结果
最终独立验证结果
配置周期 ↓模型成本 ↓速度阈值
Sol + 20 SoL-Pi1,127$60.118/8
单 Sol1,333$39.208/8
Sol + 20 Pi1,366$82.127/8

这次对比里,SoL-Pi 群体达到了 1,127 cycles , $60.11 API 等效模型成本: 周期少 17.5%,成本低 26.8% ,优于 Pi 群体。单智能体 Sol 依然是最便宜的($39.20),但终点是 1,333 周期。

讨论

token 效率青睐可复用的改进

在封闭任务集上优化脚手架,很容易滑向基准过拟合。搜索循环可能把任务相关的信息塞进脚手架,或者给训练任务里反复出现的模式加特殊规则。分数涨了,换个任务集可能就不好使了。

token 效率把搜索引向跨任务反复出现的工作:去掉重复的上下文、合并无需中间决策的动作、避免反复传输大块工具输出——瞄准的都是交互循环里的浪费。它们不依赖“知道某道题的答案”,所以更容易迁移到新任务和新模型上。

智能体偷懒少干活也能省 token。所以 SoL-Pi 设了一条预先声明的能力下限:只有任务质量保持在允许范围内,省下的 token 才算效率提升。

EdgeBench 让长周期效率可测量

选 EdgeBench,是因为它让智能体跑的是长达数小时的轨迹。当时能找到的公开基准里,只有它能稳定支撑大约 2 到 12 小时的连续推理和工具调用。常见的替代项,比如 Terminal-Bench 2.1 和 SWE-bench,通常一小时内就跑完了。

更长的时间跨度是测量 token 效率的关键。任务太短,上下文重放、大块工具输出、缓存写入、多余的模型轮次都来不及累积;每轮省下的一点点,容易被启动成本和任务间差异淹没。拉到几个小时,同样的浪费反复出现,脚手架层面的效率差异就容易测出来了。

短基准对很多问题依然有用,只是对不上我们的研究问题:脚手架能不能在保持任务质量的同时,压低长轨迹里的重复开销。EdgeBench 提供了让这种差异可被测量的时间跨度。

广度跳出局部搜索盆地

我们沿两个轴扩展自动研究:深度优先(DFS)保住一条血脉,反复打磨最新候选;广度优先(BFS)铺开大量独立想法,给每个有希望的分支配一个自动研究循环去实现、测试、加固。

我们的实验里有个定性规律:大约 5 到 10 轮迭代后,连跑在 xhigh 的 GPT-5.6 Sol 也会陷进局部盆地,只在同一设计上做越来越小的调整,不再换方向。广度优先不一样:大多数想法验证失败,但起点想法足够多样时,偶尔会冒出一个不寻常的候选,后续循环能把它实现、加固。本项目里最有用的几处脚手架改动就来自这种跳跃。转化率一直很低:大约 40 个起点想法里只有 1 个能通过验证。广度让这些稀有候选变得可发现。

广度与隔离支撑泛化

我们的经验是,两个条件尤其重要:一是靠广度搜索攒出的多样想法池;二是过硬的验证——评估环境必须和搜索/训练完全隔离,还要能反映真实部署中的差异和故障模式。缺了任何一个,自动研究可能只在一个环境里刷高分数,系统本身并没有变好。

人类定先验、验幸存者

当 AI 开始改进自身周围的“机器”,人类在递归式自我改进里的角色还没定论。SoL-Pi 最好理解为混合式自动研究循环:人类先给出关于脚手架原理和机制的先验;在扩大想法池之前,滤掉对本项目探索价值不大的方向,比如搜基础脚手架超参数;想法一旦进入自动研究循环,研究和验证全程无人干预;候选存活下来后,人类再回来理解智能体发现的机制,把代码重构成干净可维护的实现。

全自主的 RSI 是不是最终的正确形态,还是个开放问题。开放式循环里,目标、证据或实现的漂移可能在人类察觉之前不断累积,后果难以逆转。所以人类判断和机器规模研究的关系值得持续研究:人应该在哪里提供先验、卡搜索预算、评审已接受的改动、清理实现?又该在哪里放手?

任务多样性可能提升脚手架质量

SoL-Pi 还跑了一个初步的闭环:智能体收集或合成任务、搭建可执行环境、收集轨迹、验证候选、更新自己的脚手架。

我们把这个方向叫“脚手架预训练”:部署前,脚手架搜索看到不断扩大的自生成任务和环境流,留下在整个分布上都存活的机制。这条研究线还很早期。我们预期脚手架也会有类似模型的 scaling law:随着算力和推演环境多样性增长,脚手架会更强、更稳、更高效。

递归式高效改进

效率也可能递归:更高效的脚手架能降低“造出下一代脚手架”的自动研究成本。我们计划把 SoL-Pi 作为下一轮研究的起点脚手架——单轮成本更低,固定预算就能覆盖更多可执行环境、轨迹和研究想法。这么看,效率既是脚手架研究的产出,也是扩大后续搜索的资源:更高效的脚手架可能帮我们发现更高效的脚手架。我们把这种可能叫作 递归式高效改进;这是长期研究愿景,不是本研究已证实的复利效应。

作者

Haozhe Liu,Tian Ye,Sensen Gao,Qihang Cao,Yitong Li,Mingchen Zhuge,Duomin Wang,Ruihua Zhang,Jiawang Bian,Lei Zhu,Ligeng Zhu,Enze Xie,Song Han

同等贡献。 核心贡献者。