Towards Adaptive Software Agents for Debugging
Yacine Majdoub, Eya Ben Charrada, Haifa Touati
TL;DR
The paper tackles inefficiencies in static, multi-agent debugging with LLMs by proposing an adaptive agent design where a central main agent analyzes buggy code, plans the debugging strategy, profiles specialized agents, and dynamically instantiates them based on task complexity. Specialized agents collaborate under the main agent to execute the plan, with iterative validation guiding re-plans to avoid repeats. Preliminary evaluation on 50 Python buggy instances across four LLMs shows the adaptive approach improves bug-fix rates by 6–18% and scales resource usage to task difficulty (1 agent for simple tasks, up to 5 for complex ones). This work demonstrates the feasibility and benefits of adaptive, autonomous planning for software debugging and outlines directions for broader application and autonomous goal-driven behavior in software agents.
Abstract
Using multiple agents was found to improve the debugging capabilities of Large Language Models. However, increasing the number of LLM-agents has several drawbacks such as increasing the running costs and rising the risk for the agents to lose focus. In this work, we propose an adaptive agentic design, where the number of agents and their roles are determined dynamically based on the characteristics of the task to be achieved. In this design, the agents roles are not predefined, but are generated after analyzing the problem to be solved. Our initial evaluation shows that, with the adaptive design, the number of agents that are generated depends on the complexity of the buggy code. In fact, for simple code with mere syntax issues, the problem was usually fixed using one agent only. However, for more complex problems, we noticed the creation of a higher number of agents. Regarding the effectiveness of the fix, we noticed an average improvement of 11% compared to the one-shot prompting. Given these promising results, we outline future research directions to improve our design for adaptive software agents that can autonomously plan and conduct their software goals.
