camel
camel copied to clipboard
Strict inheritance for all agents
Description
Kept disjoint inheritance trees starting from Base Agent, BaseToolAgent and BaseCritic.
Motivation and Context
Signatures of the overridden methods must be preserved precisely (in Liskov meaning). This will allow further use of agents in polymorphic setting.
Issue #163
This is a list of rules of overriding for python: https://rules.sonarsource.com/python/RSPEC-2638/
Strict override checks are made with the override decorator: https://pypi.org/project/overrides/
Types of changes
- [x] Breaking change (fix or feature that would cause existing functionality to change)
Checklist
Go over all the following points, and put an x
in all the boxes that apply.
If you are unsure about any of these, don't hesitate to ask. We are here to help!
- [x] I have read the CONTRIBUTION guide. (required)
- [x] My change requires a change to the documentation.
- [x] I have updated the tests accordingly. (required for a bug fix or a new feature)
- [ ] I have updated the documentation accordingly.