Spawn, coordinate, and manage multiple AI sub-agents that work together on complex tasks. One agent is the orchestrator — it decomposes the task, assigns roles, collects results, and synthesizes the final output.
Spawn multiple agents for a single task, collect results, done. Best for parallel research, generation, or data processing.
sessions_spawn(task="<task prompt>", runtime="subagent", mode="run")
Each agent gets a unique session. Results are auto-announced to the parent.
Spawn agents with mode="session" so they maintain context across multiple interactions. Use sessions_send to message them and sessions_list to track who's active.
Spawn 3-5 agents with different perspectives/prompts, have each produce an analysis, then synthesize into a decision. Use sessions_yield to wait for all results.
One orchestrator agent decomposes the task and spawns worker sub-agents for each subtask, then collects and merges results.
sessions_spawn(
task="You are a researcher agent. Research <topic> and return findings as a structured markdown summary.",
runtime="subagent",
runTimeoutSeconds=300,
mode="run" // or "session" for persistent
)
Key parameters:
runtime="subagent" — spawn as OpenClaw sub-agentmode="run" — one-shot, exits when donemode="session" — persistent, stays alive for multiple interactionsrunTimeoutSeconds — kill after N seconds (0 = no timeout)task — the full agent prompt/instructionsessions_send(sessionKey="<key>", message="Update: the requirements changed to X, please adjust your approach.")
sessions_list(kinds=["subagent"], activeMinutes=60) // find active agents
sessions_history(sessionKey="<key>", limit=10) // read their recent messages
Option A — Auto-announce: sub-agents announce results automatically (default).
Option B — Blocking wait: use sessions_yield to wait for sub-agent results before continuing:
sessions_yield(message="Waiting for research agents to report back...")
Option C — Poll history: after agents complete, fetch results:
sessions_history(sessionKey="<agent-session-key>", limit=20)
When receiving a complex task, follow this sequence:
1. Decompose task into N independent subtasks
2. For each subtask, spawn a sub-agent with sessions_spawn(mode="run")
3. Optionally use sessions_yield to wait for results
4. Collect outputs from each agent session via sessions_history
5. Synthesize findings into a unified response
6. Report back to the parent session
Example orchestrator prompt:
You are a team orchestrator. The user wants: <task>
Step 1: Break this into 3-5 independent subtasks
Step 2: Spawn research/coder/writer agents for each
Step 3: Wait for all results via sessions_yield
Step 4: Merge into one coherent output
Step 5: Present the final result
Start by decomposing the task and spawning the first wave of agents.
Spawn N agents, each doing the same operation on different data:
Agent 1: process(item=A)
Agent 2: process(item=B)
Agent 3: process(item=C)
→ Merge results
Spawn agents that each contribute a piece, then one agent merges:
Agent 1: write introduction
Agent 2: write section A
Agent 3: write section B
Agent 4: write conclusion
→ Synthesis agent combines all sections
Each agent's output becomes the next agent's input:
Agent 1: research topic → findings
Agent 2: analyze findings → insights
Agent 3: write article based on insights → draft
For persistent squads, maintain shared context via files:
sessions_send(sessionKey="<orchestrator-key>", message="Update the team status in /workspace/team-status.md — mark task-2 as COMPLETE and note the findings.")
Workers can read/write to shared workspace files for state.
Use subagents(action="list") to find and kill stale agents:
subagents(action="kill", target="<session-key>")
run for one-shot tasks.agent-orchestrator skill — skill-level orchestration (not task-level)agent-council skill — decision-making with agent debatessubagent-spawn-command-builder skill — helper for constructing spawn commands共 1 个版本