aider
aider copied to clipboard
Extending Aider - Senior Aider AI
Hi there :)
I wish aider had an high level layer which is has self reflection, knows all the commands of Aider (current and future ones) and that knows well how to use aider, in an advanced way.
For example, it should know how to use scripting, and help me create pipelines that use aider as the core. For example my previous issue #484, basically I was requesting a more autonomous version of aider that doesn't stop untill certain tests are passed. I was told to either use the /test command or to use scripting, but I don't think we are that far from Aider to be able to use Aider itself to construct such a pipeline.
I think all it takes is to provide it with the Aider corpus. This includes the Readme, release notes, GitHub issues with maintainer's suggestions, example usages, etc. I can probably gather these myself, but I think it's more appropriate that it comes out of the box, and always up-to-date with Aider changes.
And just as Aider knows to dynamically load relevant context from files in the repo, it should understand when it is asked to do something a bit more advanced than it currently does, load the aider the corpus, comeup and execute the custom pipeline.
In general I think every mature library should have a corpus to be loaded when used. For example if I want to use rich in my project, relying just on what the model knows usually doesn't achieve the best outcomes with the latest standards or practices, and many hallucinations. But if it would understand to load the Tree.md from the lib, it would do flawlessly. So basically the same way you map a repo, and use files when needed, I'd like more maps of useful public libraries, and for aider to dynamically understand which parts from it to load based on the task.
Ideally this will result in a lazy and public global skill library, like Voyager but for dev libraries. Where the mapping can be run once when a users asks for a lib, and following users can already use this mapping, unless an update was pushed, which will trigger a remapping.
To summerize, Aider that can manipulate and run Aider in more custom way, Aider with library up-to-date knowledge, and a global public and lazy library where one user's work contributes to everyone in the system.
Please let me know what you think about all of this, Thanks a lot and all the best!
That's a great idea @fire17
Thanks @KennyDizi :) Still waiting on @paul-gauthier @joshuavial to address this. Meanwhile all the best!
In general, I am not enthusiastic about too much agentic behavior in aider. My impression of other tools which attempt this is that GPT can easily off on its own in a bad direction, waste a lot of time and token costs and ultimately cause frustration. The UX for aider is "pair programming" where you work with GPT on each step, which lets you easily steer it towards the desired outcome.
@fire17 - similar to your idea, i've been encouraging the "open devin" community to use aider as a "tool" that their parent agent (what you are calling "senior aider") can use with a tool-calling / function-calling approach. https://discord.gg/UuCZ3UPT is where a lot of this dialog is happening.
i personally think that this more modular approach is better, and lets aider stay focused on what aider is the absolute stat-of-the-art at.
I'm going to close this issue for now, but feel free to add a comment here and I will re-open or file a new issue any time.