def METHOD_NAME(
    self,
    agent_name: str,
    agent_role: str,
    agent_goals: list[str],
    abilities: list[str],
    os_info: str,
    api_budget: float,
    current_time: str,
    **kwargs,
) -> LanguageModelPrompt:
    template_kwargs = {
        "agent_name": agent_name,
        "agent_role": agent_role,
        "os_info": os_info,
        "api_budget": api_budget,
        "current_time": current_time,
        **kwargs,
    }
    template_kwargs["agent_goals"] = to_numbered_list(
        agent_goals, **template_kwargs
    )
    template_kwargs["abilities"] = to_numbered_list(abilities, **template_kwargs)
    template_kwargs["system_info"] = to_numbered_list(
        self._system_info, **template_kwargs
    )
    system_prompt = LanguageModelMessage(
        role=MessageRole.SYSTEM,
        content=self._system_prompt_template.format(**template_kwargs),
    )
    user_prompt = LanguageModelMessage(
        role=MessageRole.USER,
        content=self._user_prompt_template.format(**template_kwargs),
    )
    create_plan_function = LanguageModelFunction(
        json_schema=self._create_plan_function,
    )
    return LanguageModelPrompt(
        messages=[system_prompt, user_prompt],
        functions=[create_plan_function],
        # TODO:
        tokens_used=0,
    )