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.
swarms/spreadsheet_new_examples/spreadsheet_swarm_usage.py

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"
)