Setting Reasoning Strength in OpenWebUI with `chat_template_kwargs`

Published: (January 19, 2026 at 09:50 PM EST)
2 min read
Source: Dev.to

Source: Dev.to

Controlling Reasoning Strength in OpenWebUI

When you run a model through llama.cpp and access it from OpenWebUI via an OpenAI‑compatible API, you can control how “strongly” the model reasons by sending a custom parameter called chat_template_kwargs. This parameter can include a reasoning_effort setting such as low, medium, or high.

In many llama.cpp‑based deployments, the model’s reasoning behavior is influenced by values passed into the chat template. Rather than trying to force reasoning strength through prompts, passing reasoning_effort via chat_template_kwargs provides a more direct and predictable control mechanism. OpenWebUI supports sending such custom parameters in its model configuration, and this approach is also demonstrated in official integration guidance (see the OpenVINO documentation).

Configuration Steps

  1. Open the Admin PanelSettingsModels.

  2. Select the model you want to configure and open Advanced Params.

  3. Click + Add Custom Parameter.

  4. Set the fields as follows:

    • Parameter name: chat_template_kwargs

    • Value:

      {"reasoning_effort": "high"}

    (Replace "high" with "medium" or "low" depending on your needs.)

  5. Save the changes.

Once saved, OpenWebUI will include this parameter in requests sent to your llama.cpp OpenAI‑compatible endpoint, applying the configuration consistently without requiring users to adjust prompts manually.

Reasoning Levels

LevelDescription
lowFaster responses and less deep multi‑step reasoning.
mediumBalanced performance and reasoning depth.
highMore thorough reasoning, often slower and more verbose internally.

Practical tip: Start with medium and move to high only when you truly need deeper reasoning for complex tasks.

Back to Blog

Related posts

Read more »

A Guide to Fine-Tuning FunctionGemma

markdown Jan 16, 2026 In the world of Agentic AI, the ability to call tools translates natural language into executable software actions. Last month we released...

You Don't Need a CLAUDE.md

How to Manage CLAUDE.md / AGENTS.md Effectively This article does not cover the usual prompt‑engineering basics e.g., “avoid negative examples,” “set the LLM r...