From 7741cffa03fc1ff19880d74896a3bdf43a2691b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E4=BF=8A=E7=94=B7?= Date: Tue, 13 Jan 2026 11:36:09 +0800 Subject: [PATCH] feat(workflow node): built-in tools output modifications to adapt to workflow nodes --- .../core/tools/builtin/baidu_search_tool.py | 2 +- api/app/core/tools/builtin/datetime_tool.py | 27 ++++++++++++------- api/app/core/tools/builtin/json_tool.py | 10 ++++--- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/api/app/core/tools/builtin/baidu_search_tool.py b/api/app/core/tools/builtin/baidu_search_tool.py index e1f80f34..02431aed 100644 --- a/api/app/core/tools/builtin/baidu_search_tool.py +++ b/api/app/core/tools/builtin/baidu_search_tool.py @@ -110,7 +110,7 @@ class BaiduSearchTool(BuiltinTool): execution_time = time.time() - start_time return ToolResult.success_result( - data=result, + data=result["results"], execution_time=execution_time ) diff --git a/api/app/core/tools/builtin/datetime_tool.py b/api/app/core/tools/builtin/datetime_tool.py index 7b6fa8ef..00004dfe 100644 --- a/api/app/core/tools/builtin/datetime_tool.py +++ b/api/app/core/tools/builtin/datetime_tool.py @@ -95,7 +95,7 @@ class DateTimeTool(BuiltinTool): execution_time = time.time() - start_time return ToolResult.success_result( - data=result, + data=result["result_data"], execution_time=execution_time ) @@ -123,12 +123,14 @@ class DateTimeTool(BuiltinTool): utc_now = datetime.now(timezone.utc) return { - "datetime": now.strftime(output_format), - "timestamp": int(now.timestamp()), "timezone": timezone_str, "iso_format": now.isoformat(), - "timestamp_ms": int(now.timestamp() * 1000), - "utc_datetime": utc_now.strftime(output_format) + "result_data": { + "datetime": now.strftime(output_format), + "timestamp": int(now.timestamp()), + "timestamp_ms": int(now.timestamp() * 1000), + "utc_datetime": utc_now.strftime(output_format), + } } @staticmethod @@ -148,7 +150,8 @@ class DateTimeTool(BuiltinTool): "original": input_value, "formatted": dt.strftime(output_format), "timestamp": int(dt.timestamp()), - "iso_format": dt.isoformat() + "iso_format": dt.isoformat(), + "result_data": dt.strftime(output_format) } @staticmethod @@ -189,7 +192,8 @@ class DateTimeTool(BuiltinTool): "original_timezone": from_timezone, "converted": converted_dt.strftime(output_format), "converted_timezone": to_timezone, - "timestamp": int(converted_dt.timestamp()) + "timestamp": int(converted_dt.timestamp()), + "result_data": converted_dt.strftime(output_format) } @staticmethod @@ -219,7 +223,8 @@ class DateTimeTool(BuiltinTool): "timestamp": timestamp, "datetime": dt.strftime(output_format), "timezone": timezone_str, - "iso_format": dt.isoformat() + "iso_format": dt.isoformat(), + "result_data": dt.strftime(output_format) } @staticmethod @@ -249,7 +254,8 @@ class DateTimeTool(BuiltinTool): "datetime": input_value, "timezone": timezone_str, "timestamp": int(dt.timestamp()), - "iso_format": dt.isoformat() + "iso_format": dt.isoformat(), + "result_data": int(dt.timestamp()) } def _calculate_datetime(self, kwargs) -> dict: @@ -287,7 +293,8 @@ class DateTimeTool(BuiltinTool): "calculation": calculation, "result": calculated_dt.strftime(output_format), "timezone": timezone_str, - "timestamp": int(calculated_dt.timestamp()) + "timestamp": int(calculated_dt.timestamp()), + "result_data": calculated_dt.strftime(output_format) } @staticmethod diff --git a/api/app/core/tools/builtin/json_tool.py b/api/app/core/tools/builtin/json_tool.py index f22e9370..57d3130d 100644 --- a/api/app/core/tools/builtin/json_tool.py +++ b/api/app/core/tools/builtin/json_tool.py @@ -69,7 +69,7 @@ class JsonTool(BuiltinTool): ToolParameter( name="json_path", type=ParameterType.STRING, - description="JSON路径表达式(用于extract、insert、replace、delete、parse操作,如:$.user.name或users[0].name)", + description="JSON路径表达式(用于insert、replace、delete、parse操作,如:$.user.name或users[0].name)", required=False ), ToolParameter( @@ -136,7 +136,7 @@ class JsonTool(BuiltinTool): execution_time = time.time() - start_time return ToolResult.success_result( - data=result, + data=result["result_data"], execution_time=execution_time ) @@ -671,7 +671,8 @@ class JsonTool(BuiltinTool): "success": True, "value": current, "value_type": type(current).__name__, - "value_json": json.dumps(current, indent=2, ensure_ascii=False) if isinstance(current, (dict, list)) else str(current) + "value_json": json.dumps(current, indent=2, ensure_ascii=False) if isinstance(current, (dict, list)) else str(current), + "result_data": json.dumps(current, indent=2, ensure_ascii=False) if isinstance(current, (dict, list)) else str(current) } except (KeyError, IndexError, TypeError) as e: @@ -680,7 +681,8 @@ class JsonTool(BuiltinTool): "json_path": json_path, "success": False, "error": str(e), - "value": None + "value": None, + "result_data": None } def _analyze_json_structure(self, data: Any, depth: int = 0) -> Dict[str, Any]: