From 37fcd66cbc2418c227f299e70d16c77cc09c52b0 Mon Sep 17 00:00:00 2001 From: garylin2099 Date: Thu, 11 Jul 2024 15:28:02 +0800 Subject: [PATCH] fix critical bug for tool recommend --- metagpt/roles/di/role_zero.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/metagpt/roles/di/role_zero.py b/metagpt/roles/di/role_zero.py index 1c292fdde..234064088 100644 --- a/metagpt/roles/di/role_zero.py +++ b/metagpt/roles/di/role_zero.py @@ -48,7 +48,7 @@ class RoleZero(Role): # Tools tools: list[str] = [] # Use special symbol [""] to indicate use of all registered tools - tool_recommender: ToolRecommender = ToolRecommender() + tool_recommender: ToolRecommender = None tool_execution_map: dict[str, Callable] = {} special_tool_commands: list[str] = ["Plan.finish_current_task", "end"] # Equipped with three basic tools by default for optional use @@ -246,6 +246,7 @@ class RoleZero(Role): commands = CodeParser.parse_code(block=None, lang="json", text=self.command_rsp) commands = json.loads(repair_llm_raw_output(output=commands, req_keys=[None], repair_type=RepairType.JSON)) except json.JSONDecodeError: + logger.warning(f"Failed to parse JSON for: {self.command_rsp}. Trying to repair...") commands = await self.llm.aask(msg=JSON_REPAIR_PROMPT.format(json_data=self.command_rsp)) commands = json.loads(CodeParser.parse_code(block=None, lang="json", text=commands)) except Exception as e: