#!/usr/bin/env python3 """ Comprehensive AOP Example - Raw Code This example demonstrates all AOP features including persistence, network error handling, and queue management without any print statements or functions. """ import time import threading from swarms import Agent from swarms.structs.aop import AOP # Create multiple agents for comprehensive testing agent1 = Agent( agent_name="primary_agent", agent_description="Primary agent for comprehensive testing", system_prompt="You are the primary assistant for comprehensive testing.", ) agent2 = Agent( agent_name="secondary_agent", agent_description="Secondary agent for comprehensive testing", system_prompt="You are the secondary assistant for comprehensive testing.", ) agent3 = Agent( agent_name="monitoring_agent", agent_description="Agent for monitoring and status reporting", system_prompt="You are a monitoring assistant for system status.", ) # Create AOP with all features enabled aop = AOP( server_name="Comprehensive AOP Server", description="A comprehensive AOP server with all features enabled", agents=[agent1, agent2, agent3], port=8005, host="localhost", transport="streamable-http", verbose=True, traceback_enabled=True, queue_enabled=True, # Enable queue-based execution max_workers_per_agent=2, max_queue_size_per_agent=100, processing_timeout=30, retry_delay=1.0, persistence=True, # Enable persistence max_restart_attempts=10, restart_delay=5.0, network_monitoring=True, # Enable network monitoring max_network_retries=8, network_retry_delay=3.0, network_timeout=15.0, log_level="INFO", ) # Get comprehensive server information server_info = aop.get_server_info() # Get persistence status persistence_status = aop.get_persistence_status() # Get network status aop.get_network_status() # Get queue statistics aop.get_queue_stats() # List all agents agent_list = aop.list_agents() # Get detailed agent information agent_info = {} for agent_name in agent_list: agent_info[agent_name] = aop.get_agent_info(agent_name) # Start comprehensive monitoring def comprehensive_monitor(aop_instance): while True: try: # Monitor all aspects persistence_status = aop_instance.get_persistence_status() aop_instance.get_network_status() aop_instance.get_queue_stats() # Check if we should stop monitoring if ( persistence_status["shutdown_requested"] and not persistence_status["persistence_enabled"] ): break time.sleep(5) # Update every 5 seconds except Exception: time.sleep(5) monitor_thread = threading.Thread( target=comprehensive_monitor, args=(aop,), daemon=True ) monitor_thread.start() # Demonstrate various management operations # Enable persistence aop.enable_persistence() # Pause all queues pause_results = aop.pause_all_queues() # Resume all queues resume_results = aop.resume_all_queues() # Clear all queues clear_results = aop.clear_all_queues() # Reset restart count aop.reset_restart_count() # Reset network retry count aop.reset_network_retry_count() # Request shutdown aop.request_shutdown() # Disable persistence aop.disable_persistence() # Run the comprehensive server try: aop.run() except KeyboardInterrupt: pass except Exception: pass finally: # Comprehensive cleanup aop.disable_persistence() aop.request_shutdown() # Pause all queues aop.pause_all_queues() # Clear all queues aop.clear_all_queues()