bots-garden/mini-mepublic Fork
⑂ feature/genkit-v1.13.1
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. 13af864Unverified · on feature/genkit-v1.13.1 · k33g · 16d ago
turn-reasoning-off.md · 54 lines · 2.4 KBmarkdown
Blame HistoryOpen raw

How to turn a model's reasoning off

A thinking model (Qwen3.5, Qwen3.x, gpt-oss…) reasons before it answers. On a simple question that costs seconds and tokens for nothing. This guide shows how to ask the server not to reason, for every turn. It assumes you already run mm with a YAML configuration file and a thinking model.

Steps

  1. Find your provider in the configuration file (provider:).

  2. Add the server's own switch under sampling.

    For dmr, llamacpp or llmman — all llama.cpp underneath:

    sampling:
      temperature: 0.0
      max_tokens: 4096
      chat_template_kwargs:
        enable_thinking: false
    

    For ollama:

    sampling:
      temperature: 0.0
      max_tokens: 4096
      reasoning_effort: none
    

    The keys you write are merged with the built-in ones (temperature, top_p, max_tokens): only the switch needs adding.

  3. Ask a question and compare. With reasoning on, the line mode prints a dim 💭 block before the 🤖 answer; with it off, the answer comes straight away:

    $ mm -p "What is 17*23? Answer with the number only." agent.yaml
    
    🤖 391⚙ 0 command(s)
    391
    

    Measured with Qwen3.5 4B on Docker Model Runner: under a second, where the same question took four seconds of reasoning.

Variants

  • Hide the reasoning but let the model think. showThinking: false removes the 💭 block, the window's ‣ thinking entry and the editor's thought chunks. The model still reasons — same time, same tokens.
  • The model ignores the switch. enable_thinking is a variable of the model's chat template: a template that does not read it (a model without a thinking mode, or with another variable name) is not affected. Check the model card for the variable its template reads.
  • Turn it off for one run. Keep two configuration files, or start the server itself without reasoning (for llama-server, see its --reasoning-budget option).
  • Compaction summaries. Nothing to do: mm already asks the server not to reason for the summary of /compact and of the automatic compression, whatever sampling says.

See also

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# How to turn a model's reasoning off

A thinking model (Qwen3.5, Qwen3.x, gpt-oss…) reasons before it answers. On a simple question that costs seconds and tokens for nothing. This guide shows how to ask the server not to reason, for every turn. It assumes you already run `mm` with a YAML configuration file and a thinking model.

## Steps

1. Find your provider in the configuration file (`provider:`).

2. Add the server's own switch under `sampling`.

   For `dmr`, `llamacpp` or `llmman` — all llama.cpp underneath:

   ```yaml
   sampling:
     temperature: 0.0
     max_tokens: 4096
     chat_template_kwargs:
       enable_thinking: false
   ```

   For `ollama`:

   ```yaml
   sampling:
     temperature: 0.0
     max_tokens: 4096
     reasoning_effort: none
   ```

   The keys you write are merged with the built-in ones (`temperature`, `top_p`, `max_tokens`): only the switch needs adding.

3. Ask a question and compare. With reasoning on, the line mode prints a dim `💭` block before the `🤖` answer; with it off, the answer comes straight away:

   ```
   $ mm -p "What is 17*23? Answer with the number only." agent.yaml

   🤖 391⚙ 0 command(s)
   391
   ```

   Measured with Qwen3.5 4B on Docker Model Runner: under a second, where the same question took four seconds of reasoning.

## Variants

- **Hide the reasoning but let the model think.** `showThinking: false` removes the `💭` block, the window's `‣ thinking` entry and the editor's thought chunks. The model still reasons — same time, same tokens.
- **The model ignores the switch.** `enable_thinking` is a variable of the model's chat template: a template that does not read it (a model without a thinking mode, or with another variable name) is not affected. Check the model card for the variable its template reads.
- **Turn it off for one run.** Keep two configuration files, or start the server itself without reasoning (for llama-server, see its `--reasoning-budget` option).
- **Compaction summaries.** Nothing to do: `mm` already asks the server not to reason for the summary of `/compact` and of the automatic compression, whatever `sampling` says.

## See also

- The `sampling` key and what it forwards: [configuration reference](../reference/configuration.md).
- Where reasoning comes from and why `mm` reads it itself: [Thinking models](../explanation/thinking-models.md).
- Why each server is told in its own words: [Providers](../explanation/providers.md).