Repository navigation
Description
Bug: Gemma 4 via Ollama connects successfully but produces no visible or spoken response
Application: Ari VoiceCommand v1.4.0
Platform: Windows 11
LLM provider: Ollama
Model: gemma4:12b
Endpoint: http://localhost:11434/v1
Problem
When using Gemma 4 12B through Ollama's OpenAI-compatible API, Ari successfully connects to the model but does not produce a visible or spoken response.
The issue affects both typed chat and voice commands.
- Microphone capture works.
- Speech recognition successfully transcribes speech.
- Ollama's connection test succeeds.
- Ari's logs show successful HTTP 200 responses from
/v1/chat/completions. - Ari logs a time to first token, confirming generation has begun.
- No response appears in the chat interface or reaches text-to-speech.
Disabling Ari's streaming mode and automatic LLM routing did not resolve the problem.
Investigation
A direct request to Ollama's OpenAI-compatible API returned both answer content and reasoning:
role : assistant
content : Hello.
reasoning : [model reasoning]
Adding the following parameter to the request:
"reasoning_effort": "none"produced a normal response without the separate reasoning field:
role : assistant
content : Hello!
This suggested that Ari might have a compatibility issue with Gemma 4's reasoning output.
Working workaround
We created a small local HTTP compatibility proxy that sits between Ari and Ollama.
The proxy:
- Listens locally on
127.0.0.1:11435. - Forwards requests to Ollama on
127.0.0.1:11434. - Adds
"reasoning_effort": "none"to/v1/chat/completionsrequests. - Forwards model-listing requests unchanged.
We then changed only Ari's Ollama endpoint to:
http://127.0.0.1:11435/v1
Result: Ari immediately began responding successfully, including voice interaction.
This workaround does not require changes to Ollama's global configuration, the installed model, or other applications using Ollama.
Possible fix
Ari's source includes _reasoning_extra_body() in VoiceCommand/agent/llm_provider.py, which already supplies provider-specific reasoning parameters.
One possible approach is to add an Ollama-specific parameter:
if provider == "ollama":
return {"reasoning_effort": "none"}Ideally, this could be configurable so users can enable reasoning when their models and response handlers support it.
Additional notes
The observed behavior strongly suggests a compatibility problem involving reasoning output, but the exact failure inside Ari's response-processing code has not been independently isolated.
The proxy workaround was tested successfully with gemma4:12b on Windows 11.
I hope this helps other users experiencing silent responses with Gemma 4 and Ollama.
Activity
DO0OG commentedon Nov 12, 2026
Thanks for the detailed report and for tracking down the workaround. It pointed straight at the cause.
What was happening
Gemma 4 runs with thinking enabled by default in Ollama. Ari asks for short replies (a few hundred tokens), and the model spent that whole budget on reasoning, so
contentcame back empty. Ari then ended the turn without showing or speaking anything.What changed (#443)
reasoning_effort: "none"on requests to the built-in Ollama provider, the same thing your proxy does.noneneeds Ollama 0.12.4 or later.Not included
The fix is on
mainand will ship in the next release. Until then your proxy is a fine workaround. I couldn't test against a realgemma4:12bhere, so if you can try the next build and confirm, that would help.