A2A Protocol

A2A MCP AG2 Intelligent Agent Example

MILO
Share
A2A MCP AG2 Intelligent Agent Example

프로젝트 소개

이 프로젝트는 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 프로토콜의 중요한 의미:

  1. 표준화된 통신: A2A 프로토콜은 에이전트 간 통신을 위한 범용 언어 역할을 하여 서로 다른 프레임워크 간의 장벽을 제거합니다
  2. 생태계 상호 연결: 서로 다른 기술 스택의 에이전트가 원활하게 협업할 수 있게 하여 더 강력한 AI 생태계를 형성합니다
  3. 통합 비용 절감: 개발자는 더 이상 각 프레임워크에 대해 별도의 어댑터를 개발할 필요가 없어 시스템 통합의 복잡성을 크게 줄입니다
  4. 혁신 촉진: 표준화된 프로토콜을 통해 개발자는 프로토콜 적응보다는 에이전트 기능 향상에 집중할 수 있습니다
  5. 미래 확장성: 복잡한 다중 에이전트 시스템 구축을 위한 견고한 기반을 마련합니다

이 프로젝트는 A2A 프로토콜이 AI 에이전트 생태계를 연결하는 중요한 다리가 되어 전체 산업을 더욱 개방적이고 상호 연결된 방향으로 이끌 것임을 보여줍니다.