Remote OpenClaw

Remote OpenClaw Blog

OpenClaw Multi-Agent Setup 2026: Run a Team of AI Agents

8 min read ·

Why Run Multiple Agents

A single OpenClaw instance handles general tasks well, but production operations benefit from specialized agents with focused responsibilities. Running multiple agents with distinct roles produces better results than one agent trying to handle everything, for three reasons.

Role Specialization

Each agent carries a different SOUL.md personality, different skills, and different context in its memory. An operations agent does not need sales playbooks in its context window. A content agent does not need CRM credentials. Separating roles keeps each agent's context focused and reduces token costs by 30-50% compared to a single overloaded instance, based on operator reports in the community.

Permission Boundaries

Security improves when each agent only has access to the tools and credentials it needs. Your sales agent should not have access to financial accounts. Your content agent should not have execution approval for CRM writes. Multi-agent setups enforce the principle of least privilege at the agent level.

Reliability and Uptime

If one agent crashes or enters an error loop, the others continue operating. A single-agent setup means a crash takes down all operations. Multi-agent architectures provide fault isolation by design.

For the original multi-agent guide (still relevant for basic setups), see How to Set Up OpenClaw Multi-Agent. This guide covers the updated 2026 architecture with current best practices.


Multi-Agent Architecture

The multi-agent architecture uses separate OpenClaw instances, each running as an independent process with its own configuration directory, memory files, and channel connections.

Directory Structure

Each agent gets its own configuration directory. The recommended structure, based on the official documentation:

~/.openclaw-atlas/     # Operations agent
  ├── SOUL.md
  ├── config.json
  ├── memory/
  │   ├── memory.md
  │   └── vault/       # Shared vault (symlink)
  └── skills/

~/.openclaw-scout/     # Sales agent
  ├── SOUL.md
  ├── config.json
  ├── memory/
  │   ├── memory.md
  │   └── vault/       # Shared vault (symlink)
  └── skills/

~/.openclaw-muse/      # Content agent
  ├── SOUL.md
  ├── config.json
  ├── memory/
  │   ├── memory.md
  │   └── vault/       # Shared vault (symlink)
  └── skills/

~/.openclaw-shared/    # Shared vault (source)
  ├── contacts.md
  ├── projects.md
  └── handoffs.md

Shared Memory via Vault

Agents share context through a shared vault directory that is symlinked into each agent's memory folder. The vault contains reference documents (contacts, projects, company info) that all agents can read. Each agent maintains its own memory.md for working memory and conversation history.

Do not point multiple agents at the same memory.md file. This causes write conflicts and memory corruption. Use separate working memory files with a shared read-only vault.


Step-by-Step Setup

Step 1: Create Agent Directories

# Create directories for each agent
mkdir -p ~/.openclaw-atlas/memory/vault
mkdir -p ~/.openclaw-atlas/skills
mkdir -p ~/.openclaw-scout/memory/vault
mkdir -p ~/.openclaw-scout/skills
mkdir -p ~/.openclaw-muse/memory/vault
mkdir -p ~/.openclaw-muse/skills

# Create shared vault
mkdir -p ~/.openclaw-shared

Step 2: Configure SOUL.md for Each Agent

Each agent needs a distinct SOUL.md that defines its role, personality, and operational boundaries. The SOUL.md is the single most important configuration file — it determines how the agent behaves, what it prioritizes, and how it communicates.

Example for Atlas (operations):

# Atlas — Chief of Staff

## Role
You are Atlas, an AI chief of staff responsible for daily operations,
calendar management, email triage, and task coordination.

## Boundaries
- You handle scheduling, email, and task management
- You do NOT handle sales outreach (route to Scout)
- You do NOT create content (route to Muse)
- You escalate financial decisions above $500 to human approval

## Communication Style
Professional, concise, proactive. Morning briefing at 7:00 AM.
End-of-day summary at 6:00 PM.

For production-ready SOUL.md files with full skill integration, the marketplace personas include pre-configured Atlas, Scout, Muse, and Compass profiles.

Step 3: Set Permission Boundaries

Each agent's config.json should only include the credentials and tool permissions it needs:

// Atlas config.json — operations permissions only
{
  "name": "Atlas",
  "configDir": "~/.openclaw-atlas",
  "port": 3001,
  "tools": {
    "calendar": true,
    "email": true,
    "tasks": true,
    "crm": false,
    "social": false,
    "finance": false
  },
  "execApprovals": {
    "required": ["email_send", "calendar_modify"],
    "auto": ["email_read", "calendar_read", "task_read"]
  }
}
// Scout config.json — sales permissions only
{
  "name": "Scout",
  "configDir": "~/.openclaw-scout",
  "port": 3002,
  "tools": {
    "calendar": false,
    "email": true,
    "tasks": false,
    "crm": true,
    "social": true,
    "finance": false
  },
  "execApprovals": {
    "required": ["crm_write", "email_send"],
    "auto": ["crm_read", "social_read"]
  }
}

Step 4: Define Routing Rules

Routing determines which agent handles incoming messages. Configure routing in a shared routing config or use channel-based separation:

// routing.json
{
  "rules": [
    {
      "match": {"channel": "telegram", "keywords": ["schedule", "meeting", "calendar", "task"]},
      "agent": "atlas",
      "port": 3001
    },
    {
      "match": {"channel": "telegram", "keywords": ["lead", "prospect", "deal", "pipeline", "sales"]},
      "agent": "scout",
      "port": 3002
    },
    {
      "match": {"channel": "telegram", "keywords": ["blog", "post", "content", "article", "social"]},
      "agent": "muse",
      "port": 3003
    },
    {
      "match": {"channel": "telegram", "default": true},
      "agent": "atlas",
      "port": 3001
    }
  ]
}

Step 5: Symlink the Shared Vault

# Create shared reference documents
echo "# Shared Contacts" > ~/.openclaw-shared/contacts.md
echo "# Active Projects" > ~/.openclaw-shared/projects.md
echo "# Agent Handoffs" > ~/.openclaw-shared/handoffs.md

# Symlink vault into each agent's memory
ln -sf ~/.openclaw-shared/* ~/.openclaw-atlas/memory/vault/
ln -sf ~/.openclaw-shared/* ~/.openclaw-scout/memory/vault/
ln -sf ~/.openclaw-shared/* ~/.openclaw-muse/memory/vault/

Step 6: Start Each Agent

# Start each agent on a different port
OPENCLAW_DIR=~/.openclaw-atlas openclaw start --port 3001 &
OPENCLAW_DIR=~/.openclaw-scout openclaw start --port 3002 &
OPENCLAW_DIR=~/.openclaw-muse openclaw start --port 3003 &

For production deployments, use systemd services or Docker containers instead of background processes. See our Docker Compose guide for containerized multi-agent setups.


Real Example: Atlas + Scout + Muse

This is a production configuration used by several solo founders in the community. Three agents coordinate to cover the core operational needs of a small business.

Marketplace

Free skills and AI personas for OpenClaw — browse the marketplace.

Browse the Marketplace →

Atlas — Operations and Inbox Management

  • Channel: Telegram (primary), Email (monitoring)
  • Skills: Gmail integration, Google Calendar, task board, daily briefing
  • Schedule: Morning briefing at 7:00 AM, end-of-day summary at 6:00 PM, email triage every 30 minutes
  • Memory: Tracks meetings, commitments, deadlines, and follow-ups
  • Detailed setup: Atlas AI Chief of Staff Guide

Scout — Sales and Lead Management

  • Channel: Telegram (sales channel), CRM webhook
  • Skills: CRM read/write, lead scoring, email outreach templates, LinkedIn monitoring
  • Schedule: Lead scoring refresh at 8:00 AM, pipeline report at 5:00 PM
  • Memory: Tracks prospects, deal stages, follow-up dates, and conversation history
  • Detailed setup: Scout AI Sales Agent Guide

Muse — Content Creation

  • Channel: Telegram (content channel)
  • Skills: Content repurposer, social media scheduler, blog draft generator, SEO checker
  • Schedule: Content calendar review Monday 9:00 AM, social post queue daily at 10:00 AM
  • Memory: Tracks content ideas, published pieces, engagement metrics, and brand voice guidelines
  • Detailed setup: Muse AI Content Creator Guide

How They Coordinate

When Atlas receives an email from a prospect, it writes a handoff note to ~/.openclaw-shared/handoffs.md and routes the next interaction to Scout. When Scout closes a deal, it writes the client details to the shared vault for Atlas to begin onboarding workflows. When Atlas identifies a content opportunity from a client call, it creates a brief in the shared vault for Muse to pick up.

This coordination is file-based and asynchronous. Agents do not call each other directly. They communicate through the shared vault, which each agent checks on its configured schedule.


Message Routing and Coordination

Channel-Based Routing

The simplest approach: assign each agent its own messaging channel. Atlas gets the primary Telegram chat. Scout gets a dedicated sales channel. Muse gets a content channel. No routing logic needed — each agent only listens to its assigned channel.

Keyword-Based Routing

For operators who want a single channel (e.g., one Telegram chat for everything), keyword routing sends messages to the appropriate agent based on content. This requires a lightweight routing proxy that inspects incoming messages and forwards them to the correct agent port.

Sender-Based Routing

Route messages based on who sent them. Team members in the sales group go to Scout. The founder's direct messages go to Atlas. External contacts go to the default handler.

For advanced routing patterns including priority queuing and fallback chains, see the Operator Suite guide.


Monitoring and Maintenance

Health Checks

Set up a cron job that pings each agent's health endpoint every 5 minutes:

# Check agent health every 5 minutes
*/5 * * * * curl -s http://localhost:3001/health || systemctl restart openclaw-atlas
*/5 * * * * curl -s http://localhost:3002/health || systemctl restart openclaw-scout
*/5 * * * * curl -s http://localhost:3003/health || systemctl restart openclaw-muse

Log Aggregation

Each agent writes logs to its own directory. For centralized monitoring, tail all agent logs into a single dashboard:

# Tail all agent logs
tail -f ~/.openclaw-atlas/logs/*.log \
       ~/.openclaw-scout/logs/*.log \
       ~/.openclaw-muse/logs/*.log

For a visual dashboard, see our Mission Control setup guide.

Cost Monitoring

Each agent consumes LLM API tokens independently. Monitor per-agent costs by checking API usage dashboards (Anthropic Console, OpenAI Dashboard, or OpenRouter). A typical 3-agent setup costs $30-80/month in API tokens depending on message volume and model selection. See our cost optimization guide for reduction strategies.

Update Strategy

Update agents one at a time, not all at once. Start with the least critical agent, verify stability for 24 hours, then update the next. This prevents a bad update from taking down all agents simultaneously. Pin versions in package.json and read our update survival guide before upgrading.


Frequently Asked Questions

How many OpenClaw agents can I run on one server?

On a typical 4GB VPS ($10-15/month), you can comfortably run 2-3 OpenClaw agent instances. Each instance uses approximately 500MB-1GB of RAM depending on loaded skills and memory size. A 8GB VPS supports 4-6 agents. For larger teams, use separate VPS instances or Docker containers with resource limits to prevent one agent from starving others.

Do OpenClaw agents share memory with each other?

Not by default. Each OpenClaw instance maintains its own memory in a separate ~/.openclaw/ directory. To share context between agents, configure a shared vault directory that multiple instances can read from. Use file-based handoff documents or a shared Obsidian vault for structured knowledge sharing. Do not point multiple agents at the same memory.md file — use separate files with a shared reference directory.

What is the difference between multi-agent and the Operator Suite?

Multi-agent refers to running separate OpenClaw instances with distinct roles (Atlas for ops, Scout for sales, Muse for content). The Operator Suite is a pre-configured bundle from the Remote OpenClaw marketplace that includes SOUL.md files, skills, memory systems, and routing rules for a coordinated multi-agent team. The Operator Suite saves the 20-40 hours of manual configuration required to build a multi-agent setup from scratch.


Sources and References