A2A Protocol

A2A MCP AG2 Intelligent Agent Example

MILO
Share
A2A MCP AG2 Intelligent Agent Example

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 :

  1. Communication Standardisée : Le protocole A2A sert de langage universel pour la communication inter-agents, éliminant les barrières entre différents frameworks
  2. 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
  3. 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
  4. 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
  5. É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.