class {agent_name}(agents.Agent):
    """{agent_name} agent."""

    # NOTE: if the agent requires the reward matrix or transition matrix, 
    #       add them here with names `reward_matrix` and `transition_matrix`
    def __init__(self, name: str, seed: int, **kwargs):  # TODO: add any additional parameters here
        super().__init__(name, seed, **kwargs)
        # TODO: add any additional initialization here
    
    def reset(self):
        """Reset the agent's parameters."""
        # TODO: add any additional reset steps here

    def act(self, state: games.StateType) -> games.ActionType:
        """Return the action to take given the current state."""
        # TODO: add any additional act steps here

    def update(
        self,
        state: games.StateType,
        actions: typing.Sequence[games.ActionType],
        reward: games.RewardType,
        next_state: games.StateType,
        **kwargs,
    ):
        """Update the agent's parameters."""
        # TODO: add any additional update steps here


