Self-Evolving Coding Agents

Hao Zhou, Haichuan Hu, Ye Shang, Quanjun Zhang

arXiv:2608.03392 · 2026-08-06 공개 · arXiv · PDF

software-engineering coding-agents self-evolving-agents agent-framework repository-analysis feedback-learning test-execution tool-invoke

Abstract

Large language models are increasingly embedded in software engineering workflows as coding agents that can inspect repositories, invoke tools, execute tests, debug failures, and generate patches. Yet most existing agents remain largely static after deployment, even though software development is a dynamic, feedback-rich process in which repositories evolve, dependencies change, tests fail, and repair attempts leave reusable experience. This tension has motivated a growing body of work on self-evolving coding agents, where the agent improves its future behavior by updating its framework, memory, skills, tools, models, or collaboration structures from prior coding interactions. In this survey, we provide a systematic synthesis of this emerging area. We first define self-evolving coding agents and distinguish them from conventional coding agents and general self-evolving agents. We then develop an object-centered taxonomy that characterizes what evolves in these systems, and complement it with two orthogonal perspectives: when evolution occurs and what software-specific evidence drives it. Across the literature, we find that executable feedback, repository-level context, and coding trajectories give software engineering a distinctive role as a natural domain for agent self-evolution, but also introduce new challenges in feedback reliability, benchmark overfitting, safety, maintainability, cost, and generalization. By organizing existing work around these dimensions, this survey aims to clarify the conceptual boundaries of self-evolving coding agents and provide a foundation for designing more adaptive, reliable, and software-aware agentic systems. The papers we collect can be found at https://github.com/zhouhao1024/Awesome-Self-Evolving-Coding-Agents.

한국어 요약

한 줄 요약

자체적으로 학습하고 진화하는 코드 에이전트에 대한 체계적인 분석과 분류를 제시한 서베이 논문.

핵심 기여도

핵심 아이디어

기존 코드 에이전트는 대부분 배포 후 정적 상태로 유지되지만, 소프트웨어 개발은 동적이고 피드백이 풍부한 과정이다. 따라서 **코드 에이전트가 자신의 프레임워크, 메모리, 스킬, 도구, 모델, 워크플로우 등을 과거 경험과 실행 가능한 피드백을 통해 스스로 진화**할 수 있어야 한다는 것이 핵심 아이디어이다.

이를 위해, 본 논문은 **소프트웨어 중심의 실행 가능한 피드백**(예: 단위 테스트, 컴파일러 오류, 런타임 추적, CI 결과)을 기반으로 에이전트가 스스로 학습하는 메커니즘을 탐색한다. 특히, **Self-Play SWE-RL**과 같은 시스템은 버그 생성, 해결, 실행 검증을 반복하며 에이전트 정책을 업데이트하는 방식으로 모델 측 진화를 구현한다.

또한, **ReVeal**과 **Sol-Ver**는 코드 생성과 검증을 반복하면서 생성기와 검증기 모델을 동시에 진화시키는 방식으로, **CURE**와 **ZeroCoder**는 생성된 코드에 대한 테스트 피드백을 통해 생성기와 테스터 역할을 동시에 학습한다. 이러한 접근은 단순히 테스트 수를 늘리는 것이 아니라, **실행 가능한 불일치**(disagreement)를 기반으로 에이전트의 미래 행동을 지속적으로 업데이트하는 데 초점을 맞춘다.

기술적 접근법

주요 결과

의의 및 한계

본 논문은 **자체 진화 코드 에이전트**의 개념적 경계를 명확히 정의하고, **소프트웨어 중심의 피드백**을 기반으로 에이전트가 스스로 진화하는 메커니즘을 체계적으로 분류한 점에서 학술적 의의가 있다. 특히, **모델 측 진화**(model-side evolution) 사례를 구체적으로 제시하며, **Self-Play SWE-RL**, **ReVeal**, **CURE**, **Sol-Ver**, **ACE** 등 다양한 알고리즘을 비교 분석함으로써 연구 기반을 확장했다.

하지만, 피드백 신뢰성, 베이스라인 과적합, 안전성, 유지 가능성, 비용, 일반화 능력 등 여러 도전 과제가 여전히 존재한다. 예를 들어, Self-Play SWE-RL학습 신호가 에이전트 자체의 진화 시도에 닫혀 있어야 진정한 진화로 간주되며, 데이터 생성만 늘리는 것이 진화를 보