Multi-Agent Teams: Running Multiple Agents (The Right Way)

All posts
·1 min read

Multi-Agent Teams: Running Multiple Agents (The Right Way)

openclawagentsmulti-agentguide

One agent is useful. Five agents working together? That's a team. Most people don't know how to do this without chaos. They spin up agents, they fight over files, they share context they shouldn't, and then they give up.

Let's not do that.

#Why You'd Want Multiple Agents

  • Personal assistant (handles your calendar, messages, memory)
  • Research bot (reads docs, searches web, synthesizes)
  • Product lead (reviews PRs, pushes back on scope creep)
  • Automation bot (runs cron jobs, sends reports)
  • Customer support (handles tickets, escalates intelligently)

Each agent has:

  • Own personality (SOUL.md)
  • Own workspace (files, memory)
  • Own sessions (isolated context)
  • Own permissions (restricted tools)

They can talk to each other. They can share context selectively. But they don't step on each other.

#The Gotcha: Workspace Isolation

This is where people mess up.

Wrong Way: Shared Workspace

~/.openclaw/workspace/
  ├── SOUL.md           (who am I?)
  ├── MEMORY.md
  └── sessions/
      ├── personal_assistant
      └── product_lead

Both sessions read the same SOUL.md, MEMORY.md, workspace. They interfere. Alice's context bleeds into Bob's. The agent doesn't know it has split personality.

Right Way: Isolated Workspaces

~/.openclaw/agents/
  ├── personal/
  │   └── agent/
  │       ├── SOUL.md      (warm, helpful)
  │       ├── TOOLS.md
  │       ├── MEMORY.md
  │       └── sessions/
  ├── research/
  │   └── agent/
  │       ├── SOUL.md      (analytical)
  │       ├── TOOLS.md
  │       ├── MEMORY.md
  │       └── sessions/
  └── support/
      └── agent/
          ├── SOUL.md      (empathetic)
          ├── TOOLS.md
          ├── MEMORY.md
          └── sessions/

Each agent has own SOUL.md, own TOOLS.md, own MEMORY.md, own sessions. They don't interfere with other agents.

#Setting Up Multiple Agents

Create Agent Directories

# Create a personal assistant agent
openclaw agents add personal \
  --workspace ~/.openclaw/agents/personal/workspace
 
# Create a research agent
openclaw agents add research \
  --workspace ~/.openclaw/agents/research/workspace
 
# Create a support agent
openclaw agents add support \
  --workspace ~/.openclaw/agents/support/workspace

Each command creates an agent/ directory (SOUL.md, TOOLS.md, etc.) and a workspace/ directory (files, memory, sessions).

Configure Each Agent's Personality

Personal agent:

SOUL.md
You're a personal assistant.
Warm, helpful, organized.
- Remember important dates
- Keep track of what matters
- Proactive with reminders
- Never overwhelming with information

Research agent:

SOUL.md
You're a research analyst.
Technical, thorough, skeptical.
- Cite sources, always
- Question assumptions
- Separate facts from opinions
- Be concise, not chatty

Support agent:

SOUL.md
You're a customer support specialist.
Empathetic, process-focused.
- Acknowledge frustration
- Escalate when appropriate
- Document everything
- Solve, don't deflect

Route Messages to the Right Agent

This is the key. Who should handle which message?

Channel-based routing:

Telegram DM from Alice       → personal agent
Telegram DM from support@... → support agent
Discord #research            → research agent

Intent-based routing:

"Help me remember..."        → personal agent
"Research this topic..."     → research agent
"I have a complaint..."      → support agent

In OpenClaw, you configure this in the routing layer via dashboard settings.

Let Agents Talk to Each Other

Agents can message each other using sessions_send:

You: "Find a summary of OpenClaw's
      security features"

Personal agent: [Calls research agent]
  "Hey @research, can you summarize
   OpenClaw security?"

Research agent: [Responds]
  "Sure. Here's what I found: ..."

Personal agent: [Back to you]
  "Research found: ..."

One agent can ask another to do work, then synthesize the result. This is powerful.

#Common Multi-Agent Mistakes

Mistake: Agents Share Context They Shouldn't

Each agent has its own MEMORY.md. Support agent doesn't need product roadmap. Personal agent doesn't need customer tickets.

# Personal Agent MEMORY.md
- Hidde's timezone, preferences, contacts
- Personal projects and goals
 
# Support Agent MEMORY.md
- Common issues and resolutions
- Escalation procedures
- Company policies (public-facing only)
 
# Research Agent MEMORY.md
- Frequently searched topics
- Trusted sources
- Analysis frameworks

Mistake: Too Many Agents

❌ personal, assistant, personal-v2,
   assistant-v2, scheduler, calendar,
   notes, writer, ...
   (15 agents — maintenance nightmare)

✅ personal    (your life)
   work        (business stuff)
   automation  (cron jobs, reporting)
   (3–5 agents max)

You lose track with too many. Start lean. Add when you feel the pain.

Mistake: Agents Don't Know Their Boundaries

❌ No permission rules:
personal agent can: [everything]
support agent can: [everything]
→ Support agent reads all your personal files

✅ Set boundaries:
personal agent:
  - Can: MEMORY.md, TOOLS.md, personal files
  - Cannot: Execute shell, access customer data

support agent:
  - Can: Customer tickets, company policies
  - Cannot: Shell, personal files, roadmap

In OpenClaw, this is "agent roles" in the dashboard.

#A Practical Example: Azin's Setup

Hidde runs Azin. Here's how he'd set it up.

Agent 1: Personal (Hidde's Assistant)

SOUL.md
You're Hidde's personal assistant.
- Ambitious, direct, no bullshit
- Help ship fast
- Organize chaos
- Remember decisions and context
 
## What You Handle
- Calendar, messages, todos
- Personal projects
- Quick research
TOOLS.md
## Calendar
- Syncs with Google Calendar
- Timezone: Amsterdam (CET)
 
## Communication
- Email: hidde@azin.run
- Slack: @hidde

Routing: Telegram DM from Hidde → personal agent. WhatsApp self-chat → personal agent.

Agent 2: Product (Azin Direction)

SOUL.md
You're the Azin product lead.
- Ruthless about scope
- User-obsessed
- Push back on features that don't matter
- Ship working stuff, not perfect stuff
 
## What You Handle
- Feature prioritization
- User feedback synthesis
- Roadmap clarity
MEMORY.md
## Azin Vision
- European cloud provider
- Target: small teams
- Launch: Q1 2026
 
## User Feedback Themes
- Security is #1 concern
- Setup friction is real
- Price sensitivity for small teams

Routing: Discord #product → product agent. Slack #product → product agent.

Agent 3: Automation (Reporting, Cron)

SOUL.md
You're Azin's automation engine.
- Reliable
- Verbose logging
- Alert on failures
- Run daily/weekly reports
  • Daily: Summarize customer feedback
  • Weekly: Revenue report
  • Monthly: Churn analysis
  • On-demand: Anything Hidde asks

No channel routing. This agent runs via cron jobs.

#Benefits of This Setup

  • Isolation — each agent is a separate context, no interference
  • Scalability — add agents without breaking existing ones
  • Ownership — each agent has clear responsibility
  • Security — agents only access what they need
  • Flexibility — agents work independently or collaborate

#Next Steps

  • Create 2–3 agents (personal, automation, one business)
  • Define SOUL.md for each (make them different)
  • Set up routing
  • Let them run for a week
  • Add more if you need them

Don't overthink. Start simple. Scale when you feel the pain.

Deploy your own OpenClaw agent

Private infrastructure, managed for you. From first agent to full team in minutes.