multiagent
rikouu/openclaw-multiagentManage multi-agent Telegram group collaboration for OpenClaw. Use when: (1) adding a new agent/bot to the team, (2) removing an agent, (3) listing current agents, (4) diagnosing multi-agent configuration issues, (5) clearing session caches, (6) syncing workspace team info. Triggers: 'multiagent', 'add agent', 'remove agent', 'agent doctor', 'agent list', 'clear sessions', 'multi-agent'.
SKILL.md
name: multiagent description: "Manage multi-agent Telegram group collaboration for OpenClaw. Use when: (1) adding a new agent/bot to the team, (2) removing an agent, (3) listing current agents, (4) diagnosing multi-agent configuration issues, (5) clearing session caches, (6) syncing workspace team info. Triggers: 'multiagent', 'add agent', 'remove agent', 'agent doctor', 'agent list', 'clear sessions', 'multi-agent'." user_invocable: true
Multi-Agent Manager
Manage OpenClaw multi-agent Telegram group collaboration. Automates the error-prone process of adding/removing agents and keeps configurations consistent.
Operations
| Command | Description |
|---|---|
add-agent |
Add a new agent to the team |
remove-agent |
Remove an agent from the team |
list-agents |
List all agents and their status |
doctor |
Diagnose configuration issues |
clear-sessions |
Clear session caches |
update-workspaces |
Sync AGENTS.md across all workspaces |
setup-comms |
Configure/update group chat settings |
Script location: scripts/manage.sh
Adding an Agent
Prerequisites
- Create a bot via BotFather (
/newbot) - Disable privacy mode:
/setprivacy-> select bot ->Disable - Add bot to the Telegram group
- Note the bot token and username
Steps
bash scripts/manage.sh add-agent <id> <name> <role> <model> <bot_token> <bot_username> <group_chat_id>
Example:
bash scripts/manage.sh add-agent xiaoli 小丽 "数据分析师" "anthropic/claude-sonnet-4-6" \
"1234567890:AAH..." "@xiaoli_data_bot" "-100XXXXXXXXXX"
This automatically:
- Validates the agent ID is unique
- Updates
openclaw.json— 5 config sections:agents.list[]— agent definition (model, workspace, mentionPatterns)bindings[]— agentId <-> telegram accountId mappingchannels.telegram.accounts.{id}— bot token + group configtools.agentToAgent.allow[]— adds new agent to global allow list- Each existing agent's
subagents.allowAgents[]— bidirectional visibility
- Creates workspace directory with AGENTS.md, SOUL.md, USER.md
- Syncs AGENTS.md in all existing workspaces
- Clears all session caches
- Restarts the gateway
Post-add Checklist
- Verify bot privacy mode is disabled (
can_read_all_group_messages: true) - Remove and re-add bot to group if privacy was changed after joining
- Test: send
@botname helloin group, verify the correct bot responds
Removing an Agent
bash scripts/manage.sh remove-agent <id>
Removes all configuration references, updates other agents' allow lists, syncs workspaces, clears sessions, restarts gateway. Does NOT delete the workspace directory (moved to .bak).
Listing Agents
bash scripts/manage.sh list-agents
Parses openclaw.json and displays each agent's ID, name, model, bot username, and binding status.
Diagnosing Issues (Doctor)
bash scripts/manage.sh doctor
Checks:
- Each agent has a corresponding binding
- Each agent has a telegram account config with bot token
agentToAgent.allowincludes all agent IDs- Each agent's
subagents.allowAgentsincludes all peers - Workspace directories exist
- AGENTS.md uses
accountId(notaccount) mentionPatternsare configured- Group chat ID is consistent across accounts
Clearing Sessions
bash scripts/manage.sh clear-sessions [agent_id|all]
Deletes session cache files. Required after modifying AGENTS.md or SOUL.md — otherwise agents keep using cached instructions.
Session store locations: ~/.openclaw/agents/{id}/sessions/sessions.json
Updating Workspaces
bash scripts/manage.sh update-workspaces
Regenerates the team collaboration section in every agent's AGENTS.md with current team member list, ensuring all agents have consistent information.
Key Pitfalls
-
accountIdnotaccount— Themessagetool parameter isaccountId. Writingaccountsilently falls back to default (main agent's bot). -
sessions_sendnever delivers to Telegram — It always uses webchat internally. Agents must use themessagetool to post results to the group. -
Session cache blocks config changes — After editing AGENTS.md or SOUL.md, clear sessions or changes won't take effect.
-
BotFather privacy mode — Must be
Disabled. Change takes effect only after removing and re-adding bot to group. -
Topic/forum mode adds complexity — Session keys get
:topic:Nsuffixes. Use plain group mode unless you specifically need topics.
For detailed troubleshooting, read references/troubleshooting.md. For config structure details, read references/config-guide.md.
Workspace Templates
AGENTS.md Template
The template uses these placeholders (replaced by manage.sh):
| Placeholder | Description |
|---|---|
{{AGENT_ID}} |
Agent's ID (e.g., xiaoma) |
{{AGENT_NAME}} |
Display name (e.g., 小码) |
{{AGENT_ROLE}} |
Role description |
{{BOT_USERNAME}} |
Telegram bot username |
{{GROUP_CHAT_ID}} |
Telegram group chat ID |
{{TEAM_TABLE}} |
Auto-generated team member table |
{{SESSION_KEYS}} |
Auto-generated session key table |
Template content is embedded in scripts/manage.sh (function generate_agents_md).
SOUL.md Template
A minimal SOUL.md is generated with the agent's name and role. Edit it after creation to add personality details.
USER.md Template
A minimal USER.md pointing to the owner. Edit after creation.