hermes - 💡(How to fix) Fix Add explicit silent-skip delivery path for WhatsApp group messages [1 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
NousResearch/hermes-agent#18848Fetched 2026-05-03 04:53:54
View on GitHub
Comments
0
Participants
1
Timeline
4
Reactions
0
Author
Participants
Timeline (top)
labeled ×4

Root Cause

In group chats, unnecessary bot messages are disruptive. The bot should behave like a human assistant: if people are talking to each other, it should not interrupt, and it should not announce that it is choosing not to interrupt.

RAW_BUFFERClick to expand / collapse

Problem

In WhatsApp group chats, the bot sometimes needs to stay completely silent when a message is addressed to another human and not to the bot.

Currently, returning an empty final response can trigger retry/nudge behavior such as “Model returned empty after tool calls — nudging to continue”, or the agent may later send an explanatory follow-up like “I stayed silent because…”. This is noisy in group chats and violates the desired behavior: no WhatsApp output at all.

Desired behavior

Add an explicit “silent skip” path for gateway sessions, especially WhatsApp groups.

When the model/tooling determines that a message should be ignored:

  • Do not send a WhatsApp message.
  • Do not send an empty placeholder.
  • Do not trigger “empty response” retry/nudge behavior.
  • Do not send a follow-up explaining why the bot stayed silent.
  • Still mark the inbound message/session turn as handled so the gateway does not keep retrying.

Proposed approach

Introduce one of these explicit control paths:

  1. A dedicated internal tool/function, e.g. skip_response(reason: string), available to gateway sessions only, which returns a structured sentinel such as { "delivery": "skip" }.
  2. Or a reserved final response sentinel such as __HERMES_SKIP_DELIVERY__ that gateway delivery code consumes without sending.
  3. Or a first-class final_response_delivery = "skip" field in the agent result.

The important part is that this must be distinct from an empty string, because empty strings are currently treated as model failure / incomplete response.

Suggested WhatsApp group rule

If the inbound WhatsApp group message is clearly addressed to another participant and does not name/mention the bot, the agent should use the silent-skip path.

Examples that should skip delivery:

  • @someone How is your day?
  • This is so clear @someone
  • Any group message where the bot is not addressed and no user explicitly asks the bot to help/respond.

Examples that should respond:

  • Inno Dev Bot, can you help Adam?
  • bot, what do you think?
  • @bot can you explain this?
  • A direct reply to the bot where the user is clearly asking the bot.

Acceptance criteria

  • Gateway can mark a turn as handled without sending any outbound platform message.
  • Silent skip does not trigger empty-response retry/nudge behavior.
  • WhatsApp connector does not send a blank message or explanation when skip is requested.
  • The skipped turn is logged internally for debugging, but not delivered to the chat.
  • Tests cover WhatsApp group messages addressed to another human.
  • Tests cover normal bot-addressed WhatsApp group messages still responding.

Why this matters

In group chats, unnecessary bot messages are disruptive. The bot should behave like a human assistant: if people are talking to each other, it should not interrupt, and it should not announce that it is choosing not to interrupt.

extent analysis

TL;DR

Implement a "silent skip" path for WhatsApp group chats by introducing an explicit control mechanism, such as a skip_response function or a reserved final response sentinel, to prevent unnecessary bot messages.

Guidance

  • Introduce a dedicated internal tool or function, e.g., skip_response(reason: string), to mark a turn as handled without sending any outbound platform message.
  • Use a reserved final response sentinel, such as __HERMES_SKIP_DELIVERY__, to indicate that the bot should not send a message.
  • Add a first-class final_response_delivery = "skip" field in the agent result to achieve the same effect.
  • Ensure that the silent skip path does not trigger empty-response retry/nudge behavior and does not send a blank message or explanation.

Example

// Example of using the skip_response function
if (messageIsAddressedToAnotherParticipant()) {
  return skip_response("Message is addressed to another participant");
}

Notes

The implementation should cover various scenarios, including WhatsApp group messages addressed to another human and normal bot-addressed WhatsApp group messages. The solution should also include logging the skipped turn for debugging purposes without delivering it to the chat.

Recommendation

Apply a workaround by introducing an explicit control mechanism, such as a skip_response function or a reserved final response sentinel, to prevent unnecessary bot messages in WhatsApp group chats. This approach allows for a more robust and flexible solution that can be adapted to different scenarios.

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

hermes - 💡(How to fix) Fix Add explicit silent-skip delivery path for WhatsApp group messages [1 participants]