Run Multiple Isolated Agents in One Gateway
3 min read
One gateway. Multiple personalities. Complete isolation.
I run two agents through a single OpenClaw process — different workspaces, tools, and purposes. They share nothing.
Why Split?
Cramming everything into one agent was a mess. The problem wasn't capability — it was context. Calendar management and Kubernetes deployments don't belong in the same brain.
- Arun — Personal assistant, creative work, daily tasks (MacBook)
- Dao — Infrastructure, monitoring, automation (Mac Mini)
Each gets its own workspace, SOUL.md, and skills. Different channel, different agent.
How It Works: agents.list
A single file tells OpenClaw which agent handles which channels:
# agents.list — workspace_path | channels
~/.openclaw/agents/arun | slack:C0PERSONAL,telegram:jay
~/.openclaw/agents/dao | slack:C0INFRA,telegram:alertsMessage comes in → OpenClaw checks the channel → routes to the right agent. Instant, no overlap.
Full Isolation
This isn't just routing — it's complete separation:
- Separate workspaces — Own
~/.openclaw/agents/[name]directory - Separate memory — Can't read each other's MEMORY.md
- Separate skills — Dao has infra skills; Arun doesn't know they exist
- Separate tools — Different TOOLS.md, different capabilities
Each agent is good at its job because it's only doing that job.
Setup
- Create workspace directories for each agent
- Add identity files (SOUL.md, AGENTS.md) to each
- Create
agents.listwith routing rules - Restart the gateway
mkdir -p ~/.openclaw/agents/arun
mkdir -p ~/.openclaw/agents/dao
# Add identity files, create agents.list
openclaw gateway restartAdvanced Routing
Beyond channels, you can route by:
- Account — Different Slack workspaces → different agents
- User — Specific users get specific agents
- Pattern matching — Route by channel name patterns
One Process, Many Minds
No multiple Node processes or gateways. One OpenClaw process with smart routing. Isolation is logical, not physical — agents share CPU and memory, but nothing else.
Start with one agent. When you want different personalities for different contexts, add another. The routing is there when you need it.