Refactor: Agent Class #343
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This refactor of the Agent class focuses on code clarity and maintainability while explicitly ensuring that no original behavior is changed.
It merges two key efforts:
A readability-driven update that clarified constructor logic and internal structure.
A behavioral reversion that restores original semantics involving optional parameters and constants.
Behavior Preservation
Removed default values for:
min_observations: Restored to allow None (was temporarily defaulted to 0).
observations_per_step: Restored to allow None (was temporarily defaulted to 1.0).
These changes ensure the original learning schedule logic remains untouched, especially where conditional logic relies on None.
Scope Reversion
Reverted _MAX_BATCH_SIZE_UPPER_BOUND:
Previously extracted as a global constant.
Now returned to inline usage within the constructor to avoid unnecessary scope expansion or global leakage.
Additional Improvements
Even while reverting the above behavioral changes, we retained the following structural refactors for clarity:
Clearer method and argument documentation.
Renamed internal variables for expressiveness (steps_since_min, update_actor, etc.).
Improved inline comments to better explain conditions and edge cases.
Clean, consistent formatting throughout the class.