# Sistem de Orchestrare Multi-Agent - Foundry Local Un sistem avansat multi-agent alimentat de Microsoft Foundry Local, care demonstrează coordonarea inteligentă a agenților, delegarea sarcinilor specializate și modele de rezolvare colaborativă a problemelor. ## Prezentare Generală Acest exemplu ilustrează cum să construiești sisteme sofisticate de agenți AI folosind Foundry Local, implementând modelele oficiale Microsoft pentru apelarea funcțiilor, orchestrarea agenților și fluxuri de lucru AI colaborative. ## Arhitectură ``` ┌─────────────────────────────────────────────────────────────────┐ │ Agent Orchestration System │ ├─────────────────┬─────────────────┬─────────────────┬───────────┤ │ Coordinator │ Specialist │ Function │ Context │ │ Agent │ Agents │ Registry │ Manager │ │ │ │ │ │ │ • Task Analysis │ • Code Expert │ • Tool Calling │ • Memory │ │ • Agent Router │ • Data Analyst │ • Validation │ • History │ │ • Workflow Mgmt │ • Research Bot │ • Error Handle │ • State │ │ • Result Merge │ • Writing Aid │ • Type Safety │ • Context │ └─────────────────┴─────────────────┴─────────────────┴───────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Microsoft Foundry Local Service │ │ │ │ • Multi-Model Support • Function Calling API │ │ • Concurrent Inference • Tool Integration │ │ • Context Preservation • Performance Monitoring │ └─────────────────────────────────────────────────────────────────┘ ``` ## Caracteristici Cheie ### 🤖 **Coordonare Inteligentă a Agenților** - Analiză dinamică a sarcinilor și selecția agenților - Distribuirea automată a volumului de muncă - Agregarea și sintetizarea rezultatelor - Protocoale de comunicare între agenți ### 🔧 **Tipuri de Agenți Specializați** - **Expert în Cod**: Programare, depanare, revizuire de cod - **Analist de Date**: Procesare de date, vizualizare, obținerea de informații - **Asistent de Cercetare**: Colectare de informații, sumarizare - **Specialist în Scriere**: Creare de conținut, editare, documentare - **Rezolvator de Probleme**: Raționament complex, luare de decizii ### ⚡ **Apelarea Avansată a Funcțiilor** - Modele de apelare a funcțiilor Microsoft Foundry Local - Definiții de instrumente sigure din punct de vedere al tipurilor - Validarea automată a parametrilor - Gestionarea erorilor și recuperare - Combinarea și compunerea instrumentelor ### 🎯 **Rutare Inteligentă a Sarcinilor** - Clasificarea și analiza intențiilor - Potrivirea capacităților agenților - Echilibrarea încărcării și optimizare - Gestionarea fallback-urilor și redundanței ## Cerințe Prealabile ### Cerințe de Sistem - **Python**: 3.9+ cu suport pentru asyncio - **Memorie**: Recomandat 16GB+ pentru mai mulți agenți - **Stocare**: 15GB+ pentru mai multe modele - **CPU/GPU**: Procesor multi-core, GPU recomandat ### Dependențe ```bash pip install foundry-local-sdk openai aiohttp asyncio pydantic rich typer ``` ### Configurare Foundry Local ```powershell # Install and verify Foundry Local winget install Microsoft.FoundryLocal foundry --version # Download recommended models for agents foundry model download phi-4-mini foundry model download qwen2.5-coder-0.5b foundry model download phi-3.5-mini ``` ## Start Rapid ### 1. Flux de Lucru Multi-Agent de Bază ```python from agentic_system import AgentOrchestrator, CodeAgent, ResearchAgent # Initialize the orchestrator orchestrator = AgentOrchestrator() # Add specialized agents await orchestrator.add_agent(CodeAgent("phi-4-mini")) await orchestrator.add_agent(ResearchAgent("qwen2.5-coder-0.5b")) # Execute a complex task result = await orchestrator.execute_task( "Create a Python script that analyzes web traffic data and generates a report" ) print(result.summary) ``` ### 2. Crearea Agenților Personalizați ```python from agentic_system import BaseAgent, tool class DataAnalystAgent(BaseAgent): """Specialized agent for data analysis tasks.""" @tool async def analyze_dataset(self, data_path: str, analysis_type: str) -> dict: """Analyze a dataset and return insights.""" # Implementation here pass @tool async def create_visualization(self, data: dict, chart_type: str) -> str: """Create data visualizations.""" # Implementation here pass # Use the custom agent agent = DataAnalystAgent("qwen2.5-0.5b") result = await agent.analyze_dataset("sales_data.csv", "trend_analysis") ``` ### 3. Integrarea Apelării Funcțiilor ```python # Define tools following Microsoft patterns tools = [ { "name": "web_search", "description": "Search the web for information", "parameters": { "query": {"description": "Search query", "type": "string"}, "max_results": {"description": "Maximum results", "type": "integer"} } }, { "name": "code_analyzer", "description": "Analyze code quality and suggest improvements", "parameters": { "code": {"description": "Code to analyze", "type": "string"}, "language": {"description": "Programming language", "type": "string"} } } ] # Register tools with orchestrator orchestrator.register_tools(tools) ``` ## Structura Proiectului ``` 09/ ├── README.md # This documentation ├── requirements.txt # Python dependencies ├── agentic_system/ │ ├── __init__.py # Package initialization │ ├── orchestrator.py # Main orchestrator class │ ├── base_agent.py # Base agent implementation │ ├── specialized_agents/ │ │ ├── __init__.py │ │ ├── code_agent.py # Programming specialist │ │ ├── research_agent.py # Research specialist │ │ ├── data_agent.py # Data analysis specialist │ │ ├── writing_agent.py # Content creation specialist │ │ └── solver_agent.py # Problem solving specialist │ ├── tools/ │ │ ├── __init__.py │ │ ├── function_registry.py # Tool management │ │ ├── web_tools.py # Web interaction tools │ │ ├── file_tools.py # File system tools │ │ ├── code_tools.py # Code analysis tools │ │ └── data_tools.py # Data processing tools │ ├── coordination/ │ │ ├── __init__.py │ │ ├── task_router.py # Task routing logic │ │ ├── result_merger.py # Result aggregation │ │ ├── context_manager.py # Context and memory │ │ └── workflow_engine.py # Workflow management │ └── utils/ │ ├── __init__.py │ ├── foundry_client.py # Foundry Local integration │ ├── logging_config.py # Logging setup │ └── validation.py # Input validation ├── examples/ │ ├── basic_coordination.py # Simple multi-agent example │ ├── complex_workflow.py # Advanced workflow example │ ├── custom_agents.py # Custom agent creation │ ├── function_calling.py # Tool integration example │ └── interactive_demo.py # Interactive demonstration ├── tools/ │ ├── web_search.py # Web search implementation │ ├── code_analyzer.py # Code analysis tools │ ├── data_processor.py # Data processing tools │ └── file_manager.py # File system operations └── tests/ ├── test_orchestrator.py # Orchestrator tests ├── test_agents.py # Agent tests ├── test_tools.py # Tool tests └── test_integration.py # Integration tests ``` ## Detalii despre Tipurile de Agenți ### 1. Agent Expert în Cod ```python class CodeAgent(BaseAgent): """Expert in programming, debugging, and code review.""" specialties = [ "code_generation", "debugging", "code_review", "refactoring", "testing", "documentation" ] @tool async def generate_code(self, specification: str, language: str) -> str: """Generate code from specifications.""" @tool async def debug_code(self, code: str, error_message: str) -> dict: """Debug code and suggest fixes.""" @tool async def review_code(self, code: str, criteria: list) -> dict: """Perform comprehensive code review.""" ``` ### 2. Agent Asistent de Cercetare ```python class ResearchAgent(BaseAgent): """Specialized in information gathering and analysis.""" specialties = [ "web_research", "information_synthesis", "fact_checking", "summarization", "trend_analysis" ] @tool async def research_topic(self, topic: str, depth: str) -> dict: """Research a topic comprehensively.""" @tool async def summarize_information(self, sources: list, style: str) -> str: """Summarize information from multiple sources.""" @tool async def fact_check(self, claims: list) -> dict: """Verify factual claims.""" ``` ### 3. Agent Analist de Date ```python class DataAgent(BaseAgent): """Expert in data processing and analysis.""" specialties = [ "data_analysis", "statistical_analysis", "visualization", "pattern_recognition", "predictive_modeling" ] @tool async def analyze_data(self, dataset: str, analysis_type: str) -> dict: """Perform data analysis.""" @tool async def create_visualization(self, data: dict, viz_type: str) -> str: """Create data visualizations.""" @tool async def statistical_test(self, data: dict, test_type: str) -> dict: """Perform statistical tests.""" ``` ## Modele de Orchestrare ### 1. Flux de Lucru Secvențial ```python # Define a sequential workflow workflow = orchestrator.create_workflow("sequential") workflow.add_step("research", ResearchAgent, "gather_requirements") workflow.add_step("design", CodeAgent, "create_architecture") workflow.add_step("implement", CodeAgent, "write_code") workflow.add_step("test", CodeAgent, "create_tests") result = await workflow.execute("Build a REST API for user management") ``` ### 2. Execuție Paralelă ```python # Execute tasks in parallel parallel_tasks = [ ("research_market", ResearchAgent, "analyze_market_trends"), ("analyze_competitors", DataAgent, "competitor_analysis"), ("technical_feasibility", CodeAgent, "assess_technical_requirements") ] results = await orchestrator.execute_parallel(parallel_tasks) synthesized = await orchestrator.synthesize_results(results) ``` ### 3. Selecție Dinamică a Agenților ```python # Automatic agent selection based on task analysis task = "Create a machine learning model to predict customer churn" # Orchestrator analyzes task and selects appropriate agents selected_agents = await orchestrator.analyze_task_requirements(task) # Returns: [DataAgent, CodeAgent, ResearchAgent] result = await orchestrator.execute_with_agents(task, selected_agents) ``` ## Integrarea Apelării Funcțiilor ### Modele Microsoft Foundry Local ```python # Define tools following Microsoft's function calling schema def define_foundry_tools(): return [ { "name": "analyze_code_quality", "description": "Analyze code quality and suggest improvements", "parameters": { "code": { "description": "The source code to analyze", "type": "string" }, "language": { "description": "Programming language", "type": "string" }, "criteria": { "description": "Analysis criteria", "type": "array", "items": {"type": "string"} } } }, { "name": "search_documentation", "description": "Search technical documentation", "parameters": { "query": {"description": "Search query", "type": "string"}, "source": {"description": "Documentation source", "type": "string"} } } ] # Integration with Foundry Local async def setup_function_calling(): tools = define_foundry_tools() # Configure Foundry Local for function calling client = openai.OpenAI( base_url=manager.endpoint, api_key=manager.api_key ) # Use tools in conversation response = await client.chat.completions.create( model=manager.get_model_info("phi-4-mini").id, messages=[ {"role": "user", "content": "Analyze this Python code for quality issues"} ], tools=[{"type": "function", "function": tool} for tool in tools], tool_choice="auto" ) ``` ## Funcții Avansate de Coordonare ### 1. Gestionarea Contextului ```python class ContextManager: """Manages shared context across agents.""" async def share_context(self, agent_id: str, context: dict): """Share context with specific agent.""" async def get_shared_memory(self) -> dict: """Retrieve shared memory state.""" async def update_global_state(self, updates: dict): """Update global orchestrator state.""" ``` ### 2. Sintetizarea Rezultatelor ```python class ResultMerger: """Intelligently merge results from multiple agents.""" async def merge_analyses(self, results: list) -> dict: """Merge analysis results.""" async def resolve_conflicts(self, conflicting_results: list) -> dict: """Resolve conflicting agent outputs.""" async def create_summary(self, all_results: dict) -> str: """Create comprehensive summary.""" ``` ### 3. Asigurarea Calității ```python class QualityController: """Ensures output quality and consistency.""" async def validate_output(self, result: dict, criteria: list) -> bool: """Validate agent output quality.""" async def cross_check_facts(self, claims: list) -> dict: """Cross-verify facts across agents.""" async def ensure_consistency(self, outputs: list) -> dict: """Ensure consistent outputs.""" ``` ## Optimizarea Performanței ### 1. Echilibrarea Încărcării Modelului ```python # Distribute models across agents for optimal resource usage model_allocation = { "code_tasks": "phi-4-mini", "research_tasks": "qwen2.5-coder-0.5b", "analysis_tasks": "phi-3.5-mini", "general_tasks": "phi-4-mini" } orchestrator.configure_model_allocation(model_allocation) ``` ### 2. Caching și Memorie ```python # Implement intelligent caching cache_config = { "response_cache": True, "context_cache": True, "tool_result_cache": True, "cache_ttl": 3600 # 1 hour } orchestrator.configure_caching(cache_config) ``` ### 3. Execuție Concurentă ```python # Optimize for parallel processing concurrency_config = { "max_concurrent_agents": 4, "agent_pool_size": 8, "task_queue_size": 100, "timeout_seconds": 300 } orchestrator.configure_concurrency(concurrency_config) ``` ## Exemple de Utilizare ### Exemplu 1: Flux de Lucru pentru Dezvoltare Software ```python async def software_development_workflow(): """Complete software development using multiple agents.""" # Initialize orchestrator with specialized agents orchestrator = AgentOrchestrator() await orchestrator.add_agent(ResearchAgent("qwen2.5-coder-0.5b")) await orchestrator.add_agent(CodeAgent("phi-4-mini")) await orchestrator.add_agent(DataAgent("phi-3.5-mini")) # Define the development task task = """ Create a web application that: 1. Analyzes user behavior data 2. Provides real-time analytics dashboard 3. Includes user authentication 4. Has comprehensive tests """ # Execute coordinated workflow result = await orchestrator.execute_workflow( task=task, workflow_type="software_development", quality_gates=["code_review", "testing", "security_check"] ) return result ``` ### Exemplu 2: Cercetare și Analiză ```python async def comprehensive_research(): """Multi-agent research coordination.""" research_query = "Impact of AI on software development productivity" # Parallel research execution tasks = [ ("literature_review", ResearchAgent, research_query), ("data_analysis", DataAgent, "productivity_metrics"), ("case_studies", ResearchAgent, "ai_adoption_cases"), ("technical_analysis", CodeAgent, "ai_tool_evaluation") ] results = await orchestrator.execute_parallel(tasks) # Synthesize findings final_report = await orchestrator.synthesize_research( results=results, format="comprehensive_report", include_recommendations=True ) return final_report ``` ### Exemplu 3: Sesiune de Rezolvare a Problemelor ```python async def collaborative_problem_solving(): """Multi-agent collaborative problem solving.""" problem = """ A company's API response times have increased 300% over the past month. Analyze the issue and propose solutions. """ # Deploy specialist agents investigation_plan = await orchestrator.create_investigation_plan(problem) agents_deployed = [ (CodeAgent, "analyze_code_performance"), (DataAgent, "analyze_performance_metrics"), (ResearchAgent, "research_similar_issues"), (SolverAgent, "propose_solutions") ] # Coordinate investigation findings = await orchestrator.coordinate_investigation( problem=problem, agents=agents_deployed, investigation_plan=investigation_plan ) # Generate action plan action_plan = await orchestrator.create_action_plan(findings) return action_plan ``` ## Configurare și Personalizare ### Configurarea Agenților ```python # Configure individual agents agent_configs = { "CodeAgent": { "model": "phi-4-mini", "temperature": 0.3, "max_tokens": 2000, "specialization_level": "expert" }, "ResearchAgent": { "model": "qwen2.5-coder-0.5b", "temperature": 0.7, "max_tokens": 1500, "research_depth": "comprehensive" } } orchestrator.configure_agents(agent_configs) ``` ### Personalizarea Fluxului de Lucru ```python # Custom workflow definitions custom_workflows = { "data_science_project": [ "data_collection", "exploratory_analysis", "model_development", "validation_testing", "deployment_preparation" ], "security_audit": [ "vulnerability_scan", "code_review", "penetration_testing", "compliance_check", "remediation_plan" ] } orchestrator.register_workflows(custom_workflows) ``` ## Monitorizare și Analiză ### Urmărirea Performanței ```python # Monitor orchestrator performance metrics = await orchestrator.get_performance_metrics() print(f"Tasks Completed: {metrics.tasks_completed}") print(f"Average Response Time: {metrics.avg_response_time}s") print(f"Success Rate: {metrics.success_rate}%") print(f"Agent Utilization: {metrics.agent_utilization}") ``` ### Metrice de Calitate ```python # Track output quality quality_report = await orchestrator.generate_quality_report() print(f"Output Consistency: {quality_report.consistency_score}") print(f"Factual Accuracy: {quality_report.accuracy_score}") print(f"Completeness: {quality_report.completeness_score}") ``` ## Rezultate ale Învățării După finalizarea acestui exemplu, vei înțelege: 1. **Arhitectura Sistemelor Multi-Agent** - Modele de coordonare a agenților - Strategii de distribuire a sarcinilor - Tehnici de sintetizare a rezultatelor - Gestionarea contextului între agenți 2. **Integrarea Microsoft Foundry Local** - Implementarea apelării funcțiilor - Modele de integrare a instrumentelor - Orchestrarea multi-model - Optimizarea performanței 3. **Orchestrare AI Avansată** - Design și execuție de fluxuri de lucru - Mecanisme de asigurare a calității - Gestionarea erorilor și recuperare - Considerații privind scalabilitatea 4. **Designul Sistemelor de Producție** - Monitorizare și analiză - Gestionarea configurației - Cele mai bune practici de securitate - Reglarea performanței ## Pași Următori - **Exemplu 10**: Foundry Local ca Integrare de Instrumente - **Subiecte Avansate**: Dezvoltarea agenților personalizați - **Scalare**: Sisteme de agenți distribuiți - **Integrare**: Integrarea fluxurilor de lucru în întreprinderi ## Contribuții Consultă ghidurile din depozitul principal pentru instrucțiuni de contribuție. ## Licență Acest exemplu urmează aceeași licență ca proiectul Microsoft Foundry Local. ---