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.
162 lines
4.9 KiB
162 lines
4.9 KiB
"""
|
|
SpreadSheetSwarm Usage Examples
|
|
==============================
|
|
|
|
This file demonstrates the two main ways to use SpreadSheetSwarm:
|
|
1. With pre-configured agents
|
|
2. With CSV configuration file
|
|
"""
|
|
|
|
from swarms import Agent
|
|
from swarms.structs.spreadsheet_swarm import SpreadSheetSwarm
|
|
|
|
|
|
def example_with_agents():
|
|
"""Example using pre-configured agents"""
|
|
print("=== Example 1: Using Pre-configured Agents ===")
|
|
|
|
# Create agents
|
|
agents = [
|
|
Agent(
|
|
agent_name="Writer-Agent",
|
|
agent_description="Creative writing specialist",
|
|
model_name="claude-sonnet-4-20250514",
|
|
dynamic_temperature_enabled=True,
|
|
max_loops=1,
|
|
streaming_on=False,
|
|
print_on=False,
|
|
),
|
|
Agent(
|
|
agent_name="Editor-Agent",
|
|
agent_description="Content editing and proofreading expert",
|
|
model_name="claude-sonnet-4-20250514",
|
|
dynamic_temperature_enabled=True,
|
|
max_loops=1,
|
|
streaming_on=False,
|
|
print_on=False,
|
|
),
|
|
]
|
|
|
|
# Create swarm with agents
|
|
swarm = SpreadSheetSwarm(
|
|
name="Content-Creation-Swarm",
|
|
description="A swarm for content creation and editing",
|
|
agents=agents,
|
|
autosave=True,
|
|
max_loops=1,
|
|
)
|
|
|
|
# Run with same task for all agents
|
|
result = swarm.run("Write a short story about AI and creativity")
|
|
|
|
print(f"Tasks completed: {result['tasks_completed']}")
|
|
print(f"Number of agents: {result['number_of_agents']}")
|
|
return result
|
|
|
|
|
|
def example_with_csv():
|
|
"""Example using CSV configuration"""
|
|
print("\n=== Example 2: Using CSV Configuration ===")
|
|
|
|
# Create CSV content
|
|
csv_content = """agent_name,description,system_prompt,task,model_name,max_loops,user_name
|
|
Writer-Agent,Creative writing specialist,You are a creative writer,Write a poem about technology,claude-sonnet-4-20250514,1,user
|
|
Editor-Agent,Content editing expert,You are an editor,Review and improve the poem,claude-sonnet-4-20250514,1,user
|
|
Critic-Agent,Literary critic,You are a literary critic,Provide constructive feedback on the poem,claude-sonnet-4-20250514,1,user"""
|
|
|
|
# Save CSV file
|
|
with open("agents.csv", "w") as f:
|
|
f.write(csv_content)
|
|
|
|
# Create swarm with CSV path only (no agents provided)
|
|
swarm = SpreadSheetSwarm(
|
|
name="Poetry-Swarm",
|
|
description="A swarm for poetry creation and review",
|
|
load_path="agents.csv", # No agents parameter - will load from CSV
|
|
autosave=True,
|
|
max_loops=1,
|
|
)
|
|
|
|
# Run with different tasks from CSV
|
|
result = swarm.run_from_config()
|
|
|
|
print(f"Tasks completed: {result['tasks_completed']}")
|
|
print(f"Number of agents: {result['number_of_agents']}")
|
|
|
|
# Clean up
|
|
import os
|
|
|
|
if os.path.exists("agents.csv"):
|
|
os.remove("agents.csv")
|
|
|
|
return result
|
|
|
|
|
|
def example_mixed_usage():
|
|
"""Example showing both agents and CSV can be used together"""
|
|
print("\n=== Example 3: Mixed Usage (Agents + CSV) ===")
|
|
|
|
# Create one agent
|
|
agent = Agent(
|
|
agent_name="Coordinator-Agent",
|
|
agent_description="Project coordinator",
|
|
model_name="claude-sonnet-4-20250514",
|
|
dynamic_temperature_enabled=True,
|
|
max_loops=1,
|
|
streaming_on=False,
|
|
print_on=False,
|
|
)
|
|
|
|
# Create CSV content
|
|
csv_content = """agent_name,description,system_prompt,task,model_name,max_loops,user_name
|
|
Researcher-Agent,Research specialist,You are a researcher,Research the topic thoroughly,claude-sonnet-4-20250514,1,user
|
|
Analyst-Agent,Data analyst,You are a data analyst,Analyze the research data,claude-sonnet-4-20250514,1,user"""
|
|
|
|
with open("research_agents.csv", "w") as f:
|
|
f.write(csv_content)
|
|
|
|
# Create swarm with both agents and CSV
|
|
swarm = SpreadSheetSwarm(
|
|
name="Mixed-Swarm",
|
|
description="A swarm with both pre-configured and CSV-loaded agents",
|
|
agents=[agent], # Pre-configured agent
|
|
load_path="research_agents.csv", # CSV agents
|
|
autosave=True,
|
|
max_loops=1,
|
|
)
|
|
|
|
# Load CSV agents
|
|
swarm.load_from_csv()
|
|
|
|
# Run with same task for all agents
|
|
result = swarm.run("Analyze the impact of AI on education")
|
|
|
|
print(f"Tasks completed: {result['tasks_completed']}")
|
|
print(f"Number of agents: {result['number_of_agents']}")
|
|
|
|
# Clean up
|
|
import os
|
|
|
|
if os.path.exists("research_agents.csv"):
|
|
os.remove("research_agents.csv")
|
|
|
|
return result
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Run all examples
|
|
result1 = example_with_agents()
|
|
result2 = example_with_csv()
|
|
result3 = example_mixed_usage()
|
|
|
|
print("\n=== Summary ===")
|
|
print(
|
|
f"Example 1 - Pre-configured agents: {result1['tasks_completed']} tasks"
|
|
)
|
|
print(
|
|
f"Example 2 - CSV configuration: {result2['tasks_completed']} tasks"
|
|
)
|
|
print(
|
|
f"Example 3 - Mixed usage: {result3['tasks_completed']} tasks"
|
|
)
|