aider icon indicating copy to clipboard operation
aider copied to clipboard

Custom instructions

Open joshuavial opened this issue 11 months ago • 7 comments

I have noticed a few issues (such as #248 #243 ) where people want specific behavior that might not be general enough to warrant a new feature and it's made me think about giving folks the ability to append instructions to the system prompt - similar to custom instructions in ChatGPT.

This could be a new flag in the config so set on a global, per project, or per run basis and would greatly increase the ability for people to customise aider. It might also help the folks interested in #172 get better performance out of different models without having to create and maintain lots of different system prompts.

It would be pretty easy to add in but my main concerns are

  • messing with the system prompt could degrade aider's performance for people, so it would be possible for people to do thing
  • it would make support harder - we'd now need version, model, and custom instructions as well as the description of the behaviour to understand what is going on.

What do folks think, worthwhile feature?

joshuavial avatar Sep 08 '23 22:09 joshuavial

You could add an option that would dump that info out and make it easier for the submitter to copy-n-paste.

harleypig avatar Sep 24 '23 13:09 harleypig

See https://github.com/paul-gauthier/aider/issues/398#issuecomment-1975392230 for a basic PR allowing custom prompts to be defined in a yaml file

thepigeonoftime avatar Mar 03 '24 23:03 thepigeonoftime

There's a FAQ entry that might contain helpful information:

https://aider.chat/docs/faq.html#can-i-change-the-system-prompts-that-aider-uses

paul-gauthier avatar Mar 04 '24 00:03 paul-gauthier

There's a FAQ entry that might contain helpful information:

https://aider.chat/docs/faq.html#can-i-change-the-system-prompts-that-aider-uses

Is there a way to use modified versions of these without rebuilding aider?

thepigeonoftime avatar Mar 04 '24 00:03 thepigeonoftime

Aider is written in python, so there's no need to "rebuild" it. But you do need to know a bit about how to install a development version with pip install -e and then edit the python source.

https://aider.chat/docs/install.html#install-development-versions-of-aider-optional

paul-gauthier avatar Mar 04 '24 00:03 paul-gauthier

Aider is written in python, so there's no need to "rebuild" it. But you do need to know a bit about how to install a development version with pip install -e and then edit the python source.

https://aider.chat/docs/install.html#install-development-versions-of-aider-optional

The setup of the development instance is what I meant, 'rebuilding' is a misnomer indeed. If there's no perceived value in allowing users modification of system prompts without touching aider source files, e.g. by employing a centralized collection in a serialized data format (or allowing the specification of one for optional overrides), this issue can probably considered for closure given the above link to the system prompt FAQ entry.

thepigeonoftime avatar Mar 04 '24 11:03 thepigeonoftime

A large portion of the prompt text in coders/xxx_prompts.py is very closely tied to the specifics of the python coder implementation in the matched file coders/xxx_coder.py. It would probably set a wrong expectation to break those prompts apart into a yaml file that is up for ad-hoc editing by users.

If someone wants to change the prompts, they probably need to commit to understanding what it means to modify an aider Coder first.

paul-gauthier avatar Mar 04 '24 19:03 paul-gauthier

There's a FAQ entry that might contain helpful information:

https://aider.chat/docs/faq.html#can-i-specify-guidelines-or-conventions

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.

paul-gauthier avatar Apr 15 '24 20:04 paul-gauthier