/multi-bot
Coordinates responses between multiple GolemBot instances in a shared fleet. Use when the bot operates in a group chat with other bots, needs to decide whether to respond or pass, or must call a peer bot's API to fetch cross-domain data.
$ npx -y skills add 0xranx/golembot --skill multi-bot --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/multi-bot
Context preview
The summary Claude sees to decide when to auto-load this skill.
Coordinates responses between multiple GolemBot instances in a shared fleet. Use when the bot operates in a group chat with other bots, needs to decide whether to respond or pass, or must call a peer bot's API to fetch cross-domain data.
SKILL.md
multi-bot.SKILL.mdname: multi-bot
description: "Coordinates responses between multiple GolemBot instances in a shared fleet. Use when the bot operates in a group chat with other bots, needs to decide whether to respond or pass, or must call a peer bot's API to fetch cross-domain data."
Multi-Bot Collaboration
You may be one of several GolemBot instances running in the same fleet. The gateway injects `[Peers: ...]` into your group chat context so you know who else is present.
Peer Awareness
When you see `[Peers: 小忆 (user research), 小舟 (content creation)]` in the prompt:
- These are other GolemBot instances in the fleet
- Each has its own specialization (shown in parentheses)
- They may or may not be active in this specific group chat
When to Respond vs [PASS]
In group chats with peers, follow these rules:
1. **Respond** if the message falls within your domain/role 2. **Respond** if you are directly @mentioned 3. **[PASS]** if the message clearly belongs to another peer's domain 4. **Respond** if the topic spans multiple domains — focus on YOUR area of expertise only, don't duplicate what peers would cover 5. **Respond** if no peer is better suited (don't let messages go unanswered)
Avoiding Redundancy
- Check the conversation history for `[bot:PeerName]` entries
- If a peer already covered a topic, don't repeat it — add new information or skip
- When a topic spans multiple domains, scope your response to your own expertise
Calling Peer Bots
You can call other GolemBot instances directly via their HTTP API when you need their capabilities:
# Ask a peer bot a question
curl -s -X POST http://<peer-url>/chat \
-H 'Content-Type: application/json' \
-d '{"message": "your question here", "sessionKey": "cross-bot-<context>"}'
# Check a peer's status
curl -s http://<peer-url>/healthError Handling for Peer Calls
Peer bots may be temporarily unavailable. Always check the HTTP status code before using the response:
response=$(curl -s -w "\n%{http_code}" -X POST http://<peer-url>/chat \
-H 'Content-Type: application/json' \
-d '{"message": "your question", "sessionKey": "cross-bot-ctx"}')
status=$(echo "$response" | tail -1)
body=$(echo "$response" | sed '$d')
if [ "$status" -ne 200 ]; then
# Peer unavailable — answer with your own knowledge or inform the user
echo "Peer bot returned status $status; falling back to local knowledge."
fiWhen to Call a Peer
- You need data or analysis from another domain (e.g., you're the product bot and need user feedback data from the user-research bot)
- A user asks you something outside your expertise — call the appropriate peer, then synthesize the response
- You want to verify or cross-reference information
When NOT to Call a Peer
- The question is within your own domain
- The peer is likely to respond on their own in the group chat (redundant)
- Simple factual questions you can answer yourself
Discovering Peers
Peer information is automatically injected by the gateway from fleet discovery. You can also check:
# List all running GolemBot instances
curl -s http://localhost:4000/api/fleet
Conversation History Labels
In group chat history, messages are labeled:
- `[username]` — human message
- `[bot:BotName]` — message from a peer bot
Use these labels to understand the conversation context and avoid repeating what peers have already said.
Read more
name: multi-bot description: "Coordinates responses between multiple GolemBot instances in a shared fleet. Use when the bot operates in a group chat with other bots, needs to decide whether to respond or pass, or must call a peer bot's API to fetch cross-domain data."
Multi-Bot Collaboration
You may be one of several GolemBot instances running in the same fleet. The gateway injects `[Peers: ...]` into your group chat context so you know who else is present.
Peer Awareness
When you see `[Peers: 小忆 (user research), 小舟 (content creation)]` in the prompt:
- These are other GolemBot instances in the fleet
- Each has its own specialization (shown in parentheses)
- They may or may not be active in this specific group chat
When to Respond vs [PASS]
In group chats with peers, follow these rules:
1. **Respond** if the message falls within your domain/role 2. **Respond** if you are directly @mentioned 3. **[PASS]** if the message clearly belongs to another peer's domain 4. **Respond** if the topic spans multiple domains — focus on YOUR area of expertise only, don't duplicate what peers would cover 5. **Respond** if no peer is better suited (don't let messages go unanswered)
Avoiding Redundancy
- Check the conversation history for `[bot:PeerName]` entries
- If a peer already covered a topic, don't repeat it — add new information or skip
- When a topic spans multiple domains, scope your response to your own expertise
Calling Peer Bots
You can call other GolemBot instances directly via their HTTP API when you need their capabilities:
# Ask a peer bot a question
curl -s -X POST http://<peer-url>/chat \
-H 'Content-Type: application/json' \
-d '{"message": "your question here", "sessionKey": "cross-bot-<context>"}'
# Check a peer's status
curl -s http://<peer-url>/healthError Handling for Peer Calls
Peer bots may be temporarily unavailable. Always check the HTTP status code before using the response:
response=$(curl -s -w "\n%{http_code}" -X POST http://<peer-url>/chat \
-H 'Content-Type: application/json' \
-d '{"message": "your question", "sessionKey": "cross-bot-ctx"}')
status=$(echo "$response" | tail -1)
body=$(echo "$response" | sed '$d')
if [ "$status" -ne 200 ]; then
# Peer unavailable — answer with your own knowledge or inform the user
echo "Peer bot returned status $status; falling back to local knowledge."
fiWhen to Call a Peer
- You need data or analysis from another domain (e.g., you're the product bot and need user feedback data from the user-research bot)
- A user asks you something outside your expertise — call the appropriate peer, then synthesize the response
- You want to verify or cross-reference information
When NOT to Call a Peer
- The question is within your own domain
- The peer is likely to respond on their own in the group chat (redundant)
- Simple factual questions you can answer yourself
Discovering Peers
Peer information is automatically injected by the gateway from fleet discovery. You can also check:
# List all running GolemBot instances curl -s http://localhost:4000/api/fleet
Conversation History Labels
In group chat history, messages are labeled:
- `[username]` — human message
- `[bot:BotName]` — message from a peer bot
Use these labels to understand the conversation context and avoid repeating what peers have already said.
Any Agent × Any Provider × Anywhere. Connect Cursor, Claude Code, OpenCode, or Codex to Slack, Telegram, Discord, Feishu, DingTalk, WeCom, WeChat — with any LLM provider.
Repo: 0xranx/golembot
Other skills on golembot.
- /escalation
Escalate unresolvable or sensitive requests to a human agent by recording an escalation entry. Use when the user asks to speak to a human, the bot cannot answer confidently, the request involves financial, legal, or security concerns, a safety issue is detected, or the user is
Open skill - /general
Handle everyday conversation, answer questions, manage files, take notes, run scripts, and maintain persistent memory across sessions. Use when the user asks a general question, requests file operations, wants to brainstorm ideas, needs to-do tracking, asks you to remember
Open skill - /im-adapter
Format responses for instant messaging platforms such as Lark, DingTalk, WeCom, Slack, and Telegram. Controls response length, Markdown formatting, tone, group chat behavior, and the [PASS] protocol. Use when replying through an IM channel, composing a group chat message, or
Open skill - /kb-guide
Search, read, create, and update knowledge base entries via MCP-connected KB tools. Use when the user asks to look up documentation, find existing articles, check if docs exist on a topic, create a new KB entry, update an existing document, or when domain questions should be
Open skill - /message-push
Send proactive messages to IM groups or individual users via the gateway Send API. Use when the user says to send, post, notify, forward, or tell someone a message on Feishu, Slack, Telegram, Discord, DingTalk, or WeCom.
Open skill - /task-manager
Creates and manages scheduled tasks, cron jobs, recurring reminders, and timers via the Task HTTP API. Use when the user asks to schedule something, set a recurring reminder, run a periodic check, or manage existing scheduled tasks.
Open skill

