-
Notifications
You must be signed in to change notification settings - Fork 79
Description
Parent Issue
Part of #879 — Support Multi-Agent Execution Modes Per Task
Context
CliTaskExecutorService currently dispatches to a single CLI tool per task (the one selected in settings). Multi-agent modes require dispatching different phases to different tools — e.g., Claude as implementer, Copilot as reviewer. The existing CliToolConfig model supports multiple enabled tools but only one is used per task.
Task
Enable role-based CLI tool selection so different agents can use different tools.
Key Changes
-
Extend Agent settings with role-to-tool mapping:
- Default implementer tool (dropdown of enabled CLI tools)
- Default reviewer tool (dropdown of enabled CLI tools)
- Default validator tool (dropdown or "same as implementer")
- Allow different tools per role (e.g., Claude implements, Gemini reviews)
-
Add
resolveToolForRole(AgentRole role)to settings:CliToolConfig resolveToolForRole(AgentRole role) { return switch (role) { case IMPLEMENTER -> getImplementerTool(); case REVIEWER -> getReviewerTool(); case VALIDATOR -> getValidatorTool(); }; }
-
Update
MultiAgentPhaseManagerto callresolveToolForRole()before each phase dispatch. -
Update
CliTaskExecutorService.execute()to accept role-specificCliToolConfig(already parameterized — just ensure the phase manager passes the right config). -
LLM mode equivalent: For LLM-mode execution, allow different models per role (e.g., Opus for implementation, Sonnet for review).
Files to Modify
src/main/java/com/devoxx/genie/ui/settings/agent/AgentSettingsComponent.javasrc/main/java/com/devoxx/genie/service/DevoxxGenieSettingsService.javasrc/main/java/com/devoxx/genie/service/spec/MultiAgentPhaseManager.java
Dependencies
- Requires: TaskExecutionMode enum ([FEATURE] #879 - Add TaskExecutionMode enum and per-task configuration #902)
- Requires: MultiAgentPhaseManager ([FEATURE] #879 - Implement MultiAgentPhaseManager for orchestrating agent sequences #904)
Acceptance Criteria
- Settings UI allows selecting different CLI tools per agent role
-
resolveToolForRole()returns correct tool for each role - Implementer and reviewer can use different CLI tools in the same task
- Default: all roles use the same tool (backward compatible)
- Settings persist across IDE restarts