SetupAdvanced
Run Multiple AI Agents with OpenClaw
Run multiple isolated AI agents on one Gateway. Route messages by channel, account, or user. Perfect for teams or separating work/personal.
8 min readLast updated Feb 18, 2026
Stuck?Check the troubleshooting index or ask in Discord.
Overview
Run multiple isolated AI agents on one Gateway. Each agent has its own workspace, personality, and sessions. Perfect for teams or separating work/personal assistants.
One agent = one brain
Each agent is fully isolated with its own workspace, auth profiles, and session history.
Quick Start
Create agents and route messages to them:
bash
# Create a new agent
openclaw agents add work
# List all agents
openclaw agents list --bindingsKey Concepts
agentId
One "brain" with its own workspace, auth, and sessions.
accountId
One channel account (e.g., WhatsApp "personal" vs "biz").
binding
Routes inbound messages to an agent by channel, account, or user.
Message Routing
Bindings are deterministic — most specific match wins:
- Direct message match (exact phone/ID)
- Group/channel ID match
- Discord role routing
- Account ID match
- Fallback to default agent
Discord Bots per Agent
Each Discord bot maps to a different agent:
json5
{
agents: {
list: [
{ id: "main", workspace: "~/.openclaw/workspace-main" },
{ id: "coding", workspace: "~/.openclaw/workspace-coding" },
],
},
bindings: [
{ agentId: "main", match: { channel: "discord", accountId: "default" } },
{ agentId: "coding", match: { channel: "discord", accountId: "coding" } },
],
}Telegram Bots per Agent
Create bots via BotFather, then bind each to an agent:
json5
{
agents: {
list: [
{ id: "personal", workspace: "~/.openclaw/workspace-personal" },
{ id: "alerts", workspace: "~/.openclaw/workspace-alerts" },
],
},
bindings: [
{ agentId: "personal", match: { channel: "telegram", accountId: "default" } },
{ agentId: "alerts", match: { channel: "telegram", accountId: "alerts" } },
],
}WhatsApp Numbers per Agent
Link each phone number, then route to different agents:
bash
# Login each WhatsApp account
openclaw channels login --channel whatsapp --account personal
openclaw channels login --channel whatsapp --account bizjson5
{
agents: {
list: [
{ id: "home", default: true, workspace: "~/.openclaw/workspace-home" },
{ id: "work", workspace: "~/.openclaw/workspace-work" },
],
},
bindings: [
{ agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
{ agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
],
}CLI Commands
bash
# Add a new agent
openclaw agents add coding
# List agents with bindings
openclaw agents list --bindings
# Check agent status
openclaw agents status
# Remove an agent (must stop gateway first)
openclaw agents remove coding