プロジェクト紹介
このプロジェクトは、AG2フレームワーク(旧AutoGen)を使用してMCP(Model Context Protocol)をサポートするインテリジェントエージェントを構築し、標準化された通信のためにA2A(Agent2Agent)プロトコルを通じて通信する方法を実演します。
このプロジェクトの核心機能には以下が含まれます:
- MCPツール統合: MCPプロトコルを通じて様々な外部ツールと機能にアクセス
- YouTube字幕処理: YouTube動画字幕のダウンロードと分析のための専門インテリジェントエージェント
- A2Aプロトコルサポート: 標準化されたエージェント間通信インターフェースを提供
- リアルタイムストリーミング処理: タスク実行中のリアルタイムステータス更新をサポート
- クロスフレームワーク互換性: 異なるエージェントフレームワーク間の相互運用性を実演
実行方法
1. コードのクローン
git clone https://github.com/sing1ee/a2a-mcp-ag2-sample.git
cd a2a-mcp-ag2-sample
2. 環境設定
uvパッケージマネージャーを使用して仮想環境を作成し、依存関係をインストールします:
# 仮想環境の作成
uv venv
# 仮想環境のアクティベートと依存関係の同期
uv sync
3. 環境変数の設定
.env
ファイルを作成し、OpenAI APIキーを追加します:
echo "OPENAI_API_KEY=your_api_key_here" > .env
4. MCP YouTubeツールのインストール
uv tool install git+https://github.com/sparfenyuk/mcp-youtube
5. エージェントの実行
# デフォルト設定で実行
uv run .
# カスタムホストとポート
uv run . --host 0.0.0.0 --port 8080
6. デバッグとテスト
デバッグについてはA2A Inspectorを参照してください。A2A Inspectorは、A2Aアプリケーションのデバッグ専用に設計された強力なツールで、以下の支援を提供します:
- エージェント間通信の監視
- A2Aプロトコルメッセージの検査
- タスク実行フローのデバッグ
- エージェント応答形式の検証
使用例
エージェントを開始した後、YouTube字幕機能をテストするために以下のリクエストを送信できます:
Summarize this video: https://www.youtube.com/watch?v=kQmXtrmQ5Zg
プロジェクトフローシーケンス図
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
技術アーキテクチャ
核心コンポーネント
- YoutubeMCPAgent: AG2 AssistantAgentに基づく核心エージェント実装
- AG2AgentExecutor: タスク実行とイベントキューを処理するA2Aプロトコルアダプター
- MCPツール統合: stdioクライアントを通じてMCPサーバーに接続
- A2Aサーバー: 標準化されたエージェント通信インターフェースを提供
主要機能
- 応答モデル: 構造化された出力を保証するためにPydanticモデルを使用
- 非同期処理: 並行タスク処理とストリーミング応答をサポート
- エラー処理: 完全なエラーキャプチャと回復メカニズム
- ツール登録: MCPツールの動的登録と管理
まとめ
AIエージェント製品の急速な発展と普及により、LangGraph、CrewAI、AG2などのより多くのエージェントフレームワークとソリューションが市場に登場しました。各フレームワークには独自の利点と適用シナリオがありますが、これは相互運用性における課題ももたらします。
A2Aプロトコルの重要な意義:
- 標準化された通信: A2Aプロトコルは、エージェント間通信のための汎用言語として機能し、異なるフレームワーク間の障壁を除去します
- エコシステムの相互接続: 異なる技術スタックのエージェントがシームレスに協力できるようにし、より強力なAIエコシステムを形成します
- 統合コストの削減: 開発者は各フレームワークに対して個別のアダプターを開発する必要がなくなり、システム統合の複雑さを大幅に削減します
- イノベーションの促進: 標準化されたプロトコルを通じて、開発者はプロトコル適応よりもエージェント機能の向上に集中できます
- 将来の拡張性: 複雑なマルチエージェントシステム構築のための堅固な基盤を築きます
このプロジェクトは、A2AプロトコルがAIエージェントエコシステムを接続する重要な橋となり、業界全体をより開放的で相互接続された方向に導くことを実証しています。