From 780f9691216b10f2f7f3a45aaa58de7a4d6c11e0 Mon Sep 17 00:00:00 2001 From: Yunlu Wen Date: Fri, 21 Nov 2025 17:35:38 +0800 Subject: [PATCH] fix: fixed workflow as tool files field return empty problem (#28506) Co-authored-by: kurokobo original fix https://github.com/langgenius/dify/pull/27925 --- api/core/workflow/nodes/tool/tool_node.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/api/core/workflow/nodes/tool/tool_node.py b/api/core/workflow/nodes/tool/tool_node.py index 53632f43c6..c47ed38384 100644 --- a/api/core/workflow/nodes/tool/tool_node.py +++ b/api/core/workflow/nodes/tool/tool_node.py @@ -318,7 +318,13 @@ class ToolNode(BaseNode): json.append(message.message.json_object) elif message.type == ToolInvokeMessage.MessageType.LINK: assert isinstance(message.message, ToolInvokeMessage.TextMessage) - stream_text = f"Link: {message.message.text}\n" + # Check if this LINK message is a file link + file_obj = (message.meta or {}).get("file") + if isinstance(file_obj, File): + files.append(file_obj) + stream_text = f"File: {message.message.text}\n" + else: + stream_text = f"Link: {message.message.text}\n" text += stream_text yield RunStreamChunkEvent(chunk_content=stream_text, from_variable_selector=[node_id, "text"]) elif message.type == ToolInvokeMessage.MessageType.VARIABLE: