Skip to content

show_thinking=false still wastes tokens on non-English reasoning_content #1842

@cmyyy

Description

@cmyyy

Current behavior

When show_thinking = false, the thinking chain is hidden from the
UI (history.rs:251 filters HistoryCell::Thinking), but:

  1. The API still generates reasoning_content (controlled separately by reasoning_effort)
  2. The ## Language rule in base.md forces reasoning_content to match the user's input language
  3. This means the model thinks in e.g. Chinese for content the user will never read

The token count difference between Chinese and English reasoning is not dramatic (DeepSeek's tokenizer handles Chinese well), but the combination of hidden thinking + language matching still wastes cost and hurts prompt-cache locality.

Expected behavior

When show_thinking = false, reasoning_content should be in English — not because English is "cheaper per token", but because it aligns with the surrounding English system prompt and eliminates unnecessary language switching in invisible content.

Proposed fix

PR: https://github.com/Hmbown/DeepSeek-TUI/pull/ #1843

Inject a language override into the system prompt when show_thinking is false, redirecting reasoning_content to English while the final reply stays in the user's language.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions