让 AI 学会自己变聪明:ModularRSI 把「改提示词」变成了可调试的工程流水线

  • 关联论文:2609.14857

Agent 翻车了,你改改提示词、塞段 few-shot,它好像聪明了,换个基准又打回原形。更扎心的是——你根本说不清它是真的变好,还是只是学会了讨好那套考题。

ModularRSI 这篇论文的起点很反常识:真正拖住 Agent 的,常常不是模型的智商,而是外面那层「执行机制」,也就是 Harness。

为什么重要

Harness 是包裹着模型的运行骨架:Agent Loop 怎么推进状态机,Tool Use 怎么选工具填参数报错重试,Observation Management 怎么清洗截断环境返回值,Context Management 怎么压缩召回上下文,Task Completion Detection 怎么判断「这活儿干完了没」。

过去这类自我改进(RSI)在 SWE-Bench、TerminalBench 上接连刷分,但论文点出三个老问题:

基准特化。 拿评测集去跑自我改进,涨的往往是对这套考题的过拟合,换个基准就垮。

归因混淆。 拿一条成功轨迹反推「为什么这次跑通」,分不清哪部分是系统性 Harness 缺陷,哪部分只是这题的特殊解法,补的补丁迁移性极差。

单体归因困难。 传统 Harness 是一坨整体代码,bug 藏在角落,全局优化牵一发动全身。

核心机制

一、对比聚合。 同一题采成功与失败两条轨迹,跨任务配对比较,聚合成「反复出现的行为缺陷」。单次对比全是噪声,只有跨任务聚合,才能把「这题的小聪明」和「Harness 真缺的能力」分开。

二、模块化解构。 把 Harness 明确切成上面那 5 个功能模块。这一步可能比涨点更值得抄——它让「调 Harness」从玄学变成「调某个模块」,可以单独 A/B、单独回归。

三、受限进化。 每个模块划定自己的「允许修改范围」:Context Management 大概只让动压缩策略、召回阈值;Tool Use 只让动重试次数、参数校验、工具打分。模块隔离进化,切断了「改 A 顺带带偏 B」这条痛点,也让每次涨点能归因到具体改动。

四、集成回归。 5 个改过的模块拼回完整 Harness,显式解决接口冲突(比如 Tool 要了新字段,而 Context 还在按旧格式裁剪),在进化集上回归,跑挂就单模块回滚。

关键在最后这层:论文从外部来源策划了 2,000 个可执行任务,强制与下游评测基准不相交(benchmark-disjoint)。相当于让进化阶段「不知道」下游要考什么,这才是防基准特化的硬约束。

论文也坦诚:对比聚合在 RLHF 里早有,模块化 Harness 在 OpenHands、LangGraph 里也有,benchmark-disjoint 在 self-play 里不新鲜。贡献在于把三件事第一次显式组装成一条完整流水线。

证据边界

摘要没给出 TB2.0 与 SWE-Bench Verified 的逐项对比数字,只给了「consistent improvements」和「可跨底座模型迁移」这类方向性表述。想引用具体百分点,得回 PDF 实验段。

同样未披露的还有:2,000 任务进化集的策划标准与实际重叠率、集成阶段冲突解决的具体规则、5 模块划分的对照消融。也未讨论「改 Harness」与「改模型权重」的协同。

摘要不给数字,就意味着你无法用这篇论文做横向对比表。

工程局限

模块边界是人为划分,Tool Use 与 Observation Management 的接口切得够不够干净,论文没给消融,实现时大概率要自己重调。

成本更现实。跑通流水线意味着要同时维护成功/失败双轨轨迹日志、逐模块沙盒进化、集成回归——这是持续在线的基础设施,不是一次性脚本。任务数不足时缺陷排名就不稳,整套方法的信噪比会塌。

还有个隐蔽风险:如果你的内部任务池本身与线上评测重叠,你以为在泛化,其实在特化,而且很难自查出来。

该怎么用

只带走一句:别再把 Agent 翻车默认归因为「模型不够聪明」,先问是 Loop、Tool、Obs、Ctx、Done 哪个模块的问题。 这条复盘路径比换模型便宜得多。

工程上能立刻抄三件:那份五模块划分,直接当调试检查单;建一份与线上评测不相交的内部回归集(2,000 缩到几百也够);把「每次 PR 只准改一个模块的一个维度,改完必须过回归」写进流程——这条纪律本身就是归因能力的前提。

验收可以用「换底座后是否仍涨」当硬指标。只在某个模型上有效的优化,大概率是把模型偏置学进去了。


标题变体(三选一)

  1. 让 AI 学会自己变聪明:ModularRSI 把「改提示词」变成了可调试的工程流水线
  2. 为什么你的 Agent 换个基准就垮?问题可能不在模型,而在它外面那层「骨架」
  3. 只改 5 个模块就让 Agent 变强:一个把「自我改进」拆开算账的流水线

小红书卡片文案

标题:让 AI 学会自己变聪明,但它先得学会「改哪一块」

正文:

Agent 翻车了,你改改提示词、塞段 few-shot,它好像聪明了,换个基准又打回原形。更扎心的是——你根本说不清它是真的变好,还是只是学会了讨好那套考题。

ModularRSI 的起点很反常识:拖住 Agent 的常常不是模型的智商,而是外面那层执行机制——Harness。

四步流水线:

1️⃣ 对比聚合:同一题采成功+失败两条轨迹,跨任务配对,聚合出「反复出现」的行为缺陷。单次对比全是噪声。

2️⃣ 模块化解构:切成 5 块——Agent Loop(主循环)、Tool Use(工具调用)、Observation Management(观测清洗)、Context Management(上下文压缩召回)、Task Completion Detection(完成判定)。

3️⃣ 受限进化:每块划自己的「允许改动范围」,互不干扰地独立进化。改 A 不再顺带带偏 B。

4️⃣ 集成回归:拼回完整 Harness,显式解接口冲突,跑挂就单模块回滚。

🔑 真正的杀招:论文从外部来源策划 2000 个可执行任务,强制与下游评测基准【不相交】。等于让进化阶段「不知道」下游要考什么——这才堵住自我改进最常见的自欺路径。

但得说实话 ⚠️ · 摘要没给 TB2.0 / SWE-Bench 逐项数字,想引用得回 PDF · 2000 任务怎么策划的、集成冲突怎么解的,都没披露 · 模块边界是人为划分,没给消融 · 跑通要维护双轨轨迹日志 + 逐模块沙盒 + 集成回归,是持续在线的基础设施,不是一次性脚本

💡 最值得抄的一句: 别再把 Agent 翻车默认甩锅给「模型不够聪明」,先问是 Loop / Tool / Obs / Ctx / Done 哪个模块的问题。

这条复盘路径比换模型便宜太多。真要抄,先把 5 模块做成失败定位单:每次任务失败强制填一遍。

你更想看哪个模块的细节?评论区蹲一个 👇

标签:#AI #Agent #大模型 #论文解读 #Prompt工程 #人工智能 #自我改进