From bff8528c75e7e56a3c4dd1c27cb1eeda7547ab6f Mon Sep 17 00:00:00 2001 From: 1rubbishyuan <2773496952@qq.com> Date: Sun, 15 Oct 2023 20:44:20 +0800 Subject: [PATCH 1/4] update tasksolving --- agentverse/tasksolving.py | 24 +++++++++++++----------- agentverse/utils.py | 8 ++++++++ 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/agentverse/tasksolving.py b/agentverse/tasksolving.py index 2bd2bd9b7..54653cdee 100644 --- a/agentverse/tasksolving.py +++ b/agentverse/tasksolving.py @@ -6,7 +6,7 @@ from agentverse.environments.tasksolving_env.basic import BasicEnvironment from agentverse.initialization import load_agent, load_environment, prepare_task_config -from agentverse.utils import AGENT_TYPES +from agentverse.utils import AGENT_TYPES,get_AGENT_TYPE openai_logger = logging.getLogger("openai") @@ -33,19 +33,21 @@ def from_task(cls, task: str, tasks_dir: str): # Build the environment env_config = task_config["environment"] - + # Build agents for all pipeline (task) agents = {} for i, agent_config in enumerate(task_config["agents"]): - agent_type = AGENT_TYPES(i) - if i == 2 and agent_config.get("agent_type", "") == "critic": - agent = load_agent(agent_config) - agents[agent_type] = [ - copy.deepcopy(agent) - for _ in range(task_config.get("cnt_agents", 1) - 1) - ] - else: - agents[agent_type] = load_agent(agent_config) + # agent_type = AGENT_TYPES(i) + # if i == 2 and agent_config.get("agent_type", "") == "critic": + # agent = load_agent(agent_config) + # agents[agent_type] = [ + # copy.deepcopy(agent) + # for _ in range(task_config.get("cnt_agents", 1) - 1) + # ] + # else: + # agents[agent_type] = load_agent(agent_config) + agent_type=get_AGENT_TYPE(agent_config.get("agent_type","")) + agents[agent_type]=load_agent(agent_config) env_config["agents"] = agents diff --git a/agentverse/utils.py b/agentverse/utils.py index 196d0ba2e..51375dde9 100644 --- a/agentverse/utils.py +++ b/agentverse/utils.py @@ -34,6 +34,14 @@ class AGENT_TYPES(Enum): EXECUTION = 3 EVALUATION = 4 MANAGER = 5 +def get_AGENT_TYPE(agent_type:str): + str2EnumDict={"role_assigner":AGENT_TYPES(0) + ,"solver":AGENT_TYPES(1) + ,"critic":AGENT_TYPES(2) + ,"executor":AGENT_TYPES(3) + ,"evaluator":AGENT_TYPES(4) + ,"manager":AGENT_TYPES(5)} + return str2EnumDict[agent_type] class Singleton(abc.ABCMeta, type): From cbda36532438b0734ec0d44abcf90e71dd969ba8 Mon Sep 17 00:00:00 2001 From: 1rubbishyuan <2773496952@qq.com> Date: Mon, 16 Oct 2023 11:38:25 +0800 Subject: [PATCH 2/4] fix a bug --- agentverse/tasksolving.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/agentverse/tasksolving.py b/agentverse/tasksolving.py index 54653cdee..1bfb2c452 100644 --- a/agentverse/tasksolving.py +++ b/agentverse/tasksolving.py @@ -46,8 +46,15 @@ def from_task(cls, task: str, tasks_dir: str): # ] # else: # agents[agent_type] = load_agent(agent_config) - agent_type=get_AGENT_TYPE(agent_config.get("agent_type","")) - agents[agent_type]=load_agent(agent_config) + if agent_config.get("agent_type","") =="critic": + agent=load_agent(agent_config) + agents[AGENT_TYPES.CRITIC] =[ + copy.deepcopy(agent) + for _ in range(task_config.get("cnt_agents",1)-1) + ] + else: + agent_type=get_AGENT_TYPE(agent_config.get("agent_type","")) + agents[agent_type]=load_agent(agent_config) env_config["agents"] = agents From 28222abcf7d0bb34a86701f1457837443f482287 Mon Sep 17 00:00:00 2001 From: 1rubbishyuan <2773496952@qq.com> Date: Mon, 16 Oct 2023 11:58:24 +0800 Subject: [PATCH 3/4] delete annotation --- agentverse/tasksolving.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/agentverse/tasksolving.py b/agentverse/tasksolving.py index 1bfb2c452..c004258d1 100644 --- a/agentverse/tasksolving.py +++ b/agentverse/tasksolving.py @@ -37,15 +37,6 @@ def from_task(cls, task: str, tasks_dir: str): # Build agents for all pipeline (task) agents = {} for i, agent_config in enumerate(task_config["agents"]): - # agent_type = AGENT_TYPES(i) - # if i == 2 and agent_config.get("agent_type", "") == "critic": - # agent = load_agent(agent_config) - # agents[agent_type] = [ - # copy.deepcopy(agent) - # for _ in range(task_config.get("cnt_agents", 1) - 1) - # ] - # else: - # agents[agent_type] = load_agent(agent_config) if agent_config.get("agent_type","") =="critic": agent=load_agent(agent_config) agents[AGENT_TYPES.CRITIC] =[ From 9ca447659d5b92f8c32da9d340c0203e9b1cbaaf Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Mon, 16 Oct 2023 16:10:54 +0800 Subject: [PATCH 4/4] format: change get_AGENT_TYPE as static method. --- agentverse/tasksolving.py | 18 +++++++++--------- agentverse/utils.py | 23 +++++++++++++++-------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/agentverse/tasksolving.py b/agentverse/tasksolving.py index c004258d1..d9bc9628c 100644 --- a/agentverse/tasksolving.py +++ b/agentverse/tasksolving.py @@ -6,7 +6,7 @@ from agentverse.environments.tasksolving_env.basic import BasicEnvironment from agentverse.initialization import load_agent, load_environment, prepare_task_config -from agentverse.utils import AGENT_TYPES,get_AGENT_TYPE +from agentverse.utils import AGENT_TYPES openai_logger = logging.getLogger("openai") @@ -33,19 +33,19 @@ def from_task(cls, task: str, tasks_dir: str): # Build the environment env_config = task_config["environment"] - + # Build agents for all pipeline (task) agents = {} for i, agent_config in enumerate(task_config["agents"]): - if agent_config.get("agent_type","") =="critic": - agent=load_agent(agent_config) - agents[AGENT_TYPES.CRITIC] =[ + if agent_config.get("agent_type", "") == "critic": + agent = load_agent(agent_config) + agents[AGENT_TYPES.CRITIC] = [ copy.deepcopy(agent) - for _ in range(task_config.get("cnt_agents",1)-1) - ] + for _ in range(task_config.get("cnt_agents", 1) - 1) + ] else: - agent_type=get_AGENT_TYPE(agent_config.get("agent_type","")) - agents[agent_type]=load_agent(agent_config) + agent_type = AGENT_TYPES.from_string(agent_config.get("agent_type", "")) + agents[agent_type] = load_agent(agent_config) env_config["agents"] = agents diff --git a/agentverse/utils.py b/agentverse/utils.py index 51375dde9..1eeb198fb 100644 --- a/agentverse/utils.py +++ b/agentverse/utils.py @@ -34,14 +34,21 @@ class AGENT_TYPES(Enum): EXECUTION = 3 EVALUATION = 4 MANAGER = 5 -def get_AGENT_TYPE(agent_type:str): - str2EnumDict={"role_assigner":AGENT_TYPES(0) - ,"solver":AGENT_TYPES(1) - ,"critic":AGENT_TYPES(2) - ,"executor":AGENT_TYPES(3) - ,"evaluator":AGENT_TYPES(4) - ,"manager":AGENT_TYPES(5)} - return str2EnumDict[agent_type] + + @staticmethod + def from_string(agent_type: str): + str_to_enum_dict = { + "role_assigner": AGENT_TYPES.ROLE_ASSIGNMENT, + "solver": AGENT_TYPES.SOLVER, + "critic": AGENT_TYPES.CRITIC, + "executor": AGENT_TYPES.EXECUTION, + "evaluator": AGENT_TYPES.EVALUATION, + "manager": AGENT_TYPES.MANAGER, + } + assert ( + agent_type in str_to_enum_dict + ), f"Unknown agent type: {agent_type}. Check your config file." + return str_to_enum_dict.get(agent_type.lower()) class Singleton(abc.ABCMeta, type):