Swarms are used to orchestrate your agent across multiple games simultaneously. Each swarm:
  • Creates one agent instance per game
  • Runs all agents concurrently using threads
  • Automatically manages scorecard opening and closing
  • Handles cleanup when all agents complete
  • Provides a link to view replay online

Running the Agent Swarm

The agent swarm is executed through main.py, which manages agent execution across multiple games with automatic scorecard tracking.

Swarm Command

uv run main.py --agent <agent_name> [--game <game_filter>] [--tags <tag_list>]

CLI Arguments

ArgumentShortRequiredDescription
--agent-aYesChoose which agent to run. Available agents can be found in the agents/ directory.
--game-gNoFilter games by ID prefix. Can be comma-separated for multiple filters (e.g., ls20,ft09). If not specified, the agent plays all available games.
--tags-tNoComma-separated list of tags for the scorecard (e.g., experiment,v1.0). Tags help categorize and track different agent runs. Helpful when you want to compare different agents. Tags will be recorded on your scorecards.

Examples

# Run the random agent on all games
uv run main.py --agent=random

# Run an LLM agent on only the ls20 game
uv run main.py --agent=llm --game=ls20

# Run with custom tags for tracking
uv run main.py --agent=llm --tags="experiment,gpt-4,baseline"

# Run against an explicit list of games
uv run main.py --agent=random --game="ls20,ft09"