Skip to main content

Swarm Agents

swarm-agents is a standalone Python package for building LLM agents with:

  • provider-agnostic model routing
  • function/tool execution
  • lifecycle hooks
  • input/output guardrails
  • streaming dialogue execution
  • autonomous batch execution

The import path is swarm.

Package Docs

Releases

Versions are derived from Git tags. A pushed vX.Y.Z tag creates:

  • a GitHub Release with generated notes and attached build artifacts
  • a PyPI publish job via Trusted Publishing

Install

Base package:

pip install swarm-agents

With optional image helpers:

pip install "swarm-agents[image]"

From Git:

pip install "swarm-agents[dev] @ git+ssh://git@github.com/logarith-ms/swarm-agents.git@vX.Y.Z"

PyPI is the primary distribution channel. Git installs remain useful for pinned previews or local validation.

Quick Start

Swarm is the beginner-facing entry point. It handles provider configuration and model-router wiring for you.

from swarm import Agent, Swarm

client = Swarm()  # loads config from environment via ConfigLoader.load()

agent = Agent(
    name="Assistant",
    model="openai/gpt-4o",
    instructions="You are a helpful assistant.",
)

async for chunk in client.run_streamed(
    agent,
    deps=your_context,
    stream_manager=your_stream_manager,
    message_store=your_message_store,
    retry_policy=your_retry_policy,
    max_turns=10,
):
    print(chunk)

Batch execution:

from swarm import Agent, Swarm

client = Swarm(
    config={
        "openai_api_key": "...",
        "openai_organization": "...",
        "openai_project": "...",
        "anthropic_api_key": "...",
        "google_api_key": "...",
        "vertex_project": "...",
        "vertex_location": "us-east1",
    }
)

agent = Agent(
    name="Planner",
    model="openai/gpt-4o",
    instructions="Work through the task step by step.",
)

result = await client.run(
    agent,
    deps=your_context,
    stream_manager=your_stream_manager,
    message_store=your_message_store,
    retry_policy=your_retry_policy,
    max_turns=5,
)
print(result.signal)

What The Facade Does

Swarm(...) removes only the provider/router wiring:

  • ConfigLoader.load()
  • ProviderFactory(config=...)
  • ModelRouter(factory=...)
  • RunContext(..., router=...)

You still provide implementations for the runtime protocols:

  • ContextProtocol
  • StreamManagerProtocol
  • MessageStoreProtocol
  • optionally RetryPolicyProtocol

Those implementations are application-specific and are intentionally not bundled as defaults in this package.

Model Fallback

Agent.model supports either:

  • a single model string
  • a list of models in fallback order

Example:

from swarm import Agent

agent = Agent(
    name="FallbackAgent",
    model=[
        "openai/gpt-4o",
        "anthropic/claude-3-5-sonnet",
        "google/gemini-2.0-flash",
    ],
    instructions="Try providers in order until one succeeds.",
)

The router will try each model in sequence until one succeeds or all fail.

Provider Configuration

ConfigLoader.load() reads these environment variables and maps them to the config keys expected by ProviderFactory:

  • OPENAI_API_KEY
  • OPENAI_ORGANIZATION
  • OPENAI_PROJECT
  • ANTHROPIC_API_KEY
  • GOOGLE_API_KEY
  • VERTEX_PROJECT_ID -> vertex_project
  • VERTEX_LOCATION -> vertex_location

Advanced / Explicit Wiring

If you want full control, keep using the manual path directly:

from swarm import Agent, ConfigLoader, Runner, ModelRouter, ProviderFactory
from swarm.context import RunContext

config = ConfigLoader.load()
router = ModelRouter(factory=ProviderFactory(config=config))

agent = Agent(
    name="Assistant",
    model="openai/gpt-4o",
    instructions="You are a helpful assistant.",
)

run_context = RunContext(
    deps=your_context,
    stream_manager=your_stream_manager,
    message_store=your_message_store,
    router=router,
    retry_policy=your_retry_policy,
)

runner = Runner()
async for chunk in runner.run_streamed(agent=agent, run_context=run_context, max_turns=10):
    print(chunk)

Optional Image Support

swarm.util.image_to_base64(...) is available behind the image extra.

If you call it without installing the extra, it raises an ImportError with the install command:

pip install "swarm-agents[image]"

Hooks And Guardrails

  • Hooks are observational and never alter execution flow.
  • Input guardrails run before the first LLM call.
  • Output guardrails are blocking in Runner and advisory in Runner.

See:

  • swarm.hooks
  • swarm.guardrails
  • swarm.runners.runner
  • swarm.runners.runner

Development

pip install -e ".[dev]"
ruff format --check .
ruff check .
mypy swarm
pytest tests -q
python -m build

Maintainer Release Flow

  1. Merge conventional commits to main.
  2. Wait for CI to pass and Auto Tag to create the next semantic vX.Y.Z tag.
  3. The pushed tag triggers both:
    • Release for the GitHub Release page and attached wheel/sdist
    • Publish PyPI for Trusted Publishing to PyPI
  4. Verify the new version on:
    • https://github.com/logarith-ms/swarm-agents/releases
    • https://pypi.org/project/swarm-agents/

Notes

  • swarm_task/ is intentionally not part of this package.
  • swarm/ERROR_HANDLING.md is intentionally not promoted into the package root.

Metadata

Release files for swarm-agents 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for swarm-agents 0.4.2
File Size Uploaded
swarm_agents-0.4.2.tar.gz 169.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for swarm-agents 0.4.2
File Interpreter ABI Platform
swarm_agents-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 287.4 kB

Release files / swarm_agents-0.4.2.tar.gz

Download URL swarm_agents-0.4.2.tar.gz
Size 169.5 kB
Tags Source
SHA-256 checksum
How to use checksums
32e79b973b1f8d2646632117ef541815bc101f8efa012e55cc9364b5096b4282
BLAKE2b-256 checksum
How to use checksums
7abab9133f5c35bd9992651a112762a69f3a4dd61943740e3117fdf5b7eec685
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release files / swarm_agents-0.4.2-py3-none-any.whl

Download URL swarm_agents-0.4.2-py3-none-any.whl
Size 117.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9de074c83e2cb58c4dadd3d27dc7d1b3a2ea22cb6cc92d7799ec61f913b3bdf7
BLAKE2b-256 checksum
How to use checksums
e4d8c3f688c93a46d8c996cb812c2a298ff56d942cf40f4a81c1d2b4bc64698f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

This release

0.4.2 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.5

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page