fix(tts): update tool description to prevent duplicate audio delivery#18046
Merged
sebslight merged 2 commits intoopenclaw:mainfrom Feb 16, 2026
Merged
fix(tts): update tool description to prevent duplicate audio delivery#18046sebslight merged 2 commits intoopenclaw:mainfrom
sebslight merged 2 commits intoopenclaw:mainfrom
Conversation
The old description "Copy the MEDIA line exactly" caused models to re-output the MEDIA path in their follow-up message, resulting in the audio being delivered twice (once from tool result, once from follow-up). Changed instruction to tell models to reply NO_REPLY after successful TTS calls, since the audio is already delivered from the tool result. Fixes openclaw#17991
ec1f198 to
70c096a
Compare
Member
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
…openclaw#18046) Merged via /review-pr -> /prepare-pr -> /merge-pr. Prepared head SHA: 70c096a Co-authored-by: zerone0x <39543393+zerone0x@users.noreply.github.com> Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com> Reviewed-by: @sebslight
lovewanwan
pushed a commit
to lovewanwan/openclaw
that referenced
this pull request
Apr 28, 2026
…openclaw#18046) Merged via /review-pr -> /prepare-pr -> /merge-pr. Prepared head SHA: 70c096a Co-authored-by: zerone0x <39543393+zerone0x@users.noreply.github.com> Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com> Reviewed-by: @sebslight
ogt-redknie
pushed a commit
to ogt-redknie/OPENX
that referenced
this pull request
May 2, 2026
…openclaw#18046) Merged via /review-pr -> /prepare-pr -> /merge-pr. Prepared head SHA: 70c096a Co-authored-by: zerone0x <39543393+zerone0x@users.noreply.github.com> Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com> Reviewed-by: @sebslight
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
Updated TTS tool description to prevent models from re-echoing MEDIA paths, which caused duplicate audio delivery.
Problem
The old description "Copy the MEDIA line exactly" caused models to re-output the MEDIA path in their follow-up message. Since the delivery pipeline already dispatches media from tool results independently, this resulted in:
Fix
Changed instruction to tell models to reply
NO_REPLYafter successful TTS calls, since the audio is automatically delivered from the tool result.Before:
Copy the MEDIA line exactly.After:
reply with NO_REPLY after a successful call to avoid duplicate messages.Fixes #17991
Greptile Summary
Updated the TTS tool description from instructing models to "Copy the MEDIA line exactly" to "reply with NO_REPLY after a successful call to avoid duplicate messages." This prevents models from re-echoing the
MEDIA:path in follow-up responses, which was causing audio to be delivered twice - once from the tool result and again from the assistant's message. The system already extracts and delivers media from tool results automatically viasplitMediaFromOutputinsrc/media/parse.ts, so the follow-up message should be silent (NO_REPLY) to prevent duplication.Confidence Score: 5/5
NO_REPLYis consistent with existing patterns in the codebase (seen in message tool, memory flush, and other tools). The media delivery pipeline already handles extracting and dispatchingMEDIA:paths from tool results, so models should remain silent after TTS calls.Last reviewed commit: ec1f198