-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
WhatsApp: add listen-only / hooks-only mode for inbound messages without agent runs #78963
Copy link
Copy link
Open
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Summary
Please add a first-class WhatsApp
listen-only/hooks-onlymode for inbound messages.The goal is to receive WhatsApp messages and emit
message_receivedplugin hooks for archival/ETL plugins, without creating agent runs, calling an LLM, or producing any outbound WhatsApp activity.Use case
Supplier price collection / archival.
A business may need to listen to hundreds of WhatsApp supplier groups and direct chats, archive price lists, parse attachments/text, and update internal systems. These messages should be processed by a plugin/hook pipeline, not by the conversational agent.
Routing every inbound WhatsApp message through the agent is both risky and expensive:
groupPolicy,dmPolicy, and plugin hooks.Desired behavior
For selected WhatsApp accounts and/or routes:
message_receivedplugin hooks;Suggested config shape
One possible shape:
{ "channels": { "whatsapp": { "accounts": { "supplier_prices": { "enabled": true, "mode": "listenOnly", "emitMessageReceivedHooks": true, "agentPipeline": false, "sendReadReceipts": false, "reactionLevel": "off", "groupPolicy": "listenOnly", "dmPolicy": "listenOnly" } } } } }Or equivalent explicit fields:
emitMessageReceivedHooks: trueprocessWithAgent: falseallowGroupsForHooksOnly: trueallowDirectsForHooksOnly: truesendReadReceipts: falsesendTyping: falsesendReactions: falseCurrent workaround / pain points
Today this requires local runtime patching or fragile configuration:
groupPolicy: disabled) beforemessage_receivedhooks can see them.Acceptance criteria
Why this matters
This would make WhatsApp useful as a safe ingestion channel, not only as a conversational channel. It would also remove the need for downstream users to patch runtime internals to build read-only archival workflows.