A complete guide to setting up a multi-agent AI team with OpenClaw, featuring specialized agents for different domains.
This setup creates a team of AI agents that can be accessed through a single Telegram interface. Each agent has a distinct personality and expertise.
| Agent | Role | Trigger | Purpose |
|---|---|---|---|
| Wawa | Central Hub | (default) | Routes conversations, maintains context |
| @milo | Strategy Lead | @milo | Strategic planning, OKRs, decisions |
| @josh | Business Analyst | @josh | Metrics, pricing, competitive analysis |
| @marketing | Marketing | @marketing | Content, trends, social monitoring |
| @dev | Developer | @dev | Code, architecture, technical decisions |
| @db | Database Guardian | @db | Beads/Dolt management |
| @health | Health Expert | @health | Health, wellness, medical guidance |
| @config | Config Expert | @config | Config validation, documentation |
- Linux/macOS server (VPS or local)
- Node.js 22+
- Telegram bot token (from @BotFather)
- API keys for AI models (Kimi, Claude, etc.)
# Install OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bash
# Install beads for issue tracking
curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
# Install Dolt (required for beads)
curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bashopenclaw configureopenclaw config set channels.telegram.botToken "YOUR_BOT_TOKEN"
openclaw config set channels.telegram.dmPolicy "pairing"
openclaw config set channels.telegram.enabled trueCreate a directory for each agent:
mkdir -p ~/.openclaw/workspace-{milo,josh,marketing,dev,db-guardian,health-expert,config-expert}Each agent needs a SOUL.md file defining their personality. Example for Strategy Lead:
# SOUL.md - Milo
## You
You are Milo, the team lead. Confident, big-picture, charismatic.
## Responsibilities
- Strategic planning and prioritization
- Coordinating other agents
- Weekly goal setting and OKR tracking
## Personality
- You see patterns others miss
- You ask hard questions
- You keep the team focused
## Signature Line
> "Let's focus on what moves the needle."Add agents to your config:
{
"agents": {
"list": [
{
"id": "main",
"workspace": "~/.openclaw/workspace",
"default": true
},
{
"id": "milo",
"workspace": "~/.openclaw/workspace-milo",
"groupChat": {
"mentionPatterns": ["@milo", "@Milo"]
}
},
{
"id": "josh",
"workspace": "~/.openclaw/workspace-josh",
"groupChat": {
"mentionPatterns": ["@josh", "@Josh"]
}
}
]
},
"bindings": [
{
"agentId": "milo",
"match": {
"channel": "telegram",
"peer": {
"kind": "group",
"id": "YOUR_GROUP_ID"
}
}
}
]
}Create shared files in the main workspace:
# GOALS.md - OKRs and priorities
# PROJECT_STATUS.md - Current workstreams
# DECISIONS.md - Key decisions log
# HEARTBEAT.md - Team schedule
# TEAM_ROUTING.md - How routing workscd ~/.openclaw/workspace
bd initopenclaw gateway startSome agents can auto-route based on keywords. Example for Health Expert:
{
"id": "health-expert",
"workspace": "~/.openclaw/workspace-health-expert",
"groupChat": {
"mentionPatterns": ["@health"],
"autoRoutePatterns": [
"health", "sick", "pain", "doctor", "medicine",
"symptom", "wellness", "nutrition", "exercise"
]
}
}- Validate config before restart: Always check JSON syntax
- Use beads for memory: Track all tasks and decisions
- Document everything: Keep AGENTS.md and SOUL.md updated
- Test routing: Verify each agent responds to their mention
- Monitor logs: Use
openclaw logs --followfor debugging
- Store API keys in environment variables, not config files
- Use
pairingorallowlistfor DM policies - Set
groupPolicy: "allowlist"for group access control - Never commit tokens to git
Agent not responding?
- Check
openclaw agents list --bindings - Verify mention patterns match
- Review gateway logs
Config errors?
- Validate JSON:
python3 -m json.tool openclaw.json - Run
openclaw doctor
Database issues?
- Check Dolt server:
bd dolt status - Reinitialize if needed:
bd init --force
Based on the multi-agent team pattern by Trebuh on X and the OpenClaw documentation.
MIT - Feel free to adapt for your own team setup.