llama.cpp doesn't detect the model as capable of reasoning

#2
by Gaboo - opened

Latest llama.cpp on Win 11 with the powershell command:

llama serve `
    -hf "neko-legends/Qwen3.6-27B-NVFP4-MTP-GGUF:NVFP4_UNSLOTH" `
    --port 1234 `
    --jinja `
    --reasoning on `
    --reasoning-preserve

The model loads but does not reason and all responses are given instantly. I tried the chat template as well which also did not work either --chat-template-kwargs '{"enable_thinking":true,"preserve_thinking":true}'. The llama.cpp web interface also does not label it as capable of reasoning. Oddly, llama.cpp recognizes that this model is capable of preserving reasoning, but not reasoning.

image

Thanks for reporting this. What client or harness are you using to send requests after starting llama.cpp: the built-in web UI, Open WebUI, SillyTavern, Continue, or something else?

I tested the exact NVFP4_UNSLOTH GGUF on Windows 11 using llama.cpp b10069 and called /v1/chat/completions directly. With --jinja --reasoning on --reasoning-preserve, the response contained a full choices[0].message.reasoning_content field followed by the normal final answer.

Test prompt: “A farmer has 17 sheep. All but 9 run away. Think carefully and explain how many remain.”
The model generated roughly 460 reasoning tokens before answering. As a control, I sent the same request with chat_template_kwargs.enable_thinking=false; it returned an immediate 47-token answer with reasoning_content: null, which matches the behavior you described.

This suggests the GGUF and embedded template are working, but the client/harness may not detect reasoning support or may be overriding the server with enable_thinking:false. Also, llama.cpp’s /v1/models currently lists this as completion only, so that capability list is not a reliable reasoning indicator.

Could you check your browser’s Network tab or share the JSON request body being sent to /v1/chat/completions? In particular, look for chat_template_kwargs.enable_thinking.

I’m using llama.cpp b10069 with CUDA 13.3. Previously I was testing through the built-in web UI rather than calling the API directly.

I tested /v1/chat/completions and reasoning works correctly there. With chat_template_kwargs.enable_thinking=true the response included a populated reasoning_content field, and with it set to false, reasoning_content was null.

So this appears to be an issue with the built-in web harness. Specifically, it seems that when the web harness fails to detect reasoning capability in the model, it forcefully disables reasoning and ignores any presets that enabled it.

image

As shown in the image above it forcefully sets enable_thinking to false, presumably because it could not detect the models capabilities.

Sign up or log in to comment