-
Notifications
You must be signed in to change notification settings - Fork 4.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
Customize LLM config per agent #2756
Customize LLM config per agent #2756
Conversation
Great to see this! goes back under a rock |
I am still polishing this PR but it's basically ready for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Basically LGTM, thanks for doing this! Just a few comments about printing/logging, but happy to merge this in after that.
I didn't get to play with it yet, and it's not fully clear to me, about breaking changes, what exactly are the old options that no longer work. llm_configs with random names, right? I'd appreciate a list of not working stuff 🤔, because I saw you added compatibility code, and it seems to me that older compatibility code will also continue to work. |
docs/modules/usage/changelog.md
Outdated
If you have only been using OpenDevin via frontend (web GUI), nothing needs | ||
to be taken care of. | ||
|
||
Here's a list of breaking changes in configs. They only apply to customers who |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/customers/users
Thanks for adding documentation on the breaking changes. I admit I'm heavily in favor of keeping compatibility as much as possible here, but this looks very good to me: most continue to be compatible, docker app not affected, and I think the couple of cli vars remaining will be okay in exchange. This PR is adding a flexibility that was long due and long requested. Thank you for this. ❤️ |
Awesome job! Long overdue, brings a lot of flexibility! Thanks! 🏅 |
Intro
Currently, OpenDevin uses a global singleton LLM config and a global singleton agent config. This PR allows customers to configure an LLM config for each agent. A hypothetically useful scenario is to use a cheaper LLM for repo exploration / code search, and a more powerful LLM to actually do the problem solving (CodeActAgent).
Partially solves #2075 (web GUI improvement is not the goal of this PR)
Breaking changes
Documented in
changelog.md
Demo
How the new config.yaml looks like can be found in
config.template.toml
ortest_config.py
in this PRTask: "Use browser to find out how many stars OpenDevin has on GitHub", default agent: "CodeActAgent", default model: "gpt-4-turbo"
From the backend log we can see: