Merge pull request #830 from ascender1729/feat/docs-update-concurrent-agents-api

Feat/docs update concurrent agents api
pull/831/head
Kye Gomez 1 week ago committed by GitHub
commit 0948fdff43
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -15,30 +15,14 @@ Swarms aims to be the definitive and most reliable multi-agent LLM framework, of
This example demonstrates a simple financial agent setup that responds to financial questions, such as establishing a ROTH IRA, using OpenAI's GPT-based model.
```python
import os
from swarms import Agent
from swarm_models import OpenAIChat
from swarms.prompts.finance_agent_sys_prompt import (
FINANCIAL_AGENT_SYS_PROMPT,
)
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Get OpenAI API key from environment
api_key = os.getenv("OPENAI_API_KEY")
from swarms.structs.agent import Agent
from swarms.prompts.finance_agent_sys_prompt import FINANCIAL_AGENT_SYS_PROMPT
# Initialize OpenAIChat model with desired parameters
model = OpenAIChat(
openai_api_key=api_key, model_name="gpt-4o-mini", temperature=0.1
)
# Initialize the Financial Analysis Agent
# Initialize the Financial Analysis Agent with GPT-4o-mini model
agent = Agent(
agent_name="Financial-Analysis-Agent",
system_prompt=FINANCIAL_AGENT_SYS_PROMPT,
llm=model,
model_name="gpt-4o-mini",
max_loops=1,
autosave=True,
dashboard=False,
@ -56,7 +40,7 @@ out = agent.run(
"How can I establish a ROTH IRA to buy stocks and get a tax break? What are the criteria?"
)
# Output the agent's result
# Output the result
print(out)
```
@ -64,66 +48,60 @@ print(out)
The following example showcases how to use the `AgentRearrange` class to manage a multi-agent system. It sets up a director agent to orchestrate two workers—one to generate a transcript and another to summarize it.
```python
from swarms import Agent, AgentRearrange
from swarm_models import Anthropic
from swarms.structs.agent import Agent
from swarms.structs.rearrange import AgentRearrange
# Initialize the Director agent
# Initialize the Director agent using Anthropic model via model_name
director = Agent(
agent_name="Director",
system_prompt="Directs the tasks for the workers",
llm=Anthropic(),
system_prompt="You are a Director agent. Your role is to coordinate and direct tasks for worker agents. Break down complex tasks into clear, actionable steps.",
model_name="claude-3-sonnet-20240229",
max_loops=1,
dashboard=False,
streaming_on=True,
streaming_on=False,
verbose=True,
stopping_token="<DONE>",
state_save_file_type="json",
saved_state_path="director.json",
)
# Initialize Worker 1 agent (transcript generation)
# Worker 1: transcript generation
worker1 = Agent(
agent_name="Worker1",
system_prompt="Generates a transcript for a YouTube video on what swarms are",
llm=Anthropic(),
system_prompt="You are a content creator agent. Your role is to generate detailed, engaging transcripts for YouTube videos about technical topics. Focus on clarity and educational value.",
model_name="claude-3-sonnet-20240229",
max_loops=1,
dashboard=False,
streaming_on=True,
streaming_on=False,
verbose=True,
stopping_token="<DONE>",
state_save_file_type="json",
saved_state_path="worker1.json",
)
# Initialize Worker 2 agent (summarizes transcript)
# Worker 2: summarization
worker2 = Agent(
agent_name="Worker2",
system_prompt="Summarizes the transcript generated by Worker1",
llm=Anthropic(),
system_prompt="You are a summarization agent. Your role is to create concise, clear summaries of technical content while maintaining key information and insights.",
model_name="claude-3-sonnet-20240229",
max_loops=1,
dashboard=False,
streaming_on=True,
streaming_on=False,
verbose=True,
stopping_token="<DONE>",
state_save_file_type="json",
saved_state_path="worker2.json",
)
# Create a list of agents
# Orchestrate the agents in sequence
agents = [director, worker1, worker2]
# Define the workflow pattern (sequential flow)
flow = "Director -> Worker1 -> Worker2"
# Using AgentRearrange to orchestrate the agents
agent_system = AgentRearrange(agents=agents, flow=flow)
# Running the system with a sample task
# Run the workflow
output = agent_system.run(
"Create a format to express and communicate swarms of LLMs in a structured manner for YouTube"
)
# Output the result
print(output)
```
@ -169,4 +147,3 @@ Swarms abstracts the complexity of managing multiple agents with orchestration t
### Conclusion:
Swarms is not just another multi-agent framework; it's built specifically for developers who need powerful tools to automate complex, large-scale business operations. With flexible architecture, deep integration capabilities, and developer-friendly APIs, Swarms is the ultimate solution for businesses looking to streamline operations and future-proof their workflows.

@ -70,51 +70,55 @@ The `create_agents_from_yaml` function works by reading agent configurations fro
```yaml
agents:
- agent_name: "Financial-Analysis-Agent"
model:
openai_api_key: "your_openai_api_key"
model_name: "gpt-4o-mini"
temperature: 0.1
max_tokens: 2000
system_prompt: "financial_agent_sys_prompt"
system_prompt: "You are a financial analysis expert. Analyze market trends and provide investment recommendations."
model_name: "claude-3-opus-20240229"
max_loops: 1
autosave: true
autosave: false
dashboard: false
verbose: true
dynamic_temperature_enabled: true
saved_state_path: "finance_agent.json"
verbose: false
dynamic_temperature_enabled: false
user_name: "swarms_corp"
retry_attempts: 1
context_length: 200000
return_step_meta: false
output_type: "str"
task: "How can I establish a ROTH IRA to buy stocks and get a tax break?"
- agent_name: "Stock-Analysis-Agent"
model:
openai_api_key: "your_openai_api_key"
model_name: "gpt-4o-mini"
temperature: 0.2
max_tokens: 1500
system_prompt: "stock_agent_sys_prompt"
max_loops: 2
autosave: true
temperature: 0.1
max_tokens: 2000
task: "Analyze tech stocks for 2024 investment strategy. Provide detailed analysis and recommendations."
- agent_name: "Risk-Analysis-Agent"
system_prompt: "You are a risk analysis expert. Evaluate investment risks and provide mitigation strategies."
model_name: "claude-3-opus-20240229"
max_loops: 1
autosave: false
dashboard: false
verbose: true
verbose: false
dynamic_temperature_enabled: false
saved_state_path: "stock_agent.json"
user_name: "stock_user"
retry_attempts: 3
user_name: "swarms_corp"
retry_attempts: 1
context_length: 150000
return_step_meta: true
output_type: "json"
task: "What is the best strategy for long-term stock investment?"
return_step_meta: false
output_type: "str"
temperature: 0.1
max_tokens: 2000
task: "Conduct a comprehensive risk analysis of the top 5 tech companies in 2024. Include risk factors and mitigation strategies."
swarm_architecture:
name: "Financial Analysis Swarm"
description: "A swarm for comprehensive financial and risk analysis"
max_loops: 1
swarm_type: "SequentialWorkflow"
task: "Analyze tech stocks and their associated risks for 2024 investment strategy"
autosave: false
return_json: true
```
### Key Configuration Fields:
- **agent_name**: Name of the agent.
- **model**: Defines the language model settings (e.g., API key, model name, temperature, and max tokens).
- **system_prompt**: The system prompt used to guide the agent's behavior.
- **task**: (Optional) Task for the agent to execute once created.
- **model_name**: The language model to use (e.g., claude-3-opus-20240229).
- **task**: Task for the agent to execute.
- **swarm_architecture**: (Optional) Configuration for swarm behavior.
---
@ -124,41 +128,15 @@ Now, create the main Python script that will use the `create_agents_from_yaml` f
### `main.py`:
```python
import os
from dotenv import load_dotenv
from loguru import logger
from swarm_models import OpenAIChat
from swarms.agents.create_agents_from_yaml import (
create_agents_from_yaml,
)
# Load environment variables
load_dotenv()
from swarms.agents.create_agents_from_yaml import create_agents_from_yaml
# Path to your YAML file
yaml_file = "agents.yaml"
# Get the OpenAI API key from the environment variable
api_key = os.getenv("OPENAI_API_KEY")
# Create an instance of the OpenAIChat class
model = OpenAIChat(
openai_api_key=api_key, model_name="gpt-4o-mini", temperature=0.1
# Create agents and get task results
task_results = create_agents_from_yaml(
yaml_file="agents_config.yaml",
return_type="run_swarm"
)
try:
# Create agents and run tasks (using 'both' to return agents and task results)
task_results = create_agents_from_yaml(
model=model, yaml_file=yaml_file, return_type="tasks"
)
logger.info(f"Results from agents: {task_results}")
except Exception as e:
logger.error(f"An error occurred: {e}")
print(task_results)
```
### Example Run:

@ -91,20 +91,19 @@ Runs multiple agents concurrently with timeout limits.
## Usage Examples
```python
from swarms import Agent, run_agents_concurrently, run_agents_with_timeout, run_agents_with_different_tasks
from swarm_models import OpenAIChat
model = OpenAIChat(
model_name="gpt-4o-mini",
temperature=0.0
from swarms.structs.agent import Agent
from swarms.structs.multi_agent_exec import (
run_agents_concurrently,
run_agents_with_timeout,
run_agents_with_different_tasks
)
# Initialize agents
# Initialize agents using only the built-in model_name parameter
agents = [
Agent(
agent_name=f"Analysis-Agent-{i}",
system_prompt="You are a financial analysis expert",
llm=model,
model_name="gpt-4o-mini",
max_loops=1
)
for i in range(5)

Loading…
Cancel
Save