RSI Paper
All PapersRESEARCH NOTE / 2504.15228

A Self-Improving Coding Agent

SICA:一个具备 self-improvement 能力的 coding Agent

Maxime Robeyns、Martin Szummer、Laurence Aitchison

Submitted Verified Version · v2Note Updated
THE QUESTION WORTH READING

让 coding Agent 直接编辑自己的实现,借助 reflection、代码更新和 benchmark feedback,逐步改善解决问题的方式。

Classification & RSI Relation 1 Variant · Editorial Assessment

主题标签用于检索;以下按实际 Experiment / Variant 判断更新对象与证据。Not Demonstrated 表示这项研究未提供相应证据。

Main Method

Update Target
Architecture Evolution · Tool & Skill Evolution
Loop Role
Solver · Proposer · Integrator
Persistence
Across Improvement Rounds
Recursive Reuse
Demonstrated
Evidence
Task Gain · Recursive Reuse
System Boundary
Agent Code;以该论文实际可更新组件为边界,固定部分见下方判定。
Feedback
编程与合成 benchmark 的得分、运行时间、费用及执行记录,共同决定后续使用的 Agent 版本。
Evidence Scope
这一数字来自论文的随机子集和资源约束,不能与完整 SWE-bench Verified 榜单直接横比;代码演化不等于 foundation model 学习,单次迭代也可能退步。 已核验固定版本的相关方法与主要结果;未独立复现。

保存新 Agent 实现,并让高 Utility 的版本接管后续修改。Model Weights、外部 Benchmark 与 Utility 权重固定;Recursive Reuse 与任务表现分别有机制和实验依据。

检查原文设置 ↗
Paper Claim

原论文明确提出或报告的内容

Prior Work

相关文献中已有的知识与结论

Inference

基于证据的解释、重建或教学推演

Hypothesis

待验证的猜测、实验计划或新研究提案

Idea Reconstruction 是从已知背景出发的推演,不代表作者真实心理过程。Follow-up 是研究提案;相关工作比较不等于已证实 Novelty。教学示例与原文案例在正文中区分。

Contents · 12 Questions
01

Research Problem & Background

问题为什么重要,解决它有什么价值?

Paper Claim

配备基本编程工具的 Agent,能否通过编辑自己而提升表现?

Inference

一个 Agent 可以拥有很强的语言推理能力,却持续浪费时间在文件定位、长 Context 和低效编辑上。手工调整这些工程组件既慢又依赖经验。SICA 把这类瓶颈视为可由 Agent 自己修改的代码问题,同时把准确率、时间和成本纳入选择目标,使改进有实际部署价值。

02

Prior Work & Research Gap

前人做到哪一步,缺口在哪里?

Prior Work

ADAS 通过固定 Meta-Agent 生成目标程序,证明 Agent 设计可以自动搜索。STOP 已研究改进调用程序的 Improver。SICA 将任务执行者与下一轮修改者统一到同一套完整 Python Agent 中;相较于只搜索一个受限 forward 函数,它允许工具、Context 管理等更多组件变化。

03

Idea Reconstruction

从已有知识与失败模式出发,如何走到这个想法?

Inference

从日常调试出发:大量失败来自工具接口,修复接口通常比更换 Model 便宜。Coding Agent 本来就会修改 Python 工程,因而具备修改自身工程的基本动作。下一步的关键问题是该让谁来修改:如果最新版本已经更善于读代码和编辑文件,就有理由让它承担后续修改,再通过外部 Benchmark 拒绝无效更新。

04

Core Intuition

用一个清楚的视角抓住方法本质。

Inference

SICA 让档案中表现最佳的 Agent 承担下一轮改进工作,目标 Agent 与改进 Agent 因而不再固定分离。优化对象是组织工具、prompt 和 model 调用的程序;效用同时考虑得分、耗时与费用,使自身实现成为可以累积更新的经验。

05

Method & Worked Example

沿着输入、处理、输出走完 Pipeline。

Paper Claim

从 Agent 档案中选择效用最高者分析历史结果并修改自身代码,再运行 benchmark 入档;效用综合任务得分、运行时间和费用,不更新 foundation model weights。

Inference

论文记录了 Smart Edit、Context Summarization 和 Symbol Locator 等实际变化。以 Symbol Locator 为例:输入是某个符号引用及代码仓库;旧 Agent 依靠多次搜索定位定义。自我修改阶段增加 AST 定位工具,下一轮执行任务时调用它,输出定义所在文件和位置。该工具连同 Agent 源码被保留;外层评估器重新统计成本、时间和任务成功率,再决定谁接任下一轮 Meta-Agent。

06

Mathematical Foundations

从符号、直觉与简单例子理解理论。

Inference

Utility 是三个可比较分量的加权和。Accuracy 本身在 0 到 1 之间;Cost 与 Time 先除以预算上限,再截断到 1,最后用 1 减去它们,使更便宜、更快得到更高分。原文权重为 0.5、0.25、0.25,超时还乘以 0.5。它是一项工程偏好,没有推导出唯一正确的权重。即使 Accuracy 上升,成本增加也可能让总 Utility 下降。

U = 0.5·accuracy
  + 0.25·[1 − min(1, cost / $10)]
  + 0.25·[1 − min(1, time / 300s)]
U_final = 0.5·U if timeout, otherwise U
Inference

代入一个教学数值:Accuracy=0.6、Cost=$2、Time=60 秒且未超时,三个贡献分别为 0.3、0.2、0.2,Utility=0.7。min(1,·) 把资源惩罚截断,花费达到 $10 后,Cost 项归零,继续变贵不会让该项变成负数。因而改进 Utility 有多种途径:答对更多、花钱更少或完成更快。比较版本时应同时展示三项,否则一个更便宜但答对更少的 Agent 也可能得到更高排名。

07

Experiments & Claims

Research Question → Experiment → Answer

Paper Claim

Question:完整 Agent 能否通过编辑自身提高综合效用?→ Experiment:运行迭代自我修改,在 SWE-bench Verified、LiveCodeBench 子集和文件编辑、符号定位任务上记录每轮表现。→ Answer:作者观察到综合改进及可解释的工具变化,但单轮得分会下降,最佳 Accuracy 与最佳 Utility 也不必对应同一个版本。

Paper Claim

作者在 SWE-bench Verified 的随机子集上报告 17% 到 53% 的提升,并在其他编程评估中观察到增益。

08

Takeaways

这篇论文改变了哪些判断?

Inference

SICA 把“自身”落实为可执行的 Agent Repository。最值得复用的实验习惯是保存源码与每轮 Utility,而不是只保存最后一个 Prompt。论文展示了改进后 Agent 接管下一轮的结构,也暴露出评价权重会塑造演化方向。

09

Most Fragile Assumption

哪一个假设失效会动摇方法?

Inference

最脆弱的假设是固定 Utility 能代表未来用户需求。成本上限、超时和题目组合都是设计选择;一个针对短任务优化的编辑器,可能牺牲长任务中必要的核验步骤。选出 Utility 最高的父代并不保证选出最佳长期 Improver。

Inference

这一数字来自论文的随机子集和资源约束,不能与完整 SWE-bench Verified 榜单直接横比;代码演化不等于 foundation model 学习,单次迭代也可能退步。

10

One-Week Reproduction

用一周检验一个最小且明确的命题。

Hypothesis

Day 1–2:选取可隔离运行的文件编辑与符号定位任务,建立独立测试集。Day 3–5:限制修改范围为两个工具,运行五轮,保留每轮源码、成本和错误日志。Day 6–7:分别按原 Utility 与只看 Accuracy 重放选择,检验效率收益来自工具改进还是少做了必要检查。

11

Counterexample Design

如何构造有辨识力的反例?

Hypothesis

在开发集放入容易用字符串搜索定位的符号,隐藏集加入同名符号、动态导入与多层继承。如果演化出的快速 Locator 在开发集更好、隐藏集显著更差,就能定位到一个具体失败:局部的效率奖励偏好捷径,且不足以支撑可迁移能力。

12

Follow-up Research

从缺陷与需求推导新的研究问题。

Prior Work

后续相关工作 HyperAgents 已研究可编辑 Meta-Agent,并用受控的 Improvement@k 比较产生更好后继的能力。因此,仅增加 Improver 评测不足以支撑新颖性。

Hypothesis

让 Agent 学习一份“变化影响契约”:每次修改同时给出受影响的行为、资源消耗与必须保持的能力,由独立任务生成器主动寻找契约违例。研究目标是让下一代继承可检验的工程知识,而非仅继承源码。相对 ADAS 的候选搜索和 STOP 的程序改进,需要验证契约能否跨不同 Utility 保留价值;不能把多写一段修改说明当作实现。 相对 HyperAgents,待检验的缺口是改进机制在何种条件下可分解、移植与继承;需要同起点、同预算的组件交叉实验,识别机制作用及交互项。这个缺口尚未完成穷尽式检索,不能宣称已确认 Novelty。

Sources & Verification

阅读已固定版本的原文 Background、方法与主要结果,结合下列相关文献撰写。Paper Claim 表示作者报告,未独立复现;Inference 包括数学教学推演与 Idea Reconstruction。One-Week Reproduction、Counterexample 和 Follow-up 均为待执行提案,Novelty 尚需更全面的文献与实验检验。

  1. [1] A Self-Improving Coding Agent · v2 ↗原文 Background、Method / Formalization 与主要实验或理论结论。数字沿用原文设置;未独立运行完整实验。
  2. [2] Automated Design of Agentic Systems ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
  3. [3] Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
  4. [4] HyperAgents ↗Follow-up 的相关工作核查;晚于原论文的研究仅用于评估提案,不作为作者当时的知识或动机。
arXiv:2504.15228 · v2 / REVIEWED 2026.09.13
返回全部论文