From 863ec50968196f3823486720f8a83f6789089067 Mon Sep 17 00:00:00 2001 From: Rudra Dudhat Date: Sat, 13 Jun 2026 00:43:29 +0530 Subject: [PATCH] fix: route ollama models through ollama_chat so tool calling works The bare ollama/ prefix routes through LiteLLM's /api/generate endpoint, which has no function-calling support. With litellm.drop_params=True the agent's tools are dropped silently, so the model never sees them, replies with plain text, and the scan ends after one toolless turn. ollama_chat/ uses /api/chat, where tool-capable models can drive the agent loop. Fixes #526 --- strix/config/models.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/strix/config/models.py b/strix/config/models.py index f5826433..fd85caef 100644 --- a/strix/config/models.py +++ b/strix/config/models.py @@ -39,6 +39,14 @@ class StrixProvider(MultiProvider): prefix=prefix, stripped_model_name=stripped_model_name, ) + if prefix == "ollama" and stripped_model_name: + # Route Ollama through LiteLLM's chat endpoint. The bare ``ollama/`` + # provider hits ``/api/generate``, which has no function-calling + # support, so with ``litellm.drop_params=True`` Strix's tools are + # dropped silently and the agent stops after one toolless turn. + # ``ollama_chat/`` uses ``/api/chat``, where tool-capable models can + # actually drive the agent loop. + return self._get_fallback_provider("litellm"), f"ollama_chat/{stripped_model_name}" return self._get_fallback_provider("litellm"), original_model_name