From 80490b6c08e981b580ff31f050d29363a758efc4 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 12 Oct 2024 23:30:28 -0400 Subject: [PATCH] [README] --- docs/swarms/install/quickstart.md | 46 ------------------- .../agents/agents_from_yaml_example.py | 0 .../swarms/forest/forest_swarm_example.py | 0 .../swarms/mixture_of_agents/moa_example.py | 0 new_swarms_docs.md | 45 ------------------ 5 files changed, 91 deletions(-) rename agents_from_yaml_example.py => examples/agents/agents_from_yaml_example.py (100%) rename forest_swarm_example.py => examples/structs/swarms/forest/forest_swarm_example.py (100%) rename moa_example.py => examples/structs/swarms/mixture_of_agents/moa_example.py (100%) delete mode 100644 new_swarms_docs.md diff --git a/docs/swarms/install/quickstart.md b/docs/swarms/install/quickstart.md index 8d11d4d3..c5832ebf 100644 --- a/docs/swarms/install/quickstart.md +++ b/docs/swarms/install/quickstart.md @@ -368,52 +368,6 @@ print(output) --- -### 3. **Graph Workflow** - -**Overview**: `GraphWorkflow` allows agents to work in a graph-based architecture, where agents or tasks can be connected in any manner—both sequentially and concurrently. - -#### Mermaid Graph: - -```mermaid -graph TD; - A[Agent 1] --> D[Task 1]; - B[Agent 2] --> D[Task 1]; - D --> E[Task Completed]; -``` - -#### Code Example: - -```python -from swarms import Agent, Edge, GraphWorkflow, Node, NodeType -from swarm_models import OpenAIChat -import os - -# Initialize agents -agent1 = Agent(llm=OpenAIChat(openai_api_key=os.getenv("OPENAI_API_KEY"), max_tokens=4000), max_loops=1) -agent2 = Agent(llm=OpenAIChat(openai_api_key=os.getenv("OPENAI_API_KEY"), max_tokens=4000), max_loops=1) - -def sample_task(): - return "Task completed" - -# Create the graph workflow -wf_graph = GraphWorkflow() -wf_graph.add_node(Node(id="agent1", type=NodeType.AGENT, agent=agent1)) -wf_graph.add_node(Node(id="agent2", type=NodeType.AGENT, agent=agent2)) -wf_graph.add_node(Node(id="task1", type=NodeType.TASK, callable=sample_task)) - -# Define the flow of the graph -wf_graph.add_edge(Edge(source="agent1", target="task1")) -wf_graph.add_edge(Edge(source="agent2", target="task1")) - -# Set entry and end points -wf_graph.set_entry_points(["agent1", "agent2"]) -wf_graph.set_end_points(["task1"]) - -# Run the workflow -results = wf_graph.run() -print("Execution results:", results) -``` - --- ### 4. **Mixture of Agents** diff --git a/agents_from_yaml_example.py b/examples/agents/agents_from_yaml_example.py similarity index 100% rename from agents_from_yaml_example.py rename to examples/agents/agents_from_yaml_example.py diff --git a/forest_swarm_example.py b/examples/structs/swarms/forest/forest_swarm_example.py similarity index 100% rename from forest_swarm_example.py rename to examples/structs/swarms/forest/forest_swarm_example.py diff --git a/moa_example.py b/examples/structs/swarms/mixture_of_agents/moa_example.py similarity index 100% rename from moa_example.py rename to examples/structs/swarms/mixture_of_agents/moa_example.py diff --git a/new_swarms_docs.md b/new_swarms_docs.md deleted file mode 100644 index 91f9419a..00000000 --- a/new_swarms_docs.md +++ /dev/null @@ -1,45 +0,0 @@ - -# Multi-Agent Orchestration: -Swarms was designed to facilitate the communication between many different and specialized agents from a vast array of other frameworks such as langchain, autogen, crew, and more. - -In traditional swarm theory, there are many types of swarms usually for very specialized use-cases and problem sets. Such as Hiearchical and sequential are great for accounting and sales, because there is usually a boss coordinator agent that distributes a workload to other specialized agents. - - - -| **Name** | **Description** | **Code Link** | **Use Cases** | -|-------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| -| Hierarchical Swarms | A system where agents are organized in a hierarchy, with higher-level agents coordinating lower-level agents to achieve complex tasks. | [Code Link](https://docs.swarms.world/en/latest/swarms/concept/swarm_architectures/#hierarchical-swarm) | Manufacturing process optimization, multi-level sales management, healthcare resource coordination | -| Agent Rearrange | A setup where agents rearrange themselves dynamically based on the task requirements and environmental conditions. | [Code Link](https://docs.swarms.world/en/latest/swarms/structs/agent_rearrange/) | Adaptive manufacturing lines, dynamic sales territory realignment, flexible healthcare staffing | -| Concurrent Workflows | Agents perform different tasks simultaneously, coordinating to complete a larger goal. | [Code Link](https://docs.swarms.world/en/latest/swarms/concept/swarm_architectures/#concurrent-workflows) | Concurrent production lines, parallel sales operations, simultaneous patient care processes | -| Sequential Coordination | Agents perform tasks in a specific sequence, where the completion of one task triggers the start of the next. | [Code Link](https://docs.swarms.world/en/latest/swarms/structs/sequential_workflow/) | Step-by-step assembly lines, sequential sales processes, stepwise patient treatment workflows | -| Parallel Processing | Agents work on different parts of a task simultaneously to speed up the overall process. | [Code Link](https://docs.swarms.world/en/latest/swarms/concept/swarm_architectures/#parallel-processing) | Parallel data processing in manufacturing, simultaneous sales analytics, concurrent medical tests | -| Mixture of Agents | A heterogeneous swarm where agents with different capabilities are combined to solve complex problems. | [Code Link](https://docs.swarms.world/en/latest/swarms/structs/moa/) | Financial forecasting, complex problem-solving requiring diverse skills | -| Graph Workflow | Agents collaborate in a directed acyclic graph (DAG) format to manage dependencies and parallel tasks. | [Code Link](https://docs.swarms.world/en/latest/swarms/structs/graph_workflow/) | AI-driven software development pipelines, complex project management | -| Group Chat | Agents engage in a chat-like interaction to reach decisions collaboratively. | [Code Link](https://docs.swarms.world/en/latest/swarms/structs/group_chat/) | Real-time collaborative decision-making, contract negotiations | -| Agent Registry | A centralized registry where agents are stored, retrieved, and invoked dynamically. | [Code Link](https://docs.swarms.world/en/latest/swarms/structs/agent_registry/) | Dynamic agent management, evolving recommendation engines | -| Spreadsheet Swarm | Manages tasks at scale, tracking agent outputs in a structured format like CSV files. | [Code Link](https://docs.swarms.world/en/latest/swarms/structs/spreadsheet_swarm/) | Large-scale marketing analytics, financial audits | -| Forest Swarm | A swarm structure that organizes agents in a tree-like hierarchy for complex decision-making processes. | [Code Link](https://docs.swarms.world/en/latest/swarms/structs/forest_swarm/) | Multi-stage workflows, hierarchical reinforcement learning | - - -## Understanding Swarms - -### What is a Swarm? - -A swarm, in the context of multi-agent systems, refers to a group of more than two agents working collaboratively to achieve a common goal. These agents can be software entities, such as llms that interact with each other to perform complex tasks. The concept of a swarm is inspired by natural systems like ant colonies or bird flocks, where simple individual behaviors lead to complex group dynamics and problem-solving capabilities. - -### How Swarm Architectures Facilitate Communication - -Swarm architectures are designed to establish and manage communication between agents within a swarm. These architectures define how agents interact, share information, and coordinate their actions to achieve the desired outcomes. Here are some key aspects of swarm architectures: - -1. **Hierarchical Communication**: In hierarchical swarms, communication flows from higher-level agents to lower-level agents. Higher-level agents act as coordinators, distributing tasks and aggregating results. This structure is efficient for tasks that require top-down control and decision-making. - -2. **Parallel Communication**: In parallel swarms, agents operate independently and communicate with each other as needed. This architecture is suitable for tasks that can be processed concurrently without dependencies, allowing for faster execution and scalability. - -3. **Sequential Communication**: Sequential swarms process tasks in a linear order, where each agent's output becomes the input for the next agent. This ensures that tasks with dependencies are handled in the correct sequence, maintaining the integrity of the workflow. - -4. **Mesh Communication**: In mesh swarms, agents are fully connected, allowing any agent to communicate with any other agent. This setup provides high flexibility and redundancy, making it ideal for complex systems requiring dynamic interactions. - -5. **Federated Communication**: Federated swarms involve multiple independent swarms that collaborate by sharing information and results. Each swarm operates autonomously but can contribute to a larger task, enabling distributed problem-solving across different nodes. - -Swarm architectures leverage these communication patterns to ensure that agents work together efficiently, adapting to the specific requirements of the task at hand. By defining clear communication protocols and interaction models, swarm architectures enable the seamless orchestration of multiple agents, leading to enhanced performance and problem-solving capabilities. -