Description
When an agent receives a sessions_send inter-session message while its active session is on the Feishu channel, the reply is routed through the webchat channel instead of the original Feishu channel. This causes the user to never see the reply in Feishu — the message appears to be "lost."
Environment
- OpenClaw version: 2026.5.27 (commit 27ae826)
- Channel: Feishu (Lark)
- Multiple agents configured on the same OpenClaw instance (7 agents total)
tools.agentToAgent.enabled: true
tools.sessions.visibility: "all"
Steps to Reproduce
- Set up multiple agents on a single OpenClaw instance, each with its own Feishu bot
- User chats with Agent B via Feishu DM (session is
agent:B:feishu:B:direct:ou_xxx)
- Agent A sends a message to Agent B using
sessions_send(agentId="B", message="...")
- Agent B receives the inter-session message and generates a reply
Expected Behavior
Agent B's reply should be delivered back to the user via the Feishu channel, since the active session originated from Feishu.
Actual Behavior
Agent B's reply is routed through channel=webchat instead of channel=feishu. The user never sees the reply in Feishu.
Log Evidence
From journalctl logs, the key pattern is:
# Inter-session message arrives with sourceChannel=webchat
"content": "[Inter-session message] sourceSession=agent:B:main sourceChannel=webchat sourceTool=sessions_"
# Agent B's reply goes to webchat channel
[agent:nested] session=agent:B:feishu:B:direct:ou_xxx run=xxx channel=webchat <reply content>
Note the contradiction: the session key contains feishu (agent:B:feishu:B:direct:ou_xxx), but the response is tagged channel=webchat.
For comparison, when Agent B replies to a normal Feishu user message (not an inter-session message), it correctly uses the Feishu channel:
[feishu] feishu[B]: dispatch complete (queuedFinal=true, replies=1)
Root Cause Hypothesis
When an inter-session message is injected into an agent's session via sessions_send, the sourceChannel of that injected message is set to webchat. The agent's reply routing then follows this sourceChannel rather than the session's original channel (Feishu). This causes the reply to be "delivered" to the webchat channel, which has no connection to the Feishu conversation — so the user sees nothing.
The reply channel should respect the session's origin channel (Feishu), not the injected message's source channel.
Workaround
The user has to manually ask the agent to resend the information, which then goes through the correct Feishu channel.
Impact
This is a significant usability issue for multi-agent setups where agents communicate via sessions_send while the user is interacting through Feishu. The user sees messages disappearing or agents appearing unresponsive, when in reality the replies are being sent to a disconnected channel.
Frequency
Intermittent — it occurs specifically when the agent's reply is triggered by or strongly influenced by an inter-session message. If the user sends a follow-up message after the inter-session message arrives, the reply sometimes routes correctly through Feishu.
Description
When an agent receives a
sessions_sendinter-session message while its active session is on the Feishu channel, the reply is routed through thewebchatchannel instead of the original Feishu channel. This causes the user to never see the reply in Feishu — the message appears to be "lost."Environment
tools.agentToAgent.enabled: truetools.sessions.visibility: "all"Steps to Reproduce
agent:B:feishu:B:direct:ou_xxx)sessions_send(agentId="B", message="...")Expected Behavior
Agent B's reply should be delivered back to the user via the Feishu channel, since the active session originated from Feishu.
Actual Behavior
Agent B's reply is routed through
channel=webchatinstead ofchannel=feishu. The user never sees the reply in Feishu.Log Evidence
From journalctl logs, the key pattern is:
Note the contradiction: the session key contains
feishu(agent:B:feishu:B:direct:ou_xxx), but the response is taggedchannel=webchat.For comparison, when Agent B replies to a normal Feishu user message (not an inter-session message), it correctly uses the Feishu channel:
Root Cause Hypothesis
When an inter-session message is injected into an agent's session via
sessions_send, thesourceChannelof that injected message is set towebchat. The agent's reply routing then follows thissourceChannelrather than the session's original channel (Feishu). This causes the reply to be "delivered" to the webchat channel, which has no connection to the Feishu conversation — so the user sees nothing.The reply channel should respect the session's origin channel (Feishu), not the injected message's source channel.
Workaround
The user has to manually ask the agent to resend the information, which then goes through the correct Feishu channel.
Impact
This is a significant usability issue for multi-agent setups where agents communicate via
sessions_sendwhile the user is interacting through Feishu. The user sees messages disappearing or agents appearing unresponsive, when in reality the replies are being sent to a disconnected channel.Frequency
Intermittent — it occurs specifically when the agent's reply is triggered by or strongly influenced by an inter-session message. If the user sends a follow-up message after the inter-session message arrives, the reply sometimes routes correctly through Feishu.