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 70187062fcc73e792253df21fb7f6530d549a5f5..7253d19b53a4d17fdfefb4a54f331e14562b2b26 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)