LLM doesn't actually use the intermediate output generated by a tool #3499

Closed
opened 2025-11-11 15:32:55 -06:00 by GiteaMirror · 0 comments
Owner

Originally created by @rklasen on GitHub (Jan 30, 2025).

Bug Report

I'm trying to use the weather tool: https://openwebui.com/t/spyci/keyless_weather

The weather tool seems to produce output:

Image

However the LLM either can't see the output or chooses to ignore it:

(Translation: I don't have access to current weather data.

Image

I can also see on the console that the function was executed:

open-webui-1  | INFO  [open_webui.utils.middleware] tools={'get_current_weather': {'toolkit_id': 'wetter', 'callable': <function Tools.get_current_weather at 0x77c066194680>, 'spec': {'name': 'get_current_weather', 'description': 'Get the current weather for a given city.', 'parameters': {'properties': {'city': {'description': 'The name of the city to get the weather for.', 'type': 'string'}}, 'required': ['city'], 'type': 'object'}}, 'pydantic_model': <class 'open_webui.utils.tools.get_current_weather'>, 'file_handler': False, 'citation': True}, 'get_future_weather_week': {'toolkit_id': 'wetter', 'callable': <function Tools.get_future_weather_week at 0x77c066123a60>, 'spec': {'name': 'get_future_weather_week', 'description': 'Get the weather for the next week for a given city.', 'parameters': {'properties': {'city': {'description': 'The name of the city to get the weather for.', 'type': 'string'}}, 'required': ['city'], 'type': 'object'}}, 'pydantic_model': <class 'open_webui.utils.tools.get_future_weather_week'>, 'file_handler': False, 'citation': True}}
open-webui-1  | INFO  [open_webui.utils.middleware] tools_function_calling_prompt='Available Tools: [{"name": "get_current_weather", "description": "Get the current weather for a given city.", "parameters": {"properties": {"city": {"description": "The name of the city to get the weather for.", "type": "string"}}, "required": ["city"], "type": "object"}}, {"name": "get_future_weather_week", "description": "Get the weather for the next week for a given city.", "parameters": {"properties": {"city": {"description": "The name of the city to get the weather for.", "type": "string"}}, "required": ["city"], "type": "object"}}]\nReturn an empty string if no tools match the query. If a function tool matches, construct and return a JSON object in the format {"name": "functionName", "parameters": {"requiredFunctionParamKey": "requiredFunctionParamValue"}} using the appropriate tool and its parameters. Only return the object and limit the response to the JSON object without additional text.'

Am I missing something?

Originally created by @rklasen on GitHub (Jan 30, 2025). # Bug Report I'm trying to use the weather tool: https://openwebui.com/t/spyci/keyless_weather The weather tool seems to produce output: ![Image](https://github.com/user-attachments/assets/9b835003-ed35-405e-992c-6d883d797fa0) However the LLM either can't see the output or chooses to ignore it: (Translation: I don't have access to current weather data. ![Image](https://github.com/user-attachments/assets/28f2cebd-925a-4d39-b030-de9a4b74df2f) I can also see on the console that the function was executed: ``` open-webui-1 | INFO [open_webui.utils.middleware] tools={'get_current_weather': {'toolkit_id': 'wetter', 'callable': <function Tools.get_current_weather at 0x77c066194680>, 'spec': {'name': 'get_current_weather', 'description': 'Get the current weather for a given city.', 'parameters': {'properties': {'city': {'description': 'The name of the city to get the weather for.', 'type': 'string'}}, 'required': ['city'], 'type': 'object'}}, 'pydantic_model': <class 'open_webui.utils.tools.get_current_weather'>, 'file_handler': False, 'citation': True}, 'get_future_weather_week': {'toolkit_id': 'wetter', 'callable': <function Tools.get_future_weather_week at 0x77c066123a60>, 'spec': {'name': 'get_future_weather_week', 'description': 'Get the weather for the next week for a given city.', 'parameters': {'properties': {'city': {'description': 'The name of the city to get the weather for.', 'type': 'string'}}, 'required': ['city'], 'type': 'object'}}, 'pydantic_model': <class 'open_webui.utils.tools.get_future_weather_week'>, 'file_handler': False, 'citation': True}} open-webui-1 | INFO [open_webui.utils.middleware] tools_function_calling_prompt='Available Tools: [{"name": "get_current_weather", "description": "Get the current weather for a given city.", "parameters": {"properties": {"city": {"description": "The name of the city to get the weather for.", "type": "string"}}, "required": ["city"], "type": "object"}}, {"name": "get_future_weather_week", "description": "Get the weather for the next week for a given city.", "parameters": {"properties": {"city": {"description": "The name of the city to get the weather for.", "type": "string"}}, "required": ["city"], "type": "object"}}]\nReturn an empty string if no tools match the query. If a function tool matches, construct and return a JSON object in the format {"name": "functionName", "parameters": {"requiredFunctionParamKey": "requiredFunctionParamValue"}} using the appropriate tool and its parameters. Only return the object and limit the response to the JSON object without additional text.' ``` Am I missing something?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#3499