From efb5fed46281bdd4da613ba511881e893ff593be Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Thu, 14 Dec 2023 02:37:20 +0100 Subject: feat(agent/logging): Log warning when action raises error - Add logging to capture errors raised during execution of actions in the Agent - Move `fmt_kwargs` function from `agent_protocol_server.py` to `logs/utils.py` --- autogpts/autogpt/autogpt/agents/agent.py | 4 ++++ autogpts/autogpt/autogpt/app/agent_protocol_server.py | 5 +---- autogpts/autogpt/autogpt/logs/utils.py | 4 ++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/autogpts/autogpt/autogpt/agents/agent.py b/autogpts/autogpt/autogpt/agents/agent.py index 88e6a46ed..bcb4d1a79 100644 --- a/autogpts/autogpt/autogpt/agents/agent.py +++ b/autogpts/autogpt/autogpt/agents/agent.py @@ -26,6 +26,7 @@ from autogpt.logs.log_cycle import ( USER_INPUT_FILE_NAME, LogCycleHandler, ) +from autogpt.logs.utils import fmt_kwargs from autogpt.models.action_history import ( Action, ActionErrorResult, @@ -254,6 +255,9 @@ class Agent( raise except AgentException as e: result = ActionErrorResult.from_exception(e) + logger.warning( + f"{command_name}({fmt_kwargs(command_args)}) raised an error: {e}" + ) result_tlength = self.llm_provider.count_tokens(str(result), self.llm.name) if result_tlength > self.send_token_limit // 3: diff --git a/autogpts/autogpt/autogpt/app/agent_protocol_server.py b/autogpts/autogpt/autogpt/app/agent_protocol_server.py index 1ee6f1efa..29ab004a2 100644 --- a/autogpts/autogpt/autogpt/app/agent_protocol_server.py +++ b/autogpts/autogpt/autogpt/app/agent_protocol_server.py @@ -39,6 +39,7 @@ from autogpt.file_workspace import ( FileWorkspaceBackendName, get_workspace, ) +from autogpt.logs.utils import fmt_kwargs from autogpt.models.action_history import ActionErrorResult, ActionSuccessResult logger = logging.getLogger(__name__) @@ -428,7 +429,3 @@ class AgentProtocolServer: def task_agent_id(task_id: str | int) -> str: return f"AutoGPT-{task_id}" - - -def fmt_kwargs(kwargs: dict) -> str: - return ", ".join(f"{n}={repr(v)}" for n, v in kwargs.items()) diff --git a/autogpts/autogpt/autogpt/logs/utils.py b/autogpts/autogpt/autogpt/logs/utils.py index 0b92e2967..d9f39af30 100644 --- a/autogpts/autogpt/autogpt/logs/utils.py +++ b/autogpts/autogpt/autogpt/logs/utils.py @@ -3,3 +3,7 @@ import re def remove_color_codes(s: str) -> str: return re.sub(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])", "", s) + + +def fmt_kwargs(kwargs: dict) -> str: + return ", ".join(f"{n}={repr(v)}" for n, v in kwargs.items()) -- cgit v1.2.3