프로젝트 소개
이 프로젝트는 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 에이전트 생태계를 연결하는 중요한 다리가 되어 전체 산업을 더욱 개방적이고 상호 연결된 방향으로 이끌 것임을 보여줍니다.