Summary
Feishu group chats can receive two bot replies for a single inbound message when an agent turn emits visible assistant text before a tool call and then later emits the final answer.
This is not a duplicate inbound event or two agents handling the same message. In the observed case the inbound Feishu group message was received once and dispatched to one agent once, but the dispatch completed with multiple user-visible replies.
Observed behavior
For one Feishu group message:
- Feishu monitor logged one inbound group message event.
- The message was dispatched to one agent/session once.
- The run produced visible assistant text in a tool-use/intermediate turn, then produced a final answer after the tool completed.
- The Feishu group received both messages, so users saw the bot reply twice.
- The dispatch log showed multiple final replies, e.g.
queuedFinal=true, replies=2.
Expected behavior
For group chats, intermediate tool-use assistant text should not be delivered as a normal user-visible reply by default. The group should receive either:
- only the final answer, or
- an explicit progress/streaming UI if the channel has opted into that behavior.
A tool-use turn such as "I'll check this now" followed by a tool call should stay internal/progress-only and should not be counted as a final group reply.
Related configuration
This is easier to notice when a Feishu bot is configured to answer broadly in groups, for example:
That configuration broadens the trigger surface: any group message can start an agent run without an @mention. It is therefore relevant to the impact and reproducibility of the problem.
However, it is not the direct cause of the double reply. The direct cause is that one agent run can expose both tool-use/intermediate assistant text and the later final answer as group-visible replies.
Non-goals / not observed
- This is not about duplicate Feishu webhook delivery.
- This is not about two OpenClaw agents or two Feishu bots both responding to the same message.
- This is not requesting that Docker/bridge networking or group activation policy be changed.
Proposed fix
Suppress assistant messages that end in stopReason: "toolUse" from user-visible reply payloads, unless they are being handled by an explicit progress/streaming surface. They should remain in the transcript for tool-call continuity, but not be emitted as final replies to Feishu groups.
Summary
Feishu group chats can receive two bot replies for a single inbound message when an agent turn emits visible assistant text before a tool call and then later emits the final answer.
This is not a duplicate inbound event or two agents handling the same message. In the observed case the inbound Feishu group message was received once and dispatched to one agent once, but the dispatch completed with multiple user-visible replies.
Observed behavior
For one Feishu group message:
queuedFinal=true, replies=2.Expected behavior
For group chats, intermediate tool-use assistant text should not be delivered as a normal user-visible reply by default. The group should receive either:
A tool-use turn such as "I'll check this now" followed by a tool call should stay internal/progress-only and should not be counted as a final group reply.
Related configuration
This is easier to notice when a Feishu bot is configured to answer broadly in groups, for example:
{ "channels": { "feishu": { "groupPolicy": "open", "requireMention": false } } }That configuration broadens the trigger surface: any group message can start an agent run without an @mention. It is therefore relevant to the impact and reproducibility of the problem.
However, it is not the direct cause of the double reply. The direct cause is that one agent run can expose both tool-use/intermediate assistant text and the later final answer as group-visible replies.
Non-goals / not observed
Proposed fix
Suppress assistant messages that end in
stopReason: "toolUse"from user-visible reply payloads, unless they are being handled by an explicit progress/streaming surface. They should remain in the transcript for tool-call continuity, but not be emitted as final replies to Feishu groups.