Software Self-Extension with SelfEvolve: an Agentic Architecture for Runtime Code Generation
This work addresses the need for autonomous software self-extension during execution, enabling systems to evolve without developer intervention, though it is incremental as it builds on existing LLM capabilities.
The paper tackled the problem of limited support for generating novel functionalities in self-adaptive systems by introducing SelfEvolve, an agentic architecture for runtime code generation, achieving an average Pass@1 of 92.7% and a 61.8% improvement over the best baseline.
Traditional self-adaptive systems automatically reconfigure existing components in response to changing requirements, but provide limited support for the generation of novel functionalities. The software generation capabilities of large language models (LLMs) open the possibility to create entirely new modules at runtime, enabling a form of self-evolution beyond traditional self-adaptation. We present SelfEvolve, an orchestrated agentic pipeline architecture enabling runtime self-extension--the autonomous addition of new capabilities during execution--as a preliminary form of self-evolution. Self-extension focuses on the autonomous generation and integration of new functions, based on user requests, without requiring a system restart or developer intervention. Evaluation of our architecture across 11 self-extension tasks demonstrates an average Pass@1 of 92.7% (51/55), outperforming developer-focused code generation baselines like AutoGen, MetaGPT, and AgentCoder. SelfEvolve achieves 61.8% improvement over the best baseline, i.e. Autogen, with statistical significance. This work demonstrates the feasibility of runtime capability extension through autonomous code generation. This provides preliminary evidence for a paradigm in which systems autonomously evolve to satisfy user needs, paving the way towards individualised, self-improving systems.