Orchestrate Swarms of Agents From Any Framework Like OpenAI, Langchain, and Etc for Real World Workflow Automation. Join our Community: https://discord.gg/DbjBMJTSWD
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Kye Gomez 1bf76f2546
readme
9 hours ago
.github Merge pull request #871 from kyegomez/dependabot/github_actions/aquasecurity/trivy-action-0.31.0 3 weeks ago
docs readme and feature docs 12 hours ago
examples model providers in swarms examples 1 day ago
images [5.4.8] 11 months ago
scripts [feats][swarms.communication] + [docs][cleanup] + [tests][cleanup and swarms.communication] 1 month ago
swarms model providers in swarms examples 1 day ago
tests [DOCS][ interactive groupchat examples] 2 weeks ago
.dockerignore [DOCKER] 6 months ago
.env.example [7.6.3] -- [FEAT][Agent.run() acceleration] [FIX][Groupchat] 3 months ago
.gitignore [FEAT][InteractiveGroupChat] + [Swarms Examples][index.md] 3 weeks ago
CITATION.cff Update CITATION.cff 2 weeks ago
CODE_OF_CONDUCT.md [5.4.8] 11 months ago
CONTRIBUTING.md docs, contributing.md, multi tool mcp execution, and more 6 days ago
Dockerfile Update Dockerfile 3 months ago
LICENSE Update LICENSE 5 months ago
README.md readme 9 hours ago
SECURITY.md new agent tests 4 weeks ago
example.py docs, contributing.md, multi tool mcp execution, and more 6 days ago
pyproject.toml feat -- multiple image processing in agent.py 6 days ago
requirements.txt add numpy to requirements 4 weeks ago
stream_example.py readme 13 hours ago
swarms_logo_new.png swarms logo 4 months ago
swarms_logo_svg.svg Add files via upload 4 months ago

README.md

The Enterprise-Grade Production-Ready Multi-Agent Orchestration Framework

Python Version

🐦 Twitter   •   📢 Discord   •   Swarms Website   •   📙 Documentation   •   Swarms Marketplace

Discord YouTube LinkedIn X.com

GitHub issues GitHub forks GitHub stars GitHub license GitHub star chart Dependency Status Downloads

Share on Twitter Share on Facebook Share on LinkedIn

Share on Reddit Share on Hacker News Share on Pinterest Share on WhatsApp

Features

Swarms delivers a comprehensive, enterprise-grade multi-agent infrastructure platform designed for production-scale deployments and seamless integration with existing systems. Learn more about the swarms feature set here

Category Features Benefits
🏢 Enterprise Architecture • Production-Ready Infrastructure
• High Availability Systems
• Modular Microservices Design
• Comprehensive Observability
• Backwards Compatibility
• 99.9%+ Uptime Guarantee
• Reduced Operational Overhead
• Seamless Legacy Integration
• Enhanced System Monitoring
• Risk-Free Migration Path
🤖 Multi-Agent Orchestration • Hierarchical Agent Swarms
• Parallel Processing Pipelines
• Sequential Workflow Orchestration
• Graph-Based Agent Networks
• Dynamic Agent Composition
• Agent Registry Management
• Complex Business Process Automation
• Scalable Task Distribution
• Flexible Workflow Adaptation
• Optimized Resource Utilization
• Centralized Agent Governance
• Enterprise-Grade Agent Lifecycle Management
🔄 Enterprise Integration • Multi-Model Provider Support
• Custom Agent Development Framework
• Extensive Enterprise Tool Library
• Multiple Memory Systems
• Backwards Compatibility with LangChain, AutoGen, CrewAI
• Standardized API Interfaces
• Vendor-Agnostic Architecture
• Custom Solution Development
• Extended Functionality Integration
• Enhanced Knowledge Management
• Seamless Framework Migration
• Reduced Integration Complexity
📈 Enterprise Scalability • Concurrent Multi-Agent Processing
• Intelligent Resource Management
• Load Balancing & Auto-Scaling
• Horizontal Scaling Capabilities
• Performance Optimization
• Capacity Planning Tools
• High-Throughput Processing
• Cost-Effective Resource Utilization
• Elastic Scaling Based on Demand
• Linear Performance Scaling
• Optimized Response Times
• Predictable Growth Planning
🛠️ Developer Experience • Intuitive Enterprise API
• Comprehensive Documentation
• Active Enterprise Community
• CLI & SDK Tools
• IDE Integration Support
• Code Generation Templates
• Accelerated Development Cycles
• Reduced Learning Curve
• Expert Community Support
• Rapid Deployment Capabilities
• Enhanced Developer Productivity
• Standardized Development Patterns

Install 💻

Using pip

$ pip3 install -U swarms

uv is a fast Python package installer and resolver, written in Rust.

# Install uv
$ curl -LsSf https://astral.sh/uv/install.sh | sh

# Install swarms using uv
$ uv pip install swarms

Using poetry

# Install poetry if you haven't already
$ curl -sSL https://install.python-poetry.org | python3 -

# Add swarms to your project
$ poetry add swarms

From source

# Clone the repository
$ git clone https://github.com/kyegomez/swarms.git
$ cd swarms

# Install with pip
$ pip install -e .

Environment Configuration

Learn more about the environment configuration here

OPENAI_API_KEY=""
WORKSPACE_DIR="agent_workspace"
ANTHROPIC_API_KEY=""
GROQ_API_KEY=""

🤖 Your First Agent

An Agent is the fundamental building block of a swarm—an autonomous entity powered by an LLM + Tools + Memory. Learn more Here

from swarms import Agent

# Initialize a new agent
agent = Agent(
    model_name="gpt-4o-mini", # Specify the LLM
    max_loops=1,              # Set the number of interactions
    interactive=True,         # Enable interactive mode for real-time feedback
)

# Run the agent with a task
agent.run("What are the key benefits of using a multi-agent system?")

🤝 Your First Swarm: Multi-Agent Collaboration

A Swarm consists of multiple agents working together. This simple example creates a two-agent workflow for researching and writing a blog post. Learn More About SequentialWorkflow

from swarms import Agent, SequentialWorkflow

# Agent 1: The Researcher
researcher = Agent(
    agent_name="Researcher",
    system_prompt="Your job is to research the provided topic and provide a detailed summary.",
    model_name="gpt-4o-mini",
)

# Agent 2: The Writer
writer = Agent(
    agent_name="Writer",
    system_prompt="Your job is to take the research summary and write a beautiful, engaging blog post about it.",
    model_name="gpt-4o-mini",
)

# Create a sequential workflow where the researcher's output feeds into the writer's input
workflow = SequentialWorkflow(agents=[researcher, writer])

# Run the workflow on a task
final_post = workflow.run("The history and future of artificial intelligence")
print(final_post)


🏗️ Multi-Agent Architectures For Production Deployments

swarms provides a variety of powerful, pre-built multi-agent architectures enabling you to orchestrate agents in various ways. Choose the right structure for your specific problem to build efficient and reliable production systems.

Architecture Description Best For
SequentialWorkflow Agents execute tasks in a linear chain; one agent's output is the next one's input. Step-by-step processes like data transformation pipelines, report generation.
ConcurrentWorkflow Agents run tasks simultaneously for maximum efficiency. High-throughput tasks like batch processing, parallel data analysis.
AgentRearrange Dynamically maps complex relationships (e.g., a -> b, c) between agents. Flexible and adaptive workflows, task distribution, dynamic routing.
GraphWorkflow Orchestrates agents as nodes in a Directed Acyclic Graph (DAG). Complex projects with intricate dependencies, like software builds.
MixtureOfAgents (MoA) Utilizes multiple expert agents in parallel and synthesizes their outputs. Complex problem-solving, achieving state-of-the-art performance through collaboration.
GroupChat Agents collaborate and make decisions through a conversational interface. Real-time collaborative decision-making, negotiations, brainstorming.
ForestSwarm Dynamically selects the most suitable agent or tree of agents for a given task. Task routing, optimizing for expertise, complex decision-making trees.
SpreadSheetSwarm Manages thousands of agents concurrently, tracking tasks and outputs in a structured format. Massive-scale parallel operations, large-scale data generation and analysis.
SwarmRouter Universal orchestrator that provides a single interface to run any type of swarm with dynamic selection. Simplifying complex workflows, switching between swarm strategies, unified multi-agent management.

SequentialWorkflow

A SequentialWorkflow executes tasks in a strict order, forming a pipeline where each agent builds upon the work of the previous one. SequentialWorkflow is Ideal for processes that have clear, ordered steps. This ensures that tasks with dependencies are handled correctly.

from swarms import Agent, SequentialWorkflow

# Initialize agents for a 3-step process
# 1. Generate an idea
idea_generator = Agent(agent_name="IdeaGenerator", system_prompt="Generate a unique startup idea.", model_name="gpt-4o-mini")
# 2. Validate the idea
validator = Agent(agent_name="Validator", system_prompt="Take this startup idea and analyze its market viability.", model_name="gpt-4o-mini")
# 3. Create a pitch
pitch_creator = Agent(agent_name="PitchCreator", system_prompt="Write a 3-sentence elevator pitch for this validated startup idea.", model_name="gpt-4o-mini")

# Create the sequential workflow
workflow = SequentialWorkflow(agents=[idea_generator, validator, pitch_creator])

# Run the workflow
elevator_pitch = workflow.run()
print(elevator_pitch)

ConcurrentWorkflow (with SpreadSheetSwarm)

A concurrent workflow runs multiple agents simultaneously. SpreadSheetSwarm is a powerful implementation that can manage thousands of concurrent agents and log their outputs to a CSV file. Use this architecture for high-throughput tasks that can be performed in parallel, drastically reducing execution time.

from swarms import Agent, SpreadSheetSwarm

# Define a list of tasks (e.g., social media posts to generate)
platforms = ["Twitter", "LinkedIn", "Instagram"]

# Create an agent for each task
agents = [
    Agent(
        agent_name=f"{platform}-Marketer",
        system_prompt=f"Generate a real estate marketing post for {platform}.",
        model_name="gpt-4o-mini",
    )
    for platform in platforms
]

# Initialize the swarm to run these agents concurrently
swarm = SpreadSheetSwarm(
    agents=agents,
    autosave_on=True,
    save_file_path="marketing_posts.csv",
)

# Run the swarm with a single, shared task description
property_description = "A beautiful 3-bedroom house in sunny California."
swarm.run(task=f"Generate a post about: {property_description}")
# Check marketing_posts.csv for the results!

AgentRearrange

Inspired by einsum, AgentRearrange lets you define complex, non-linear relationships between agents using a simple string-based syntax. Learn more. This architecture is Perfect for orchestrating dynamic workflows where agents might work in parallel, sequence, or a combination of both.

from swarms import Agent, AgentRearrange

# Define agents
researcher = Agent(agent_name="researcher", model_name="gpt-4o-mini")
writer = Agent(agent_name="writer", model_name="gpt-4o-mini")
editor = Agent(agent_name="editor", model_name="gpt-4o-mini")

# Define a flow: researcher sends work to both writer and editor simultaneously
# This is a one-to-many relationship
flow = "researcher -> writer, editor"

# Create the rearrangement system
rearrange_system = AgentRearrange(
    agents=[researcher, writer, editor],
    flow=flow,
)

# Run the system
# The researcher will generate content, and then both the writer and editor
# will process that content in parallel.
outputs = rearrange_system.run("Analyze the impact of AI on modern cinema.")
print(outputs)

SwarmRouter: The Universal Swarm Orchestrator

The SwarmRouter simplifies building complex workflows by providing a single interface to run any type of swarm. Instead of importing and managing different swarm classes, you can dynamically select the one you need just by changing the swarm_type parameter. Read the full documentation

This makes your code cleaner and more flexible, allowing you to switch between different multi-agent strategies with ease. Here's a complete example that shows how to define agents and then use SwarmRouter to execute the same task using different collaborative strategies.

from swarms import Agent
from swarms.structs.swarm_router import SwarmRouter, SwarmType

# Define a few generic agents
writer = Agent(agent_name="Writer", system_prompt="You are a creative writer.", model_name="gpt-4o-mini")
editor = Agent(agent_name="Editor", system_prompt="You are an expert editor for stories.", model_name="gpt-4o-mini")
reviewer = Agent(agent_name="Reviewer", system_prompt="You are a final reviewer who gives a score.", model_name="gpt-4o-mini")

# The agents and task will be the same for all examples
agents = [writer, editor, reviewer]
task = "Write a short story about a robot who discovers music."

# --- Example 1: SequentialWorkflow ---
# Agents run one after another in a chain: Writer -> Editor -> Reviewer.
print("Running a Sequential Workflow...")
sequential_router = SwarmRouter(swarm_type=SwarmType.SequentialWorkflow, agents=agents)
sequential_output = sequential_router.run(task)
print(f"Final Sequential Output:\n{sequential_output}\n")

# --- Example 2: ConcurrentWorkflow ---
# All agents receive the same initial task and run at the same time.
print("Running a Concurrent Workflow...")
concurrent_router = SwarmRouter(swarm_type=SwarmType.ConcurrentWorkflow, agents=agents)
concurrent_outputs = concurrent_router.run(task)
# This returns a dictionary of each agent's output
for agent_name, output in concurrent_outputs.items():
    print(f"Output from {agent_name}:\n{output}\n")

# --- Example 3: MixtureOfAgents ---
# All agents run in parallel, and a special 'aggregator' agent synthesizes their outputs.
print("Running a Mixture of Agents Workflow...")
aggregator = Agent(
    agent_name="Aggregator",
    system_prompt="Combine the story, edits, and review into a final document.",
    model_name="gpt-4o-mini"
)
moa_router = SwarmRouter(
    swarm_type=SwarmType.MixtureOfAgents,
    agents=agents,
    aggregator_agent=aggregator, # MoA requires an aggregator
)
aggregated_output = moa_router.run(task)
print(f"Final Aggregated Output:\n{aggregated_output}\n")

The SwarmRouter is a powerful tool for simplifying multi-agent orchestration. It provides a consistent and flexible way to deploy different collaborative strategies, allowing you to build more sophisticated applications with less code.


MixtureOfAgents (MoA)

The MixtureOfAgents architecture processes tasks by feeding them to multiple "expert" agents in parallel. Their diverse outputs are then synthesized by an aggregator agent to produce a final, high-quality result. Learn more here

from swarms import Agent, MixtureOfAgents

# Define expert agents
financial_analyst = Agent(agent_name="FinancialAnalyst", system_prompt="Analyze financial data.", model_name="gpt-4o-mini")
market_analyst = Agent(agent_name="MarketAnalyst", system_prompt="Analyze market trends.", model_name="gpt-4o-mini")
risk_analyst = Agent(agent_name="RiskAnalyst", system_prompt="Analyze investment risks.", model_name="gpt-4o-mini")

# Define the aggregator agent
aggregator = Agent(
    agent_name="InvestmentAdvisor",
    system_prompt="Synthesize the financial, market, and risk analyses to provide a final investment recommendation.",
    model_name="gpt-4o-mini"
)

# Create the MoA swarm
moa_swarm = MixtureOfAgents(
    agents=[financial_analyst, market_analyst, risk_analyst],
    aggregator_agent=aggregator,
)

# Run the swarm
recommendation = moa_swarm.run("Should we invest in NVIDIA stock right now?")
print(recommendation)

GroupChat

GroupChat creates a conversational environment where multiple agents can interact, discuss, and collaboratively solve a problem. You can define the speaking order or let it be determined dynamically. This architecture is ideal for tasks that benefit from debate and multi-perspective reasoning, such as contract negotiation, brainstorming, or complex decision-making.

from swarms import Agent, GroupChat

# Define agents for a debate
tech_optimist = Agent(agent_name="TechOptimist", system_prompt="Argue for the benefits of AI in society.", model_name="gpt-4o-mini")
tech_critic = Agent(agent_name="TechCritic", system_prompt="Argue against the unchecked advancement of AI.", model_name="gpt-4o-mini")

# Create the group chat
chat = GroupChat(
    agents=[tech_optimist, tech_critic],
    max_loops=4, # Limit the number of turns in the conversation
)

# Run the chat with an initial topic
conversation_history = chat.run(
    "Let's discuss the societal impact of artificial intelligence."
)

# Print the full conversation
for message in conversation_history:
    print(f"[{message['agent_name']}]: {message['content']}")

Documentation

Documentation is located here at: docs.swarms.world


Guides and Walkthroughs

Here are quick reference guides on how to get started with swarms.

Section Description Links
Installation Complete setup guide for Swarms in your environment Installation
Quickstart Get up and running with your first swarm in minutes Get Started
Agent Internal Mechanisms Deep dive into how agents work internally Agent Architecture
Agent API Complete reference for the Agent class and its methods Agent API
Integrating External Agents Connect Swarms with other AI frameworks like Griptape and Autogen Integrating External APIs
Creating Agents from YAML Define and configure agents using YAML configuration files Creating Agents from YAML
Why You Need Swarms Understanding the benefits of multi-agent collaboration Why Multi-Agent Collaboration is Necessary
Multi-Agent Architectures Analysis Comprehensive analysis of different swarm patterns and architectures Multi-Agent Architectures
Choosing the Right Swarm Guide to selecting the optimal swarm architecture for your specific business needs Business Problem Guide
AgentRearrange Docs Documentation for dynamic agent rearrangement and workflow optimization AgentRearrange API

🫶 Contribute to Swarms

Swarms is built by the community, for the community. We believe that collaborative development is the key to pushing the boundaries of what's possible with multi-agent AI. Your contributions are not only welcome—they are essential to our mission. Learn more about why you should contribute to swarms

Why Contribute?

By joining us, you have the opportunity to:

  • 🚀 Work on the Frontier of agents: Shape the future of autonomous agent technology and help build a production-grade, open-source framework.

  • 🤝 Join a Vibrant Community: Collaborate with a passionate and growing group of agent developers, researchers, and AI enthusiasts.

  • 🛠️ Make a Tangible Impact: Whether you're fixing a bug, adding a new feature, or improving documentation, your work will be used in real-world applications.

  • 📚 Learn and Grow: Gain hands-on experience with advanced AI concepts and strengthen your software engineering skills.

Discover more about our mission and the benefits of becoming a contributor in our official Contributor's Guide.

How to Get Started

We've made it easy to start contributing. Here's how you can help:

  1. Find an Issue to Tackle: The best way to begin is by visiting our contributing project board. Look for issues tagged with good first issue—these are specifically selected for new contributors.

  2. Report a Bug or Request a Feature: Have a new idea or found something that isn't working right? We'd love to hear from you. Please file a Bug Report or Feature Request on our GitHub Issues page.

  3. Understand Our Workflow and Standards: Before submitting your work, please review our complete Contribution Guidelines. To help maintain code quality, we also encourage you to read our guide on Code Cleanliness.

  4. Join the Discussion: To participate in roadmap discussions and connect with other developers, join our community on Discord.

Our Valued Contributors

Thank you for contributing to swarms. Your work is extremely appreciated and recognized.


Connect With Us

Join our community of agent engineers and researchers for technical support, cutting-edge updates, and exclusive access to world-class agent engineering insights!

Platform Description Link
📚 Documentation Official documentation and guides docs.swarms.world
📝 Blog Latest updates and technical articles Medium
💬 Discord Live chat and community support Join Discord
🐦 Twitter Latest news and announcements @kyegomez
👥 LinkedIn Professional network and updates The Swarm Corporation
📺 YouTube Tutorials and demos Swarms Channel
🎫 Events Join our community events Sign up here
🚀 Onboarding Session Get onboarded with Kye Gomez, creator and lead maintainer of Swarms Book Session

Citation

If you use swarms in your research, please cite the project by referencing the metadata in CITATION.cff.

@misc{SWARMS_2022,
  author  = {Gomez, Kye and Pliny and More, Harshal and Swarms Community},
  title   = {{Swarms: Production-Grade Multi-Agent Infrastructure Platform}},
  year    = {2022},
  howpublished = {\url{https://github.com/kyegomez/swarms}},
  note    = {Documentation available at \url{https://docs.swarms.world}},
  version = {latest}
}

License

APACHE