Skip to content

Conversation

@Vruddhi18
Copy link

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.

Vruddhi18 added 2 commits June 8, 2025 23:56
…rove readability

## Agent Class Constructor Refactor

### Overview

This update refactors the `Agent` class constructor by introducing default values for the parameters `min_observations` and `observations_per_step`. This change aims to improve code clarity, simplify internal logic, and reduce potential errors arising from `None` values.

### Changes

- **`min_observations`**:  
  - **Before**: Could be `None`.  
  - **After**: Defaults to `0`. This means the agent can start learner steps immediately unless otherwise specified.

- **`observations_per_step`**:  
  - **Before**: Could be `None`.  
  - **After**: Defaults to `1.0`, indicating one learner step per actor observation by default.

### Benefits

- Removes the need for repeated `None` checks in the code.  
- Simplifies the update logic and makes it more readable.  
- Provides a clear, sensible default behavior for agent training schedules.  


---

This refactor improves maintainability and reduces potential bugs caused by unhandled `None` values, helping the project stay robust and easier to extend.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant