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/examples/enhanced_hierarchical_swarm...

363 lines
14 KiB

"""
Enhanced Hierarchical Swarm Example
This example demonstrates the improved capabilities of the EnhancedHierarchicalSwarm including:
- Advanced communication protocols
- Dynamic role assignment
- Intelligent task scheduling
- Performance monitoring
- Parallel execution
"""
from swarms import Agent
from swarms.structs.enhanced_hierarchical_swarm import EnhancedHierarchicalSwarm
import time
def create_research_team():
"""Create a research team with specialized agents"""
# Create specialized research agents
data_analyst = Agent(
agent_name="Data-Analyst",
agent_description="Expert in data analysis, statistical modeling, and data visualization",
system_prompt="""You are a senior data analyst with expertise in:
- Statistical analysis and modeling
- Data visualization and reporting
- Pattern recognition and insights
- Database querying and data manipulation
- Machine learning and predictive analytics
Your role is to analyze data, identify patterns, and provide actionable insights.
You communicate findings clearly with supporting evidence and visualizations.""",
model_name="gpt-4o-mini",
max_loops=1,
temperature=0.3,
)
market_researcher = Agent(
agent_name="Market-Researcher",
agent_description="Specialist in market research, competitive analysis, and trend identification",
system_prompt="""You are a senior market researcher with expertise in:
- Market analysis and competitive intelligence
- Consumer behavior research
- Trend identification and forecasting
- Industry analysis and benchmarking
- Survey design and data collection
Your role is to research markets, analyze competition, and identify opportunities.
You provide comprehensive market insights with actionable recommendations.""",
model_name="gpt-4o-mini",
max_loops=1,
temperature=0.3,
)
technical_writer = Agent(
agent_name="Technical-Writer",
agent_description="Expert in technical documentation, report writing, and content creation",
system_prompt="""You are a senior technical writer with expertise in:
- Technical documentation and reporting
- Content creation and editing
- Information architecture and organization
- Clear communication of complex topics
- Research synthesis and summarization
Your role is to create clear, comprehensive documentation and reports.
You transform complex information into accessible, well-structured content.""",
model_name="gpt-4o-mini",
max_loops=1,
temperature=0.4,
)
return [data_analyst, market_researcher, technical_writer]
def create_development_team():
"""Create a development team with specialized agents"""
# Create specialized development agents
backend_developer = Agent(
agent_name="Backend-Developer",
agent_description="Expert in backend development, API design, and system architecture",
system_prompt="""You are a senior backend developer with expertise in:
- Server-side programming and API development
- Database design and optimization
- System architecture and scalability
- Security implementation and best practices
- Performance optimization and monitoring
Your role is to design and implement robust backend systems.
You ensure scalability, security, and performance in all solutions.""",
model_name="gpt-4o-mini",
max_loops=1,
temperature=0.3,
)
frontend_developer = Agent(
agent_name="Frontend-Developer",
agent_description="Expert in frontend development, UI/UX design, and user experience",
system_prompt="""You are a senior frontend developer with expertise in:
- Modern JavaScript frameworks and libraries
- User interface design and implementation
- User experience optimization
- Responsive design and accessibility
- Performance optimization and testing
Your role is to create intuitive, responsive user interfaces.
You ensure excellent user experience across all platforms.""",
model_name="gpt-4o-mini",
max_loops=1,
temperature=0.3,
)
devops_engineer = Agent(
agent_name="DevOps-Engineer",
agent_description="Expert in DevOps practices, CI/CD, and infrastructure management",
system_prompt="""You are a senior DevOps engineer with expertise in:
- Continuous integration and deployment
- Infrastructure as code and automation
- Container orchestration and management
- Monitoring and observability
- Security and compliance automation
Your role is to streamline development and deployment processes.
You ensure reliable, scalable, and secure infrastructure.""",
model_name="gpt-4o-mini",
max_loops=1,
temperature=0.3,
)
return [backend_developer, frontend_developer, devops_engineer]
def run_research_example():
"""Run a comprehensive research example"""
print("🔬 Enhanced Hierarchical Swarm - Research Team Example")
print("=" * 60)
# Create research team
research_agents = create_research_team()
# Create enhanced hierarchical swarm
research_swarm = EnhancedHierarchicalSwarm(
name="Advanced-Research-Swarm",
description="Enhanced hierarchical swarm for comprehensive research analysis",
agents=research_agents,
max_loops=2,
verbose=True,
enable_parallel_execution=True,
max_concurrent_tasks=5,
auto_optimize=True
)
# Define research task
research_task = """
Conduct a comprehensive analysis of the electric vehicle (EV) market including:
1. Market size, growth trends, and future projections
2. Key players, competitive landscape, and market share analysis
3. Consumer adoption patterns and barriers
4. Technological developments and innovations
5. Regulatory environment and policy impacts
6. Investment opportunities and risks
Provide detailed findings with data-driven insights and strategic recommendations.
"""
print("🚀 Starting research analysis...")
start_time = time.time()
# Execute research
result = research_swarm.run(task=research_task)
execution_time = time.time() - start_time
print(f"✅ Research completed in {execution_time:.2f} seconds")
# Get performance metrics
metrics = research_swarm.get_performance_metrics()
print("\n📊 Performance Metrics:")
print(f"- Total tasks: {metrics['execution_metrics']['total_tasks']}")
print(f"- Completed tasks: {metrics['execution_metrics']['completed_tasks']}")
print(f"- Success rate: {metrics['execution_metrics']['completed_tasks'] / max(1, metrics['execution_metrics']['total_tasks']) * 100:.1f}%")
print(f"- Average execution time: {metrics['execution_metrics']['avg_execution_time']:.2f}s")
# Display agent performance
print("\n🤖 Agent Performance:")
for agent_id, perf in metrics['agent_performance'].items():
print(f"- {agent_id}:")
print(f" Role: {perf['role']}")
print(f" Capabilities: {list(perf['capabilities'].keys())}")
for cap, data in perf['capabilities'].items():
print(f" {cap}: skill={data['skill_level']:.2f}, success={data['success_rate']:.2f}")
# Optimize performance
research_swarm.optimize_performance()
# Shutdown
research_swarm.shutdown()
return result
def run_development_example():
"""Run a comprehensive development example"""
print("\n💻 Enhanced Hierarchical Swarm - Development Team Example")
print("=" * 60)
# Create development team
dev_agents = create_development_team()
# Create enhanced hierarchical swarm
dev_swarm = EnhancedHierarchicalSwarm(
name="Advanced-Development-Swarm",
description="Enhanced hierarchical swarm for software development",
agents=dev_agents,
max_loops=3,
verbose=True,
enable_parallel_execution=True,
max_concurrent_tasks=6,
auto_optimize=True
)
# Define development task
dev_task = """
Design and implement a comprehensive task management system with:
1. User authentication and authorization
2. Task creation, assignment, and tracking
3. Real-time collaboration features
4. Dashboard with analytics and reporting
5. Mobile-responsive design
6. API for third-party integrations
7. Automated testing and deployment pipeline
Provide detailed technical specifications, implementation plan, and deployment strategy.
"""
print("🚀 Starting development project...")
start_time = time.time()
# Execute development
result = dev_swarm.run(task=dev_task)
execution_time = time.time() - start_time
print(f"✅ Development completed in {execution_time:.2f} seconds")
# Get performance metrics
metrics = dev_swarm.get_performance_metrics()
print("\n📊 Performance Metrics:")
print(f"- Total tasks: {metrics['execution_metrics']['total_tasks']}")
print(f"- Completed tasks: {metrics['execution_metrics']['completed_tasks']}")
print(f"- Success rate: {metrics['execution_metrics']['completed_tasks'] / max(1, metrics['execution_metrics']['total_tasks']) * 100:.1f}%")
print(f"- Average execution time: {metrics['execution_metrics']['avg_execution_time']:.2f}s")
# Display communication statistics
comm_stats = metrics['communication_stats']
print("\n📡 Communication Statistics:")
print(f"- Total channels: {comm_stats['total_channels']}")
print(f"- Active conversations: {comm_stats['active_conversations']}")
print(f"- Total agents: {comm_stats['total_agents']}")
print(f"- Message history size: {comm_stats['message_history_size']}")
print(f"- Escalation count: {comm_stats['escalation_count']}")
# Optimize performance
dev_swarm.optimize_performance()
# Shutdown
dev_swarm.shutdown()
return result
def run_comparative_analysis():
"""Run comparative analysis between different swarm configurations"""
print("\n📈 Comparative Analysis - Standard vs Enhanced Swarm")
print("=" * 60)
# Create test agents
test_agents = create_research_team()[:2] # Use first 2 agents
# Test task
test_task = "Analyze the current state of renewable energy adoption and provide key insights."
# Test 1: Enhanced swarm with parallel execution
print("🔄 Test 1: Enhanced Swarm (Parallel)")
enhanced_parallel = EnhancedHierarchicalSwarm(
name="Enhanced-Parallel-Swarm",
agents=test_agents,
verbose=False,
enable_parallel_execution=True,
max_concurrent_tasks=5
)
start_time = time.time()
result1 = enhanced_parallel.run(task=test_task)
time1 = time.time() - start_time
metrics1 = enhanced_parallel.get_performance_metrics()
enhanced_parallel.shutdown()
# Test 2: Enhanced swarm with sequential execution
print("🔄 Test 2: Enhanced Swarm (Sequential)")
enhanced_sequential = EnhancedHierarchicalSwarm(
name="Enhanced-Sequential-Swarm",
agents=test_agents,
verbose=False,
enable_parallel_execution=False,
max_concurrent_tasks=1
)
start_time = time.time()
result2 = enhanced_sequential.run(task=test_task)
time2 = time.time() - start_time
metrics2 = enhanced_sequential.get_performance_metrics()
enhanced_sequential.shutdown()
# Compare results
print("\n📊 Comparison Results:")
print(f"Parallel Execution: {time1:.2f}s | Sequential Execution: {time2:.2f}s")
print(f"Performance Improvement: {((time2 - time1) / time2 * 100):.1f}%")
print(f"\nParallel Tasks: {metrics1['execution_metrics']['total_tasks']} | Sequential Tasks: {metrics2['execution_metrics']['total_tasks']}")
print(f"Parallel Success Rate: {metrics1['execution_metrics']['completed_tasks'] / max(1, metrics1['execution_metrics']['total_tasks']) * 100:.1f}%")
print(f"Sequential Success Rate: {metrics2['execution_metrics']['completed_tasks'] / max(1, metrics2['execution_metrics']['total_tasks']) * 100:.1f}%")
def main():
"""Main function to run all examples"""
print("🚀 Enhanced Hierarchical Swarm - Comprehensive Examples")
print("=" * 80)
try:
# Run research example
research_result = run_research_example()
# Run development example
dev_result = run_development_example()
# Run comparative analysis
run_comparative_analysis()
print("\n🎉 All examples completed successfully!")
print("=" * 80)
# Summary
print("\n📋 Summary of Enhanced Capabilities:")
print("✅ Multi-directional communication between agents")
print("✅ Dynamic role assignment based on performance")
print("✅ Intelligent task scheduling and coordination")
print("✅ Parallel execution for improved performance")
print("✅ Real-time performance monitoring and optimization")
print("✅ Advanced error handling and recovery")
print("✅ Comprehensive metrics and analytics")
print("✅ Scalable architecture for large teams")
except Exception as e:
print(f"❌ Error running examples: {str(e)}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
main()