diff options
Diffstat (limited to 'autogpt/core/runner/cli_app/main.py')
-rw-r--r-- | autogpt/core/runner/cli_app/main.py | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/autogpt/core/runner/cli_app/main.py b/autogpt/core/runner/cli_app/main.py deleted file mode 100644 index 60af24bec..000000000 --- a/autogpt/core/runner/cli_app/main.py +++ /dev/null @@ -1,110 +0,0 @@ -import click - -from autogpt.core.agent import AgentSettings, SimpleAgent -from autogpt.core.runner.client_lib.logging import get_client_logger - - -async def run_auto_gpt(user_configuration: dict): - """Run the Auto-GPT CLI client.""" - - client_logger = get_client_logger() - client_logger.debug("Getting agent settings") - - agent_workspace = ( - user_configuration.get("workspace", {}).get("configuration", {}).get("root", "") - ) - - if not agent_workspace: # We don't have an agent yet. - ################# - # Bootstrapping # - ################# - # Step 1. Collate the user's settings with the default system settings. - agent_settings: AgentSettings = SimpleAgent.compile_settings( - client_logger, - user_configuration, - ) - - # Step 2. Get a name and goals for the agent. - # First we need to figure out what the user wants to do with the agent. - # We'll do this by asking the user for a prompt. - user_objective = click.prompt("What do you want Auto-GPT to do?") - # Ask a language model to determine a name and goals for a suitable agent. - name_and_goals = await SimpleAgent.determine_agent_name_and_goals( - user_objective, - agent_settings, - client_logger, - ) - print(parse_agent_name_and_goals(name_and_goals)) - # Finally, update the agent settings with the name and goals. - agent_settings.update_agent_name_and_goals(name_and_goals) - - # Step 3. Provision the agent. - agent_workspace = SimpleAgent.provision_agent(agent_settings, client_logger) - print("agent is provisioned") - - # launch agent interaction loop - agent = SimpleAgent.from_workspace( - agent_workspace, - client_logger, - ) - print("agent is loaded") - - plan = await agent.build_initial_plan() - print(parse_agent_plan(plan)) - - while True: - current_task, next_ability = await agent.determine_next_ability(plan) - print(parse_next_ability(current_task, next_ability)) - user_input = click.prompt( - "Should the agent proceed with this ability?", - default="y", - ) - ability_result = await agent.execute_next_ability(user_input) - print(parse_ability_result(ability_result)) - - -def parse_agent_name_and_goals(name_and_goals: dict) -> str: - parsed_response = f"Agent Name: {name_and_goals['agent_name']}\n" - parsed_response += f"Agent Role: {name_and_goals['agent_role']}\n" - parsed_response += "Agent Goals:\n" - for i, goal in enumerate(name_and_goals["agent_goals"]): - parsed_response += f"{i+1}. {goal}\n" - return parsed_response - - -def parse_agent_plan(plan: dict) -> str: - parsed_response = f"Agent Plan:\n" - for i, task in enumerate(plan["task_list"]): - parsed_response += f"{i+1}. {task['objective']}\n" - parsed_response += f"Task type: {task['type']} " - parsed_response += f"Priority: {task['priority']}\n" - parsed_response += f"Ready Criteria:\n" - for j, criteria in enumerate(task["ready_criteria"]): - parsed_response += f" {j+1}. {criteria}\n" - parsed_response += f"Acceptance Criteria:\n" - for j, criteria in enumerate(task["acceptance_criteria"]): - parsed_response += f" {j+1}. {criteria}\n" - parsed_response += "\n" - - return parsed_response - - -def parse_next_ability(current_task, next_ability: dict) -> str: - parsed_response = f"Current Task: {current_task.objective}\n" - ability_args = ", ".join( - f"{k}={v}" for k, v in next_ability["ability_arguments"].items() - ) - parsed_response += f"Next Ability: {next_ability['next_ability']}({ability_args})\n" - parsed_response += f"Motivation: {next_ability['motivation']}\n" - parsed_response += f"Self-criticism: {next_ability['self_criticism']}\n" - parsed_response += f"Reasoning: {next_ability['reasoning']}\n" - return parsed_response - - -def parse_ability_result(ability_result) -> str: - parsed_response = f"Ability: {ability_result['ability_name']}\n" - parsed_response += f"Ability Arguments: {ability_result['ability_args']}\n" - parsed_response = f"Ability Result: {ability_result['success']}\n" - parsed_response += f"Message: {ability_result['message']}\n" - parsed_response += f"Data: {ability_result['new_knowledge']}\n" - return parsed_response |