Introduction du Projet
Ce projet démontre comment construire un agent intelligent qui prend en charge MCP (Model Context Protocol) en utilisant le framework AG2 (anciennement AutoGen), et communique via le protocole A2A (Agent2Agent) pour une communication standardisée.
Les fonctionnalités principales de ce projet incluent :
- Intégration d'Outils MCP : Accès à divers outils et capacités externes via le protocole MCP
- Traitement des Sous-titres YouTube : Agent intelligent spécialisé pour télécharger et analyser les sous-titres de vidéos YouTube
- Support du Protocole A2A : Fournit une interface de communication inter-agents standardisée
- Traitement en Streaming Temps Réel : Prend en charge les mises à jour de statut en temps réel pendant l'exécution des tâches
- Compatibilité Inter-Framework : Démontre l'interopérabilité entre différents frameworks d'agents
Comment Exécuter
1. Cloner le Code
git clone https://github.com/sing1ee/a2a-mcp-ag2-sample.git
cd a2a-mcp-ag2-sample
2. Configuration de l'Environnement
Utilisez le gestionnaire de paquets uv pour créer un environnement virtuel et installer les dépendances :
# Créer un environnement virtuel
uv venv
# Activer l'environnement virtuel et synchroniser les dépendances
uv sync
3. Définir les Variables d'Environnement
Créez un fichier .env
et ajoutez votre clé API OpenAI :
echo "OPENAI_API_KEY=your_api_key_here" > .env
4. Installer l'Outil MCP YouTube
uv tool install git+https://github.com/sparfenyuk/mcp-youtube
5. Exécuter l'Agent
# Exécuter avec la configuration par défaut
uv run .
# Hôte et port personnalisés
uv run . --host 0.0.0.0 --port 8080
6. Débogage et Tests
Référez-vous à A2A Inspector pour le débogage. A2A Inspector est un outil puissant spécialement conçu pour déboguer les applications A2A, qui peut vous aider à :
- Surveiller la communication inter-agents
- Inspecter les messages du protocole A2A
- Déboguer les flux d'exécution des tâches
- Valider les formats de réponse des agents
Exemple d'Utilisation
Après avoir démarré l'agent, vous pouvez envoyer la requête suivante pour tester la fonctionnalité des sous-titres YouTube :
Summarize this video: https://www.youtube.com/watch?v=kQmXtrmQ5Zg
Diagramme de Séquence du Flux du Projet
sequenceDiagram
participant Client as A2A Client
participant Server as A2A Server
participant Agent as AG2 Agent
participant MCP as MCP Server
participant YouTube as YouTube MCP Tool
Client->>Server: Send task request
Server->>Agent: Forward query to AG2 agent
Note over Server,Agent: Real-time status updates (streaming)
Agent->>MCP: Request available tool list
MCP->>Agent: Return tool definitions
Agent->>Agent: LLM decides to use YouTube tool
Agent->>MCP: Send tool execution request
MCP->>YouTube: Call YouTube subtitle download tool
YouTube->>YouTube: Download video subtitles
YouTube->>MCP: Return subtitle data
MCP->>Agent: Return tool execution result
Agent->>Agent: LLM processes subtitle data and generates response
Agent->>Server: Return complete response
Server->>Client: Respond with task result
Architecture Technique
Composants Principaux
- YoutubeMCPAgent : Implémentation d'agent principal basée sur AG2 AssistantAgent
- AG2AgentExecutor : Adaptateur de protocole A2A qui gère l'exécution des tâches et les files d'événements
- Intégration d'Outils MCP : Se connecte au serveur MCP via un client stdio
- Serveur A2A : Fournit une interface de communication d'agents standardisée
Fonctionnalités Clés
- Modèles de Réponse : Utilise des modèles Pydantic pour assurer une sortie structurée
- Traitement Asynchrone : Prend en charge le traitement concurrent des tâches et les réponses en streaming
- Gestion des Erreurs : Mécanismes complets de capture et de récupération d'erreurs
- Enregistrement d'Outils : Enregistrement et gestion dynamiques des outils MCP
Résumé
Avec le développement rapide et la prolifération des produits d'agents IA, de plus en plus de frameworks et solutions d'agents ont émergé sur le marché, tels que LangGraph, CrewAI, AG2, etc. Chaque framework a ses avantages uniques et ses scénarios applicables, mais cela apporte aussi des défis en matière d'interopérabilité.
L'Importance Significative du Protocole A2A :
- Communication Standardisée : Le protocole A2A sert de langage universel pour la communication inter-agents, éliminant les barrières entre différents frameworks
- Interconnexion d'Écosystème : Permet aux agents de différentes piles technologiques de collaborer de manière transparente, formant un écosystème IA plus puissant
- Réduction des Coûts d'Intégration : Les développeurs n'ont plus besoin de développer des adaptateurs séparés pour chaque framework, réduisant considérablement la complexité de l'intégration système
- Promotion de l'Innovation : Grâce aux protocoles standardisés, les développeurs peuvent se concentrer sur l'amélioration des capacités des agents plutôt que sur l'adaptation des protocoles
- Évolutivité Future : Pose une base solide pour construire des systèmes multi-agents complexes
Ce projet démontre que le protocole A2A deviendra un pont important reliant l'écosystème des agents IA, poussant toute l'industrie vers une direction plus ouverte et interconnectée.