-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Overhaul of the Python Agents Settings - Unified and transparent settings. #7209
base: dev
Are you sure you want to change the base?
Conversation
21acf57
to
e4a60d3
Compare
190f75e
to
bb1c98f
Compare
af05e51
to
1be285b
Compare
After a quick check, this looks like a promising PR. I'll take a deeper look as soon as possible, and report back |
Hey, after a longer review here is my feedback. First of all, the overall structure is a win for the agent parameters, as everything is localized onto one configuration file, which can be easily expanded over time. However, the way the Config classes are created seems unnecessarily convoluted. The separation of the configuration in several data classes makes it very hard to keep track of the configuration format, and the amount of documentation and typing each parameter has also makes it confusing to follow. Overall, the PythonAPI agents are meant to be a simple, easy to pick up module, and while the agent's are now simpler. the configuration is not. |
Thank you for you feedback and I agree with you, I think some parts can be stripped and I have ideas how to simplify it. I'll look at it in the coming weeks again. |
added init fix fixes
also cleaner initialization
Using the SimpleConfig interface
BasicAgent and the BehaviourAgent do differ here, this allows both options for both agents. fix constant velocity agent
Backward compatibility
a1ad11e
to
f9bc71d
Compare
Description
Currently the agents settings are mostly stored in arguments after initialization.
The user currently has to configure the agents in multiple ways: function parameters, a dictionary, a look-up class for the behavior agent.
After initialization some of the settings are permanent and cannot be changes anymore as no setter functions are implemented.
This updated addresses these points with two main goals:
Additionally:
Where has this been tested?
Possible Drawbacks
Compatibility is not a given. With some setters and getters this can be overcome.
The
agents_settings_backend.py
is at some parts a bit involved to allow for a simple user interface. Namely theAgentConfig.update & __post_init__
to merge the overwrites dict, and the SimpleConfig that allows for flat and non-dataclass configs similar to the given BehaviorAgent behavior_types.Todos & Discussions
This change is