def __init__(
      self,
      model: language_model.LanguageModel,
      observation_component_name: str,
      memory_component_name: str = (
          memory_component.DEFAULT_MEMORY_COMPONENT_NAME
      ),
      components: Mapping[
          entity_component.ComponentName, str
      ] = types.MappingProxyType({}),
      clock_now: Callable[[], datetime.datetime] | None = None,
      goal_component_name: str | None = None,
      num_memories_to_retrieve: int = 10,
      horizon: str = 'the rest of the day',
      pre_act_key: str = DEFAULT_PRE_ACT_KEY,
      logging_channel: logging.LoggingChannel = logging.NoOpLoggingChannel,
  ):
    """Initialize a component to represent the agent's plan.

    Args:
      model: a language model
      observation_component_name: The name of the observation component from
        which to retrieve observations.
      memory_component_name: The name of the memory component from which to
        retrieve memories
      components: components to build the context of planning. This is a mapping
        of the component name to a label to use in the prompt.
      clock_now: time callback to use for the state.
      goal_component_name: index into `components` to use to represent the goal
        of planning
      num_memories_to_retrieve: how many memories to retrieve as conditioning
        for the planning chain of thought
      horizon: string describing how long the plan should last
      pre_act_key: Prefix to add to the output of the component when called
        in `pre_act`.
      logging_channel: channel to use for debug logging.
    """
    super().__init__(pre_act_key)
    self._model = model
    self._observation_component_name = observation_component_name
    self._memory_component_name = memory_component_name
    self._components = dict(components)
    self._clock_now = clock_now
    self._goal_component_name = goal_component_name
    self._num_memories_to_retrieve = num_memories_to_retrieve
    self._horizon = horizon

    self._current_plan = ''

    self._logging_channel = logging_channel
Initialize a component to represent the agent's plan.

    Args:
      model: a language model
      observation_component_name: The name of the observation component from
        which to retrieve observations.
      memory_component_name: The name of the memory component from which to
        retrieve memories
      components: components to build the context of planning. This is a mapping
        of the component name to a label to use in the prompt.
      clock_now: time callback to use for the state.
      goal_component_name: index into `components` to use to represent the goal
        of planning
      num_memories_to_retrieve: how many memories to retrieve as conditioning
        for the planning chain of thought
      horizon: string describing how long the plan should last
      pre_act_key: Prefix to add to the output of the component when called
        in `pre_act`.
      logging_channel: channel to use for debug logging.
    
concordia/components/agent/deprecated/plan.py