I have two agents (helix my main, forge my second). I have two slack apps. I have my channels set up like this:
"channels": {
"slack": {
"mode": "socket",
"webhookPath": "/slack/events",
"enabled": true,
"commands": {
"native": true,
"nativeSkills": true
},
"userTokenReadOnly": true,
"groupPolicy": "allowlist",
"streaming": "partial",
"nativeStreaming": true,
"channels": {
"#openclaw-helix": {
"enabled": true,
"allow": true,
"requireMention": false,
"allowBots": true,
"users": []
},
"#openclaw-forge": {
"enabled": true,
"allow": true,
"requireMention": false,
"allowBots": true,
"users": []
}
},
"responsePrefix": "[{identityName}] ",
"accounts": {
"helix": {
"botToken": "${HELIX_SLACK_BOT_TOKEN}",
"appToken": "${HELIX_SLACK_APP_TOKEN}",
"userTokenReadOnly": true,
"nativeStreaming": true,
"streaming": "partial"
},
"forge": {
"botToken": "${FORGE_SLACK_BOT_TOKEN}",
"appToken": "${FORGE_SLACK_APP_TOKEN}",
"userTokenReadOnly": true,
"nativeStreaming": true,
"streaming": "partial"
},
"default": {
"webhookPath": "/slack/events",
"userTokenReadOnly": true,
"groupPolicy": "allowlist",
"dmPolicy": "pairing",
"allowFrom": [],
"nativeStreaming": true,
"streaming": "partial"
}
}
},
And this is how the bindings are setup:
"bindings": [
{
"agentId": "main",
"match": {
"channel": "slack",
"peer": {
"kind": "channel",
"id": "#openclaw-helix"
}
}
},
{
"agentId": "forge",
"match": {
"channel": "slack",
"peer": {
"kind": "channel",
"id": "#openclaw-forge"
}
}
}
]
But Forge doesnt reply in its channel