A Self-Improving Coding Agent
SICA:一个具备 self-improvement 能力的 coding Agent
让 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 与任务表现分别有机制和实验依据。
检查原文设置 ↗原论文明确提出或报告的内容
相关文献中已有的知识与结论
基于证据的解释、重建或教学推演
待验证的猜测、实验计划或新研究提案
Idea Reconstruction 是从已知背景出发的推演,不代表作者真实心理过程。Follow-up 是研究提案;相关工作比较不等于已证实 Novelty。教学示例与原文案例在正文中区分。
Contents · 12 Questions
Core Intuition
用一个清楚的视角抓住方法本质。
SICA 让档案中表现最佳的 Agent 承担下一轮改进工作,目标 Agent 与改进 Agent 因而不再固定分离。优化对象是组织工具、prompt 和 model 调用的程序;效用同时考虑得分、耗时与费用,使自身实现成为可以累积更新的经验。
Method & Worked Example
沿着输入、处理、输出走完 Pipeline。
从 Agent 档案中选择效用最高者分析历史结果并修改自身代码,再运行 benchmark 入档;效用综合任务得分、运行时间和费用,不更新 foundation model weights。
论文记录了 Smart Edit、Context Summarization 和 Symbol Locator 等实际变化。以 Symbol Locator 为例:输入是某个符号引用及代码仓库;旧 Agent 依靠多次搜索定位定义。自我修改阶段增加 AST 定位工具,下一轮执行任务时调用它,输出定义所在文件和位置。该工具连同 Agent 源码被保留;外层评估器重新统计成本、时间和任务成功率,再决定谁接任下一轮 Meta-Agent。
Mathematical Foundations
从符号、直觉与简单例子理解理论。
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
代入一个教学数值:Accuracy=0.6、Cost=$2、Time=60 秒且未超时,三个贡献分别为 0.3、0.2、0.2,Utility=0.7。min(1,·) 把资源惩罚截断,花费达到 $10 后,Cost 项归零,继续变贵不会让该项变成负数。因而改进 Utility 有多种途径:答对更多、花钱更少或完成更快。比较版本时应同时展示三项,否则一个更便宜但答对更少的 Agent 也可能得到更高排名。
Experiments & Claims
Research Question → Experiment → Answer
Question:完整 Agent 能否通过编辑自身提高综合效用?→ Experiment:运行迭代自我修改,在 SWE-bench Verified、LiveCodeBench 子集和文件编辑、符号定位任务上记录每轮表现。→ Answer:作者观察到综合改进及可解释的工具变化,但单轮得分会下降,最佳 Accuracy 与最佳 Utility 也不必对应同一个版本。
Takeaways
这篇论文改变了哪些判断?
SICA 把“自身”落实为可执行的 Agent Repository。最值得复用的实验习惯是保存源码与每轮 Utility,而不是只保存最后一个 Prompt。论文展示了改进后 Agent 接管下一轮的结构,也暴露出评价权重会塑造演化方向。
One-Week Reproduction
用一周检验一个最小且明确的命题。
Day 1–2:选取可隔离运行的文件编辑与符号定位任务,建立独立测试集。Day 3–5:限制修改范围为两个工具,运行五轮,保留每轮源码、成本和错误日志。Day 6–7:分别按原 Utility 与只看 Accuracy 重放选择,检验效率收益来自工具改进还是少做了必要检查。
Counterexample Design
如何构造有辨识力的反例?
在开发集放入容易用字符串搜索定位的符号,隐藏集加入同名符号、动态导入与多层继承。如果演化出的快速 Locator 在开发集更好、隐藏集显著更差,就能定位到一个具体失败:局部的效率奖励偏好捷径,且不足以支撑可迁移能力。
Follow-up Research
从缺陷与需求推导新的研究问题。
后续相关工作 HyperAgents 已研究可编辑 Meta-Agent,并用受控的 Improvement@k 比较产生更好后继的能力。因此,仅增加 Improver 评测不足以支撑新颖性。
Sources & Verification
阅读已固定版本的原文 Background、方法与主要结果,结合下列相关文献撰写。Paper Claim 表示作者报告,未独立复现;Inference 包括数学教学推演与 Idea Reconstruction。One-Week Reproduction、Counterexample 和 Follow-up 均为待执行提案,Novelty 尚需更全面的文献与实验检验。
- [1] A Self-Improving Coding Agent · v2 ↗原文 Background、Method / Formalization 与主要实验或理论结论。数字沿用原文设置;未独立运行完整实验。
- [2] Automated Design of Agentic Systems ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
- [3] Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
- [4] HyperAgents ↗Follow-up 的相关工作核查;晚于原论文的研究仅用于评估提案,不作为作者当时的知识或动机。
