From 24ea187a4e7ec62b07d4f2ccfc4f2c970e32540d Mon Sep 17 00:00:00 2001 From: Ming <tslmy@users.noreply.github.com> Date: Thu, 21 Mar 2024 14:16:36 -0700 Subject: [PATCH] [Agent using tools] Upon exception, say so, so that Agent can correct itself. (#12137) --- .../llama_index/core/agent/react/step.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/llama-index-core/llama_index/core/agent/react/step.py b/llama-index-core/llama_index/core/agent/react/step.py index 70187062f..7253d19b5 100644 --- a/llama-index-core/llama_index/core/agent/react/step.py +++ b/llama-index-core/llama_index/core/agent/react/step.py @@ -240,7 +240,15 @@ class ReActAgentWorker(BaseAgentWorker): EventPayload.TOOL: tool.metadata, }, ) as event: - tool_output = tool.call(**reasoning_step.action_input) + try: + tool_output = tool.call(**reasoning_step.action_input) + except Exception as e: + tool_output = ToolOutput( + content=f"Error: {e!s}", + tool_name=tool.metadata.name, + raw_input={"kwargs": reasoning_step.action_input}, + raw_output=e, + ) event.on_end(payload={EventPayload.FUNCTION_OUTPUT: str(tool_output)}) task.extra_state["sources"].append(tool_output) @@ -276,7 +284,15 @@ class ReActAgentWorker(BaseAgentWorker): EventPayload.TOOL: tool.metadata, }, ) as event: - tool_output = await tool.acall(**reasoning_step.action_input) + try: + tool_output = await tool.acall(**reasoning_step.action_input) + except Exception as e: + tool_output = ToolOutput( + content=f"Error: {e!s}", + tool_name=tool.metadata.name, + raw_input={"kwargs": reasoning_step.action_input}, + raw_output=e, + ) event.on_end(payload={EventPayload.FUNCTION_OUTPUT: str(tool_output)}) task.extra_state["sources"].append(tool_output) -- GitLab