openclaw - 💡(How to fix) Fix Suppress intermediate text output before tool calls in group channels [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#50989Fetched 2026-04-08 01:05:50
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Participants
Timeline (top)
cross-referenced ×2commented ×1

Code Example

{
  agents: {
    defaults: {
      suppressIntermediateText: true  // or per-channel
    }
  }
}

---

{
  channels: {
    slack: {
      channels: {
        "C123": {
          suppressIntermediateText: true  // group channels
        }
      }
    }
  }
}
RAW_BUFFERClick to expand / collapse

Problem

In multi-agent group channels, LLMs frequently emit "thinking out loud" text before tool calls — messages like "Let me check...", "Looking into this...", "I should set up...". This text is the model's deliberate output (not a streaming artifact), so blockStreamingDefault cannot suppress it.

Each intermediate text block gets posted as a separate channel message, creating noise and burning tokens. In a 5-bot setup, a single question can generate 10+ process-narration messages before any actual result appears.

What we've tried

  1. blockStreamingDefault: "on" — only buffers streamed chunks, not complete text outputs preceding tool calls ❌
  2. thinkingDefault: "low" — provides private reasoning space, but the model still voluntarily narrates ❌
  3. AGENTS.md instructions ("no intermediate text") — competes with model training to be helpful/explanatory, doesn't stick reliably ❌

Proposed solution

Add a config option to suppress text that precedes tool calls:

{
  agents: {
    defaults: {
      suppressIntermediateText: true  // or per-channel
    }
  }
}

Behavior

When suppressIntermediateText: true:

  • If the model's response contains text followed by tool calls, the pre-tool text is dropped (not sent to the channel)
  • Only the final text after all tool calls complete is delivered as the visible response
  • If the model's response is text-only (no tool calls), it's delivered normally

This matches how humans work: form the thought → do the work → deliver the result. The intermediate narration is process, not product.

Alternative: per-channel config

{
  channels: {
    slack: {
      channels: {
        "C123": {
          suppressIntermediateText: true  // group channels
        }
      }
    }
  }
}

Environment

  • Clawdbot version: 2026.1.24-3+
  • Channel: Slack (multi-agent group channels)
  • Models: Claude (Anthropic), Gemini fallback

extent analysis

Fix Plan

To address the issue of LLMs emitting unnecessary "thinking out loud" text before tool calls, we will implement a new configuration option suppressIntermediateText.

Here are the steps:

  • Add a new configuration option suppressIntermediateText to the agents defaults or per-channel configuration.
  • Update the message processing logic to check for this option and suppress intermediate text when enabled.

Example code snippet:

// Check if suppressIntermediateText is enabled for the current channel
if (config.agents.defaults.suppressIntermediateText || config.channels[channel].suppressIntermediateText) {
  // Process the model response to extract tool calls and final text
  const toolCalls = extractToolCalls(response);
  const finalText = extractFinalText(response, toolCalls);
  
  // Suppress intermediate text if tool calls are present
  if (toolCalls.length > 0) {
    response = finalText;
  }
}

// Send the processed response to the channel
sendResponseToChannel(response);

Verification

To verify that the fix worked, test the following scenarios:

  • Send a question to a multi-agent group channel and verify that no intermediate text is posted before the final result.
  • Test with different models (e.g., Claude and Gemini) to ensure the fix works across models.
  • Verify that text-only responses (without tool calls) are delivered normally.

Extra Tips

  • Make sure to update the documentation to reflect the new configuration option.
  • Consider adding logging to track when intermediate text is suppressed to monitor the effectiveness of the fix.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING