-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Moa #2628
base: main
Are you sure you want to change the base?
Moa #2628
Conversation
Ngl this is a hell of a PR. I hope @paul-gauthier accepts it. |
key question -- is this any good? @gembancud can you provide any kind of evaluations, or performance metrics? |
This is with Sonnet and Gpt-4o together.
Will look to chaining o1, and 1206 as well, as soon as my rate limits relax abit! |
@gembancud so I understand that it is not currently any better than the Sonnet alone. @paul-gauthier recommend to reject because: Having to wait approx. 1 minute per question is fundamentally not compatible with the original vision of Aider -- of being an user-interactive system. @gembancud it's a great exercise but at this time I would recommend that you keep this private; we should avoid |
no autocomplete suggestion for /discuss |
my bad, i accidentally overrode My deepest apologies, i have been a bad contributor, not uploading a method use for this technique. I will do though soon, ive done prompt changes, and i pretty much use it as a daily driver now. |
Thanks for your interest in aider and for preparing this PR. This is a very large PR, that radically alters how aider would function. It seems unlikely that I could merge it would a pretty strong set of objective, quantitative evidence that it provides significant benefits. Have you been benchmarking this approach? |
Thank you for the attention! :) I have been recently dismayed by jerzydziewierz's remarks, coupled that the expensive benchmark tests i ran didnt breach the saturation mark. I have not had the time and financial confidentiality to test beyond the code editing benchmark unfortunately. More of my benchmarks are in a discord thread easily dug through the showcases channel Though you may notice the commits in here are continuous, that is evidenced by my tweaking nearly everyday as I have it as a main driver for development moving forward. I do think the code quality in here is much better compared to I am on the lookout for QoL suggestions though, to make it easier for everyone to try it out, as I think thats just a much more organic adoption if people look beyond the But if my message does not answer the base need for quantitative evidence then, Im fine with postponing the fight until the next release of benchmarks with reduced saturation. On a minor note, |
Dear @gembancud , sorry if you feel insulted, My personal experience with these auto coding tools is that they very quickly fall into the trap of under-specification: that is, the problem shifts into eliciting what does the user even want and need in the first place, rather than providing the solution. Hence, Aider has been envisioned as an coder-interactive tool rather than an auto-chatbot arena with some agentic effects on the source code. as @paul-gauthier said, May I suggest that you can fork aider (if licence permits) and develop your vision there, and when you can demonstrate to a few people that your approach is superior, the word of mouth will surely spread. As to benchmarking, you indeed do not need to demonstrate superiority on any of the big official benchmarks that may cost hundreds of dollars to run. Just demonstrate it nicely on one or a few examples specifically tailored to the strength of what you are proposing here. I honestly wish you best of luck with your passion project. |
Hi @gembancud, I am happy to sponsor any benchmarking cost that you may need :) |
Add Mixture of Architects (MOA) Feature
Overview
This PR introduces a powerful new feature called "Mixture of Architects" (MOA) - a collaborative AI architecture where multiple LLM "architects" work together to solve programming tasks. Each architect maintains its own conversation thread while being able to see and respond to other architects' proposals, enabling true multi-agent collaboration.
Key Features
Multiple Architect Collaboration
Discussion Flow
The discussion proceeds in rounds, with each round following this pattern:
Commands
Users can interact with MOA using three main commands:
/discuss <message>
(or just type normally) - Start/continue a discussion round/code <message>
- Move to implementation phase/drop <architect-name>
- Remove an architect from the discussionImplementation Phase
When moving to implementation (
/code
), the entire discussion history is compiled chronologically with full context. The editor coder then decides how to implement the changes based on:Technical Implementation
Key Components
MixtureOfArchitectsCoder
: Main class implementing the MOA functionalityArchitectAgent
: Class representing individual architects<user_message>
- Contains user queries<proposal>
- Contains an architect's specific proposal<architect name='NAME'>
- Contains full architect responsesCollaborative Design
/code
messageBenefits
Example Usage & Message Flow
Visual Flow Representation
Detailed Example with Clear Message Flow
🗣️ User Initiates
👤 ALPHA's Turn
What Alpha Sees:
Alpha's Response:
👤 BRAVO's Turn
What Bravo Sees:
Bravo's Response:
👤 CHARLIE's Turn
What Charlie Sees:
Charlie's Response:
Key Points About the Flow
Sequential Processing:
XML Structure:
<user_message>
wraps user inputs<architect name='NAME'>
wraps each architect's full response<proposal>
wraps specific proposals within responsesContext Accumulation:
Implementation Phase:
/code
command triggers the editorTesting
Future Enhancements
Breaking Changes
None. This is a new feature that doesn't affect existing functionality.
Dependencies
No new dependencies required.
This PR represents a significant enhancement to aider's capabilities, enabling more sophisticated and collaborative code generation and modification. The Mixture of Architects approach provides a unique way to leverage multiple LLMs for better code quality and more thorough problem solving.
Please contact me at discord for discussion :)
upnp