fix(agents): don't auto-enable reasoning when thinking is active (#24290)#24335
Merged
ngutman merged 2 commits intoopenclaw:mainfrom Feb 23, 2026
Merged
Conversation
ngutman
added a commit
to Kay-051/openclaw
that referenced
this pull request
Feb 23, 2026
a09356b to
31bc895
Compare
ngutman
added a commit
to Kay-051/openclaw
that referenced
this pull request
Feb 23, 2026
ngutman
added a commit
to Kay-051/openclaw
that referenced
this pull request
Feb 23, 2026
31bc895 to
dbd6b93
Compare
ngutman
added a commit
to Kay-051/openclaw
that referenced
this pull request
Feb 23, 2026
dbd6b93 to
f027732
Compare
…nclaw#24290) When thinking is set (e.g. thinking=low), the model produces internal thinking blocks. The reasoning auto-default (based on model capability) was formatting these blocks as "Reasoning:" text and delivering them to WhatsApp/Telegram, leaking internal content to users. Skip auto-enabling reasoning when thinkLevel is already set — the two features serve the same purpose and enabling both causes the model's internal thinking to be exposed as visible chat messages. Users who explicitly set /reasoning on still get reasoning output. Closes openclaw#24290 Co-authored-by: Cursor <[email protected]>
f027732 to
8228ace
Compare
Contributor
jaydiamond42
pushed a commit
to jaydiamond42/bloomtbot
that referenced
this pull request
Feb 23, 2026
carlosrivera
pushed a commit
to myascendai/meshiclaw
that referenced
this pull request
Feb 23, 2026
gabrielkoo
pushed a commit
to gabrielkoo/openclaw
that referenced
this pull request
Feb 23, 2026
mreedr
pushed a commit
to mreedr/openclaw-custom
that referenced
this pull request
Feb 24, 2026
Closed
6 tasks
Contributor
|
@Kay-051 Does this also support Discord? I'm having this issue with |
margulans
pushed a commit
to margulans/Neiron-AI-assistant
that referenced
this pull request
Feb 25, 2026
brianleach
pushed a commit
to brianleach/openclaw
that referenced
this pull request
Feb 26, 2026
Yuyang-0
pushed a commit
to Yuyang-0/openclaw
that referenced
this pull request
Feb 26, 2026
2 tasks
mylukin
pushed a commit
to mylukin/openclaw
that referenced
this pull request
Feb 26, 2026
r4jiv007
pushed a commit
to r4jiv007/openclaw
that referenced
this pull request
Feb 28, 2026
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
cesararevalo
added a commit
to DiagnoseEarly/openclaw
that referenced
this pull request
Mar 26, 2026
* commit '3a3c2da9168f93397eeb3109d521819e10dc44fd': (4186 commits) [Feature]: Add Gemini (Google Search grounding) as web_search provider (openclaw#13075) test: optimize redundant suites for faster runtime test: reduce trigger test redundancy and speed up model coverage fix(agents): gate auto reasoning by effective thinking level (openclaw#24335) thanks @Kay-051 fix(agents): don't auto-enable reasoning when thinking is active (openclaw#24290) test: consolidate shard tests for faster trigger/directive suites test: merge allow-from trigger shard and dedupe inline cases test: merge thinking and queue directive shards test: merge fuzzy model directive shards test: merge elevated allowlist directive shard test: consolidate directive behavior suites test: merge elevated status directive shards test: collapse directive behavior shards test: merge model picker tests into native command suite fix(agents): normalize strict openai-compatible turn ordering fix(models): refresh Moonshot Kimi vision capabilities fix(agents): detect Kimi model-token-limit overflows fix(agents): map Moonshot developer role compatibility ci: install pyyaml in skills-python job fix(auto-reply): hide direct-chat metadata without sender-id sentinel (openclaw#24373) thanks @jd316 ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
thinking=lowis set, the model produces internal thinking blocks. The reasoning auto-default (based on model capability) was also enabling reasoning delivery, causing thinking blocks to be formatted as "Reasoning:" text and delivered to WhatsApp/Telegram.reasoningLevelwhenthinkLevelis already set (not "off"). The two features serve the same purpose; enabling both causes the model's internal thinking to be exposed as visible chat messages./reasoning onstill get reasoning output. Only the auto-default is suppressed when thinking is active.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
User-visible / Behavior Changes
With
thinking=low/medium/high, thinking blocks are no longer delivered as visible "Reasoning:" messages to WhatsApp/Telegram/other channels. Downgrade to 2026.2.21-2 is no longer needed as a workaround.Security Impact (required)
NoNoNoNoNoRepro + Verification
Environment
Steps
thinking=lowExpected
Actual (before fix)
Evidence
resolvedReasoningLevelstays "off" whenthinkLevelis set, preventing thinking block extraction and formatting.Human Verification (required)
thinking=low+ reasoning not explicitly set → reasoning stays off;thinking=off+ reasoning-capable model → reasoning auto-enables as before./reasoning onwiththinking=low→ reasoning still works (explicit overrides auto-default).Compatibility / Migration
YesNoNoFailure Recovery (if this breaks)
thinkingActiveguard inget-reply-directives.ts.src/auto-reply/reply/get-reply-directives.ts/reasoning on.Risks and Mitigations
/reasoning on. The auto-default was causing a bug, not a feature.🤖 AI-assisted (Claude). Lightly tested — verified logic flow and regression analysis.
Made with Cursor
Greptile Summary
Prevents auto-enabling reasoning when thinking is already active, fixing a bug where internal thinking blocks were being formatted and delivered as visible "Reasoning:" messages to WhatsApp/Telegram users.
The fix adds a simple guard
thinkingActivethat checks ifresolvedThinkLevelis set and not "off" before auto-enabling reasoning based on model capabilities. This prevents the conflict between two features that serve similar purposes - both expose model internal reasoning, but through different mechanisms./reasoning onstill works as expected (bypasses auto-default)Confidence Score: 5/5
Last reviewed commit: 0a5f3a1