aboutsummaryrefslogtreecommitdiff
path: root/autogpt/core/runner/cli_app/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'autogpt/core/runner/cli_app/main.py')
-rw-r--r--autogpt/core/runner/cli_app/main.py110
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