TTS works perfectly for system messages (/tts status plays as voice), but agent responses always come through as text only, even with auto: always. The /tts status shows successful generation (188 chars, elevenlabs, ✅) but that's just the status message itself — my agent's actual conversational responses never trigger TTS. Is there a setting to enable TTS specifically for agent/conversational responses?
#Auto-TTS works for system messages but not agent responses (Telegram)
1 messages · Page 1 of 1 (latest)
u can find a solution bro?
If /tts status (or /tts audio ...) produces a Telegram voice message, then audio sending + your provider key are fine. When only command/system replies get voiced but normal “agent chat” replies never do, the usual culprit is:
1) Your agent replies are being sent as block replies (block streaming) → TTS ignores them by default
Auto‑TTS has a mode gate:
messages.tts.mode: "final"(default) → only the single final answer gets TTSmessages.tts.mode: "all"→ includes tool/block replies too
So if your Telegram output is configured to send agent responses as multiple “blocks” (instead of one final message), TTS won’t trigger unless you switch to "all".
Fix options:
Option A (simple): enable TTS for block replies
{
messages: {
tts: {
auto: "always",
mode: "all"
}
}
}
Docs: https://docs.openclaw.ai/tts (see mode: final | all)
Option B (preferred if you don’t want every block voiced): disable block streaming for Telegram
In Telegram channel config, block streaming is off by default, but if you turned it on, turn it back off:
{
channels: {
telegram: {
blockStreaming: false
}
}
}
Docs (Telegram streaming vs block streaming note): https://docs.openclaw.ai/channels/telegram
2) Quick checks if it still doesn’t work
- In the same Telegram chat, run
/tts statusand confirm it shows auto = always (notinboundortagged). - Tail logs while sending a normal message and look for “tts skipped …” reasons:
openclaw logs --follow - Also: what version are you on?