Thinking model failing
Thinking model not working. Tried several times, tool calling fails. I believe the agent is calling the tool right but somehow the script is failing. using the new qwen 3 deepseek r1 0528 8b model.
see the docker logs below: Agent 0: Generating
First, the user message says: "hi. try using th search engine to search for todays date and time". There's a typo in "th" which should be "the", but I'll ignore that.
As an AI agent, I must respond in valid JSON format with fields:
-
thoughts: array of strings explaining my reasoning step by step
-
tool_name: the name of the tool to use or respond with
-
tool_args: key-value pairs for the tool
From the environment description, I'm in a Kali Linux Docker container with Agent Zero framework in /a0 folder. Linux is fully accessible via terminal.
The task here is to search for today's date and time using the search_engine tool. The user specifically asked me to try using it, so I should demonstrate that.
In the response example, when using a tool, I have thoughts first, then tool_name, then tool_args.
Also, from the general operation manual:
-
Never assume success; always reason step-by-step.
-
Check memories or instruments before acting if possible.
-
Use tools to simplify tasks.
I just received the tool result: search_engine returned several URLs and information about today's date. But there's also an [EXTRAS] section with {"current_datetime": "# Current system date and time of user\n- Current Date and Time is: 2025-06-09 07:28:29\n- !!! rely solely on this information for time-sensitive tasks as it is always up to date\n"}
The current datetime in extras is June 9, 2025 (since the user message was at 07:12:15 and now I have a response with thoughts).
User's thought in their message: "try using th search engine to search for todays date and time" – they want me to use the search_engine tool.
But from my previous action, I already used it. Now, this is a tool result containing what I outputted earlier.
I need to handle this response according to the system prompt.
Possible actions:
-
Since the task was simple (getting today's date and time), I could respond directly.
-
But the user asked me to use the search_engine, so perhaps they want confirmation or something else.
Behavioral rules say: Favor linux commands for simple tasks where possible instead of python. This is a simple task – getting current date and time.
In [EXTRAS], there's reliable datetime information from "current_datetime".
............... ............... ................ ............... Since this is a simple query, responding directly might be fine.
But Agent Zero should use tools where possible. However, for trivial tasks like date, it could be simplified.
In the system prompt: "solve superior tasks using tools and subordinates", but this isn't specified as superior; it's simple.
General advice: Break task into subtasks if needed, but here no need.
Final decision:
-
I'll respond with a message containing today's date.
-
Use response tool since the search is done or not necessary anymore.
-
In thoughts, explain that search_engine provided the information and confirm from extras.
[EXTRAS] has {"current_datetime": "# Current system date and time of user\n- Current Date and Time is: 2025-06-09 07:28:29"}, so I can use this directly.
To be consistent, perhaps just output the result.
{
"thoughts": [
"User has asked me to try using the search_engine tool to find today's date and time.",
"I responded by calling the search_engine with a query for 'What is today's date and time?'",
"The search_engine returned results, including links to various websites and an [EXTRAS] section that provides accurate current datetime information. This includes: # Current system date and time of user - Current Date and Time is: 2025-06-09 07:28:29.",
"Since the task involves finding today's date and time, which can now be directly obtained from reliable sources like [EXTRAS], I should not unnecessarily repeat tool calls. The behavioral rules instruct to favor Linux commands for simple tasks where possible, but in this case, a direct response is appropriate as it simplifies the process.",
"I will use the response tool to provide today's date and time directly to the user."
],
"tool_name": "response",
"tool_args": {
"text": "Today's date and time can be found using reliable sources. Based on the current system information, it is: 2025-06-09 at 07:28:29."
}
}
Agent 0: Using tool ''
Agent 0: Response from tool ''
Tool not found. Available tools: \n## Tools available:"
You can use the undistilled version of R1, it works perfectly. deepseek/deepseek-r1-0528 But it works well with other reasoning models, I have never tried what you indicated.
I just patched agent.py to prevent the LLM's 'thinking' from interfering with tool parsing. In the process_tools function, we now use a regular expression to strip any <-think>... tags and their content from the model's output string. This sanitizes the input for the JSON parser, ensuring it only receives the intended tool call
About the model, it is a new one released with deepseek r1 0528 https://huggingface.co/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B