def __init__(
      self,
      model: language_model.LanguageModel,
      memory: associative_memory.AssociativeMemory,
      agent_name: str,
      characteristic_name: str,
      state_clock_now: Callable[[], datetime.datetime] | None = None,
      extra_instructions: str = '',
      num_memories_to_retrieve: int = 25,
      verbose: bool = False,
  ):
    """Represents a characteristic of an agent (a trait or a state).

    Args:
      model: a language model
      memory: an associative memory
      agent_name: the name of the agent
      characteristic_name: the string to use in similarity search of memory
      state_clock_now: if None then consider this component as representing a
        `trait`. If a clock is used then consider this component to represent a
        `state`. A state is temporary whereas a trait is meant to endure.
      extra_instructions: append additional instructions when asking the model
        to assess the characteristic.
      num_memories_to_retrieve: how many memories to retrieve during the update
      verbose: whether or not to print intermediate reasoning steps.
    """
    self._verbose = verbose
    self._model = model
    self._memory = memory
    self._cache = ''
    self._characteristic_name = characteristic_name
    self._agent_name = agent_name
    self._extra_instructions = extra_instructions
    self._clock_now = state_clock_now
    self._num_memories_to_retrieve = num_memories_to_retrieve
    self._history = []
Represents a characteristic of an agent (a trait or a state).

    Args:
      model: a language model
      memory: an associative memory
      agent_name: the name of the agent
      characteristic_name: the string to use in similarity search of memory
      state_clock_now: if None then consider this component as representing a
        `trait`. If a clock is used then consider this component to represent a
        `state`. A state is temporary whereas a trait is meant to endure.
      extra_instructions: append additional instructions when asking the model
        to assess the characteristic.
      num_memories_to_retrieve: how many memories to retrieve during the update
      verbose: whether or not to print intermediate reasoning steps.
    
concordia/components/agent/deprecated/to_be_deprecated/characteristic.py