Title: Issue: Secondary Agent "hijacking" all Slack traffic (DMs & Channels) despite specific binding
Context:
I am running a multi-agent OpenClaw setup with a Default Agent (main) and a Secondary Agent.
My goal is for the Secondary Agent to handle only one specific Slack channel, while the Default Agent handles everything else (DMs, other channels).
The Problem:
The Secondary Agent is receiving all Slack traffic, including Direct Messages (DMs) and messages in non-bound channels. The Default Agent is effectively being bypassed
for Slack.
Configuration:
I have an explicit binding in openclaw.json that targets a single channel ID. There are no other bindings.
"bindings": [
{
"agentId": "secondary_agent_name",
"match": {
"channel": "slack",
"peer": {
"kind": "channel",
"id": "C_SPECIFIC_CHANNEL_ID"
}
}
}
]
Troubleshooting Steps Taken:
- Cleared Session State: I deleted the sessions.json file from the secondary agent's directory to remove any session stickiness.
- Restarted Gateway: I ran openclaw gateway restart multiple times to reload the configuration.
- Verified Agent Identity: Asking "What is your agent id?" in a fresh DM confirms it is responding as the Secondary Agent.
Question:
Why does the Secondary Agent take precedence over the Default (main) agent for DMs and unbound channels? Is there an implicit routing rule or a "default fallback"
setting I might be missing that causes the secondary agent to grab the global Slack socket connection?
Environment:
- OpenClaw Version: 2026.2.3-1 (d84eb46)
- Model: google/gemini-3-pro-preview
- Slack Integration: Socket Mode
Title: Issue: Secondary Agent "hijacking" all Slack traffic (DMs & Channels) despite specific binding
Context:
I am running a multi-agent OpenClaw setup with a Default Agent (main) and a Secondary Agent.
My goal is for the Secondary Agent to handle only one specific Slack channel, while the Default Agent handles everything else (DMs, other channels).
The Problem:
The Secondary Agent is receiving all Slack traffic, including Direct Messages (DMs) and messages in non-bound channels. The Default Agent is effectively being bypassed
for Slack.
Configuration:
I have an explicit binding in openclaw.json that targets a single channel ID. There are no other bindings.
Troubleshooting Steps Taken:
Question:
Why does the Secondary Agent take precedence over the Default (main) agent for DMs and unbound channels? Is there an implicit routing rule or a "default fallback"
setting I might be missing that causes the secondary agent to grab the global Slack socket connection?
Environment: