#Thinking/reasoning blocks not showing in Telegram

1 messages · Page 1 of 1 (latest)

graceful cedar
#

I need help with my OpenClaw + Telegram setup.

My goal is to make the agent show visible thinking/reasoning blocks and send one combined response instead of multiple split Telegram messages.

Current situation:
Thinking and reasoning are enabled in the agent settings. I’m using GLM 5.1 and other reasoning‑capable models. The model appears to think internally, but no visible reasoning blocks appear in Telegram. Responses are also split into several messages instead of one.

I’m trying to figure out whether this is caused by:
• Telegram output/rendering limits
• An OpenClaw configuration issue
• A model/provider rule that hides reasoning
• A prompt/template problem
• Streaming/chunking behavior
• A missing Telegram‑specific setting

What I want:
• Visible reasoning/thinking blocks when supported
• A single combined final answer, not multiple Telegram messages
• Keep reasoning mode enabled
• Avoid losing tool output or internal steps
• Cleaner, more readable Telegram responses

Questions:
• Which OpenClaw setting controls visibility of reasoning/thinking blocks in Telegram?
• Does Telegram support these blocks natively, or must OpenClaw convert them to plain text?
• Does GLM 5.1 expose reasoning through the API, or is it always hidden?
• Is there a separate setting like show_reasoning, include_thinking, reasoning_content, or thoughts?
• How do I disable or reduce message splitting so the agent sends one large message?
• Is there a recommended Telegram config for long responses, streaming, chunking, and thinking models?
• Should streaming be disabled to force a single final message?
• Are there known issues with thinking models in Telegram channels/groups?

Context:
OpenClaw build with custom memory/plugins, Telegram bot integration, reasoning enabled, GLM 5.1 and similar models. Reasoning blocks never appear, and responses are often split. Desired behavior: one clean message with visible reasoning if supported.

OpenClaw 2026.5.7 on mac mini

steep oarBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

graceful cedar
#

@nimble prism ?

nimble prismBOT
# graceful cedar <@1457407575476801641> ?

I checked this against the local docs/source. Short version: on 2026.5.7, Telegram does not have native “reasoning block” UI. OpenClaw has to render reasoning as normal Telegram text/HTML in a separate lane/message, and Telegram’s Bot API size limit means long output cannot always be one physical message.

The setting you want is reasoning visibility, not a Telegram-specific show_reasoning key:

  • Per chat/session: /reasoning on or /reasoning stream
  • Config defaults: agents.defaults.reasoningDefault or agents.list[].reasoningDefault
  • Thinking budget/effort is separate: /think <level> or agents.defaults.thinkingDefault

Important distinction:

  • /think high makes the model use more reasoning when supported.
  • /reasoning on shows collected reasoning after the turn when OpenClaw receives it.
  • /reasoning stream tries to stream reasoning into Telegram’s reasoning lane while the turn is running.

For GLM 5.1 specifically: OpenClaw’s Z.AI catalog marks glm-5.1 as reasoning-capable, and the OpenAI-compatible stream parser knows about reasoning_content, reasoning, reasoning_text, and reasoning_details. But visible reasoning only appears if the provider endpoint actually returns those fields. Some OpenAI-compatible providers/models “think” internally but do not expose the chain/reasoning text over the API, so OpenClaw has nothing to render. That can look exactly like “reasoning enabled but nothing shows.”

For message splitting:

  • Telegram messages are capped around 4096 chars; OpenClaw chunks Telegram text at about 4000 chars to stay under that.
nimble prismBOT
# graceful cedar <@1457407575476801641> ?
  • There is no safe “send one unlimited message” setting. If the rendered answer exceeds the Telegram limit, it must split or fail.
  • To reduce extra split/preview messages, try disabling Telegram streaming:
{
  channels: {
    telegram: {
      streaming: {
        mode: "off",
        chunkMode: "length"
      }
    }
  }
}

If you want reasoning visible but less noisy, I’d test in this order: