FAQ

Local model will not call tools

The model responds normally but never calls a tool, and often returns empty content with finish_reason: "stop".

This is almost always the streaming constraint. AXL's ReAct loop only ever calls chat_stream - there is no non-streaming path through the loop - so a local inference server must emit tool calls inside the SSE stream, not only in unary responses.

Known specifics:

  • Ollama's OpenAI-compatible endpoint does not qualify. It emits tool calls correctly on its native /api/chat but drops them when streaming through /v1/. The usual workaround is stream: false, which AXL cannot use, and Ollama's native protocol is not one AXL speaks.
  • llama.cpp's llama-server and LM Studio both work. Use one of those.

If tool calls work outside AXL but not inside it, test your server with a streaming request before looking anywhere else.

Next

On this page