From 56fd571acc57562000c2dd184a7e4104ebc75753 Mon Sep 17 00:00:00 2001 From: Novice Date: Tue, 10 Feb 2026 20:07:08 +0800 Subject: [PATCH] fix(llm): improve handling of tool arguments in LLMNode to ensure default values are used --- api/core/workflow/nodes/llm/node.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/core/workflow/nodes/llm/node.py b/api/core/workflow/nodes/llm/node.py index c26d95e823..20f5c18b8d 100644 --- a/api/core/workflow/nodes/llm/node.py +++ b/api/core/workflow/nodes/llm/node.py @@ -2292,7 +2292,7 @@ class LLMNode(Node[LLMNodeData]): if output.log_type == AgentLog.LogType.TOOL_CALL and output.status == AgentLog.LogStatus.START: tool_name = payload.tool_name tool_call_id = payload.tool_call_id - tool_arguments = json.dumps(payload.tool_args) if payload.tool_args else "" + tool_arguments = json.dumps(payload.tool_args or {}) # Get icon from metadata (available at START) tool_icon = output.metadata.get(AgentLog.LogMetadata.ICON) if output.metadata else None @@ -2323,7 +2323,7 @@ class LLMNode(Node[LLMNodeData]): tool_call_id = payload.tool_call_id tool_files = payload.files if isinstance(payload.files, list) else [] tool_error = payload.tool_error - tool_arguments = json.dumps(payload.tool_args) if payload.tool_args else "" + tool_arguments = json.dumps(payload.tool_args or {}) if tool_call_id and tool_call_id not in trace_state.tool_call_index_map: trace_state.tool_call_index_map[tool_call_id] = len(trace_state.tool_call_index_map)