Overview
TheAdvisorSwarm implements the advisor strategy described in Anthropic’s research (April 2026). It pairs a cheaper executor model that drives the task end-to-end with a powerful advisor model consulted on-demand between executor turns.
The executor runs every turn. The advisor is on-demand — consulted between executor turns when budget allows. Both agents read from and write to the same shared conversation context. The advisor never calls tools or produces user-facing output.
This is provider-agnostic: any model supported by LiteLLM works for either role.
The swarm follows this workflow:
- User task goes into the shared conversation
- Before each executor turn, the advisor reads the full shared context and provides guidance (if budget allows)
- The executor reads the full shared context (including any advisor guidance) and produces output
- Both advisor guidance and executor output are added to the shared conversation
- Repeat for
max_loopsexecutor turns
Installation
Key Features
Attributes
str
default:"None"
Unique identifier for this swarm instance. Auto-generated via
swarm_id() if not provided.str
default:"AdvisorSwarm"
Human-readable name
str
default:"An executor-advisor swarm..."
Description of the swarm’s purpose
str
default:"claude-sonnet-4-6"
Model for the executor agent
str
default:"claude-opus-4-6"
Model for the advisor agent
str
default:"Built-in"
System prompt for the executor
str
default:"Built-in"
System prompt for the advisor
int
default:"3"
Max advisor consultations per
run(). 0 = executor runs alone.int
default:"1"
Number of executor turns
OutputType
default:"dict-all-except-first"
Format for output (dict, str, list, final, json, yaml)
bool
default:"False"
Enable detailed logging
Agent
default:"None"
Pre-configured Agent for execution (e.g., with tools or MCP)
Agent
default:"None"
Pre-configured Agent for advising
List[Callable]
default:"None"
Tools available to the executor agent only
Methods
run()
Execute the advisor-executor orchestration flow.task(str): The task to accomplishimg(str, optional): Optional single image inputimgs(List[str], optional): Optional list of image inputs
output_type
batched_run()
Run the swarm on multiple tasks sequentially.tasks(List[str]): List of task strings
Usage Examples
Basic Usage
Multi-Turn with Advisor Guidance
Run the executor for multiple turns, with the advisor providing guidance before each:Custom Executor with Tools
Pass a pre-configured executor agent with tools while keeping the advisor tool-free:Executor Only (No Advisor)
Setmax_advisor_uses=0 to run the executor alone:
Different Providers
The swarm is provider-agnostic. Use any models LiteLLM supports:Architecture Details
Shared Context
Both agents read from and write to the sameConversation object. This mirrors the Anthropic diagram where the advisor reads the same context as the executor. On each turn:
- The advisor reads
conversation.get_str()— sees everything so far - The advisor’s guidance is added to the conversation
- The executor reads
conversation.get_str()— sees the task, any prior output, and the advisor’s guidance - The executor’s output is added to the conversation
Advisor Budget
Themax_advisor_uses parameter controls how many times the advisor is consulted:
Multi-Turn Execution
Whenmax_loops > 1, the executor runs multiple turns. Each turn, it reads the full conversation — including its own previous output and any advisor guidance — so it can build on prior work. The advisor’s budget is distributed across turns: it is consulted before each executor turn until the budget is exhausted.