Feature Proposal: Integrate Optional Autonomous Agent Mode using AutoGen #1999
aeehliver
started this conversation in
Feature Requests
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Feature Proposal: Integrate Optional Autonomous Agent Mode using AutoGen
Hi Roo Code Team,
First off, thank you for creating Roo Code! It's an incredibly powerful and versatile VSCode extension for AI-assisted development, and the extensive LLM provider support and integrated tools are fantastic.
I'm opening this issue to propose a significant new feature: adding an optional "Agent Mode" powered by a multi-agent framework like Microsoft AutoGen. This aims to address some inherent limitations of the current single-assistant interaction model, especially for complex, multi-step tasks requiring higher autonomy, planning, and self-correction capabilities.
Motivation & Current Limitations
While Roo Code's current "Classic Mode" (using a single LLM with tools defined via XML, selectable via modes like
edit-code
,generate-tests
, etc.) is excellent for many tasks, users encounter challenges with more complex workflows:.roo/context
files, the single LLM can lose track of the overall goal, specific constraints, or previous steps in long-running tasks or large projects.planning
exist, the actual execution often requires manual stepping or struggles with tasks requiring proactive planning, dynamic task decomposition based on intermediate results, and autonomous decision-making (e.g., based on test outcomes).curl
or test runners via the<tool_code>execute-command</tool_code>
), the AI often struggles to autonomously interpret complex test failures, debug the root cause, and implement correct fixes without significant human guidance. It might generate superficial tests or simply report the failure and ask the user for help instead of proceeding independently. The feedback loop is often manual or relies on the LLM correctly figuring out the entire multi-step correction process in one go.Proposed Solution: Optional AutoGen-Powered "Agent Mode"
I propose integrating an optional mode that leverages a multi-agent system built with AutoGen (a popular Python framework). This would coexist with the current "Classic Mode".
High-Level Architecture:
src/services/terminal
,src/utils/fs.ts
,src/services/ripgrep
,src/services/tree-sitter
, etc.).pip
).PlannerAgent
,CoderAgent
,TestGeneratorAgent
,TestExecutorAgent
,DebuggerAgent
).Integration with Existing Mode System:
From a user experience perspective, this "Agent Mode" could be seamlessly integrated as an additional option within Roo Code's existing mode selection framework (defined in
src/shared/modes.ts
). Users could simply choose "Agent Mode" for tasks requiring higher autonomy.However, the backend implementation for this mode would differ significantly. While existing modes primarily function by tailoring the system prompt and available XML tools for the single LLM assistant, activating "Agent Mode" would engage the external Python-based AutoGen orchestration engine via the proposed communication bridge. This allows introducing true multi-agent capabilities while maintaining a consistent user experience for mode selection.
Anticipating the Question: How is this different from current tool use and modes?
We acknowledge Roo Code's sophisticated existing tool integration (XML-based) and different operational modes. These are powerful for enabling the LLM to interact with the environment.
However, the current mechanism relies on the LLM itself to correctly sequence, invoke, and interpret the results of these tools within the flow of a single conversational turn or a manually guided sequence. The proposed Agent Mode using AutoGen externalizes the orchestration logic.
In Agent Mode, specialized Python agents manage the workflow, maintain persistent state across multiple steps (potentially involving dozens of tool calls and LLM inferences), and make structured, autonomous decisions based on tool outputs (like detailed test results). This provides a more robust framework for true autonomy in complex tasks like end-to-end feature implementation with self-correction, which is qualitatively different from instructing a single LLM to use tools sequentially, even within specific modes like
planning
.Example Improvement: Autonomous Autotesting Loop
execute-command
. If tests fail, the LLM might try a simple fix or ask the user for guidance. The loop often requires manual intervention.DebuggerAgent
receives structured test failure reports from aTestExecutorAgent
. It can then autonomously decide to use tools (via the TS bridge) to read files (read-file
), analyze code (tree-sitter
?), determine a fix, instruct aCoderAgent
or apply the fix directly (write-to-file
), and trigger a re-test via theTestExecutorAgent
. This autonomous test-debug-fix cycle is a key advantage.Benefits for Roo Code
src/services/
) by making them accessible to the AutoGen agents via the callback bridge.Implementation Considerations
pip install pyautogen fastapi uvicorn websockets requests python-dotenv
) and would have to manually start the local Python backend process. Documentation would be key.Call to Action
We believe this optional "Agent Mode" integration would be a significant enhancement for Roo Code, unlocking new levels of capability and autonomy for complex development tasks.
Thank you for considering this proposal and for your amazing work on Roo Code!
Beta Was this translation helpful? Give feedback.
All reactions