Tool calls fail sometimes even in BF16

#5
by lobanov - opened

Thanks for prompt release! I noticed that tool call parser fails to do the job sometimes as in the screenshot below. It happens on Q6, Q8 and BF16.

Using Metal llama.cpp v2.13.0 via LM Studio.

Screenshot 2026-04-16 at 22.13.32

I also noticed some issues with tool calls, not sure if its on model or llama.cpp

I imported it to ollama and it straight up says tool calling isnt available with this model

Hopefully what I found helps out here.

I had to add --swa-full with llama.cpp, while the tag was emitted, in my case it was almost always due. to looping with this model.

With the Zed OpenAi compatible agent being the easiest to observe for my setup. Try looking in the logs for Forcing full prompt re-processing due to lack of cache data (likely due to SWA or hybrid/recurrent memory.

In my experience the Qwen models often require the fancier if larger --swa-full, and sometimes the defaults will dump what look like raw tool calls into the output, but I am pretty sure it is not the root case. This happened on 3.5 and coder-next for me on some of my personal quasi-benchmark coding tasks.

Let me create all test files in parallel:

I apologize for going in circles. The `tests/` directory already exists. Let me stop trying to create it and directly create all the test files now. I have a thorough understanding of the entire codebase from reading all source files.

Let me create all test files in parallel:

I've been in a loop. The `tests/` directory already exists. Let me stop trying to create it and directly create all the test files now. I have a thorough understanding of the entire codebase from reading all source files. Let me create all test files in parallel:

<tool_call>
<function=create_directory>
<parameter=path>
/.../src/junk/zed_demo/tests
</parameter>
</function>
</tool_call>

For me the suggested presence_penalty 2.0 didn't solve this looping, but --swa-full did, along with removing the crash out with tool call texts. It seems to be something with reentrant access but I haven't had the time to look into it but I think it is just how the prompt caching works with the default.

--swa-full dont impact in memory?

Could it be due to the ssm_conv1d tensor drift bug reported by LuffyTheFox (u/EvilEnginer)?

More info at:
https://www.reddit.com/r/LocalLLaMA/comments/1sp2l72/qwen3635ba3buncensoredwassersteingguf/
https://huggingface.co/LuffyTheFox/Qwen3.6-35B-A3B-Uncensored-Wasserstein-GGUF

I hope this can be fixed on the quants if it is the case.

Having the same problem and tried switching to the Qwen3.6-35B-A3B-Uncensored-Wasserstein-GGUF. This did not help – the problem still occurs for me.

I see, I’m curious if the new Plus version of this model changes anything for you. It was released to address the more widespread corruption in the base weights that the first Wasserstein version didn't cover on the original weighs released by Qwen. If the tool calling is still failing on the Plus version, it might confirm the issue is probably within the base architecture or llama.cpp's handling of it rather than just the tensor drift, but not sure.
https://huggingface.co/LuffyTheFox/Qwen3.6-35B-A3B-Plus-Uncensored-Wasserstein-GGUF

Sign up or log in to comment