ai-agents-for-beginners

에이전틱 프로토콜 사용하기 (MCP, A2A 및 NLWeb)

에이전틱 프로토콜

AI 에이전트의 사용이 증가함에 따라 표준화, 보안, 그리고 개방형 혁신을 지원하는 프로토콜의 필요성도 커지고 있습니다. 이번 강의에서는 이러한 요구를 충족시키기 위해 개발된 세 가지 프로토콜 - 모델 컨텍스트 프로토콜(MCP), 에이전트 간 통신(A2A), 그리고 자연어 웹(NLWeb)을 다룹니다.

소개

이번 강의에서 다룰 내용은 다음과 같습니다:

MCP가 AI 에이전트가 외부 도구와 데이터를 활용하여 사용자 작업을 완료할 수 있도록 하는 방법.

A2A가 서로 다른 AI 에이전트 간의 통신과 협업을 가능하게 하는 방법.

NLWeb이 자연어 인터페이스를 웹사이트에 제공하여 AI 에이전트가 콘텐츠를 탐색하고 상호작용할 수 있도록 하는 방법.

학습 목표

MCP, A2A, NLWeb의 핵심 목적과 AI 에이전트 관점에서의 이점을 파악합니다.

• 각 프로토콜이 LLM, 도구, 그리고 다른 에이전트 간의 통신과 상호작용을 어떻게 촉진하는지 설명합니다.

• 복잡한 에이전틱 시스템을 구축하는 데 있어 각 프로토콜이 맡는 고유한 역할인식합니다.

모델 컨텍스트 프로토콜

모델 컨텍스트 프로토콜(MCP)은 애플리케이션이 LLM에 컨텍스트와 도구를 제공하는 표준화된 방법을 제공하는 개방형 표준입니다. 이를 통해 AI 에이전트가 다양한 데이터 소스와 도구에 일관된 방식으로 연결할 수 있는 “범용 어댑터” 역할을 합니다.

MCP의 구성 요소, 기존 API 사용과 비교한 이점, 그리고 AI 에이전트가 MCP 서버를 사용하는 예를 살펴보겠습니다.

MCP 핵심 구성 요소

MCP는 클라이언트-서버 아키텍처로 작동하며 핵심 구성 요소는 다음과 같습니다:

호스트: LLM 애플리케이션(예: VSCode와 같은 코드 편집기)으로, MCP 서버와의 연결을 시작합니다.

클라이언트: 호스트 애플리케이션 내에서 서버와 일대일 연결을 유지하는 구성 요소입니다.

서버: 특정 기능을 노출하는 경량 프로그램입니다.

프로토콜에는 MCP 서버의 기능을 나타내는 세 가지 핵심 원시 요소가 포함되어 있습니다:

도구: AI 에이전트가 특정 작업을 수행하기 위해 호출할 수 있는 개별적인 작업 또는 기능입니다. 예를 들어, 날씨 서비스는 “날씨 조회” 도구를 제공하거나, 전자상거래 서버는 “상품 구매” 도구를 제공할 수 있습니다. MCP 서버는 각 도구의 이름, 설명, 입력/출력 스키마를 기능 목록에 광고합니다.

리소스: MCP 서버가 제공할 수 있는 읽기 전용 데이터 항목 또는 문서로, 클라이언트가 필요할 때 이를 검색할 수 있습니다. 예로는 파일 내용, 데이터베이스 레코드, 또는 로그 파일이 있습니다. 리소스는 텍스트(코드 또는 JSON과 같은) 또는 바이너리(이미지 또는 PDF와 같은)일 수 있습니다.

프롬프트: 더 복잡한 워크플로를 가능하게 하는 제안된 프롬프트를 제공하는 사전 정의된 템플릿입니다.

MCP의 이점

MCP는 AI 에이전트에 다음과 같은 중요한 이점을 제공합니다:

동적 도구 검색: 에이전트는 서버로부터 사용 가능한 도구 목록과 그 기능에 대한 설명을 동적으로 받을 수 있습니다. 이는 기존 API가 통합을 위해 정적 코딩을 요구하는 것과 대조적이며, API 변경 시 코드 업데이트가 필요합니다. MCP는 “한 번 통합” 접근 방식을 제공하여 더 큰 적응성을 제공합니다.

LLM 간 상호운용성: MCP는 다양한 LLM에서 작동하여 더 나은 성능을 평가하기 위해 핵심 모델을 전환할 수 있는 유연성을 제공합니다.

표준화된 보안: MCP는 표준 인증 방법을 포함하여 추가 MCP 서버에 대한 액세스를 추가할 때 확장성을 개선합니다. 이는 다양한 기존 API의 키와 인증 유형을 관리하는 것보다 간단합니다.

MCP 예시

MCP 다이어그램

사용자가 MCP를 활용하는 AI 어시스턴트를 통해 항공편을 예약하고 싶어한다고 가정해봅시다.

  1. 연결: AI 어시스턴트(MCP 클라이언트)가 항공사에서 제공하는 MCP 서버에 연결합니다.

  2. 도구 검색: 클라이언트가 항공사의 MCP 서버에 “사용 가능한 도구가 무엇인가요?”라고 묻습니다. 서버는 “항공편 검색” 및 “항공편 예약”과 같은 도구를 응답합니다.

  3. 도구 호출: 사용자가 AI 어시스턴트에게 “포틀랜드에서 호놀룰루로 가는 항공편을 검색해주세요.”라고 요청합니다. AI 어시스턴트는 LLM을 사용하여 “항공편 검색” 도구를 호출해야 한다는 것을 파악하고 관련 매개변수(출발지, 목적지)를 MCP 서버에 전달합니다.

  4. 실행 및 응답: MCP 서버는 실제로 항공사의 내부 예약 API를 호출하는 래퍼 역할을 합니다. 그런 다음 항공편 정보(예: JSON 데이터)를 받아 AI 어시스턴트에 다시 보냅니다.

  5. 추가 상호작용: AI 어시스턴트는 항공편 옵션을 제시합니다. 사용자가 항공편을 선택하면 어시스턴트는 동일한 MCP 서버에서 “항공편 예약” 도구를 호출하여 예약을 완료할 수 있습니다.

에이전트 간 통신 프로토콜 (A2A)

MCP가 LLM과 도구를 연결하는 데 초점을 맞추는 반면, 에이전트 간 통신(A2A) 프로토콜은 한 단계 더 나아가 서로 다른 AI 에이전트 간의 통신과 협업을 가능하게 합니다. A2A는 서로 다른 조직, 환경, 기술 스택에 걸쳐 AI 에이전트를 연결하여 공유된 작업을 완료할 수 있도록 합니다.

A2A의 구성 요소와 이점, 그리고 여행 애플리케이션에서 이를 적용하는 예를 살펴보겠습니다.

A2A 핵심 구성 요소

A2A는 에이전트 간의 통신을 가능하게 하고 사용자 작업의 하위 작업을 완료하기 위해 협력하도록 합니다. 프로토콜의 각 구성 요소는 이에 기여합니다:

에이전트 카드

MCP 서버가 도구 목록을 공유하는 방식과 유사하게, 에이전트 카드는 다음을 포함합니다:

에이전트 실행기

에이전트 실행기는 사용자 대화의 컨텍스트를 원격 에이전트에 전달하는 역할을 합니다. 원격 에이전트는 이를 통해 완료해야 할 작업을 이해할 수 있습니다. A2A 서버에서 에이전트는 자체 LLM을 사용하여 들어오는 요청을 분석하고 자체 내부 도구를 사용하여 작업을 실행합니다.

아티팩트

원격 에이전트가 요청된 작업을 완료하면 작업 결과물이 아티팩트로 생성됩니다. 아티팩트는 에이전트 작업의 결과, 완료된 작업에 대한 설명, 그리고 프로토콜을 통해 전달된 텍스트 컨텍스트를 포함합니다. 아티팩트가 전송된 후, 원격 에이전트와의 연결은 다시 필요할 때까지 닫힙니다.

이벤트 큐

이 구성 요소는 업데이트를 처리하고 메시지를 전달하는 데 사용됩니다. 특히 작업 완료 시간이 길어질 수 있는 경우, 에이전트 간 연결이 작업 완료 전에 닫히는 것을 방지하기 위해 프로덕션 환경에서 중요합니다.

A2A의 이점

향상된 협업: 서로 다른 공급업체와 플랫폼의 에이전트가 상호작용하고 컨텍스트를 공유하며 협력할 수 있도록 하여 전통적으로 분리된 시스템 간의 원활한 자동화를 촉진합니다.

모델 선택 유연성: 각 A2A 에이전트는 요청을 처리하기 위해 사용할 LLM을 결정할 수 있어, MCP 시나리오의 단일 LLM 연결과 달리 최적화된 또는 미세 조정된 모델을 에이전트별로 사용할 수 있습니다.

내장 인증: 인증이 A2A 프로토콜에 직접 통합되어 에이전트 간 상호작용을 위한 강력한 보안 프레임워크를 제공합니다.

A2A 예시

A2A 다이어그램

이번에는 여행 예약 시나리오를 확장하여 A2A를 사용하는 경우를 살펴보겠습니다.

  1. 사용자의 요청: 사용자가 “다음 주에 호놀룰루로 가는 여행을 예약해주세요. 항공편, 호텔, 렌터카를 포함해서요.”라고 요청합니다.

  2. 여행 에이전트의 조정: 여행 에이전트는 이 복잡한 요청을 받습니다. LLM을 사용하여 작업을 분석하고 다른 전문 에이전트와 상호작용해야 한다고 판단합니다.

  3. 에이전트 간 통신: 여행 에이전트는 A2A 프로토콜을 사용하여 “항공사 에이전트”, “호텔 에이전트”, “렌터카 에이전트”와 같은 하위 에이전트에 연결합니다.

  4. 위임된 작업 실행: 여행 에이전트는 이러한 전문 에이전트에 특정 작업을 보냅니다(예: “호놀룰루로 가는 항공편 찾기”, “호텔 예약하기”, “렌터카 대여하기”). 각 전문 에이전트는 자체 LLM과 도구를 사용하여 작업을 수행합니다.

  5. 통합된 응답: 모든 하위 에이전트가 작업을 완료하면 여행 에이전트는 결과(항공편 세부 정보, 호텔 확인, 렌터카 예약)를 통합하여 사용자에게 종합적인 대화 스타일 응답을 보냅니다.

자연어 웹 (NLWeb)

웹사이트는 오랫동안 인터넷에서 정보를 검색하고 데이터를 액세스하는 주요 방법이었습니다.

NLWeb의 다양한 구성 요소, NLWeb의 이점, 그리고 여행 애플리케이션을 통해 NLWeb이 작동하는 예를 살펴보겠습니다.

NLWeb의 구성 요소

NLWeb 예시

NLWeb

이번에는 여행 예약 웹사이트가 NLWeb으로 구동되는 경우를 살펴보겠습니다.

  1. 데이터 수집: 여행 웹사이트의 기존 제품 카탈로그(예: 항공편 목록, 호텔 설명, 투어 패키지)는 Schema.org를 사용하거나 RSS 피드를 통해 포맷됩니다. NLWeb의 도구는 이 구조화된 데이터를 수집하고 임베딩을 생성하여 로컬 또는 원격 벡터 데이터베이스에 저장합니다.

  2. 자연어 질의(사용자): 사용자가 웹사이트를 방문하여 메뉴를 탐색하는 대신, 채팅 인터페이스에 “다음 주에 호놀룰루에서 수영장이 있는 가족 친화적인 호텔을 찾아주세요.”라고 입력합니다.

  3. NLWeb 처리: NLWeb 애플리케이션은 이 질의를 수신합니다. 질의를 이해하기 위해 LLM에 전달하고 동시에 벡터 데이터베이스에서 관련 호텔 목록을 검색합니다.

  4. 정확한 결과: LLM은 데이터베이스 검색 결과를 해석하고 “가족 친화적”, “수영장”, “호놀룰루” 기준에 따라 가장 적합한 항목을 식별한 후 자연어 응답을 형식화합니다. 중요한 점은 응답이 웹사이트의 실제 호텔 카탈로그를 참조하며, 허구의 정보를 제공하지 않는다는 것입니다.

  5. AI 에이전트 상호작용: NLWeb이 MCP 서버로 작동하기 때문에 외부 AI 여행 에이전트도 이 웹사이트의 NLWeb 인스턴스에 연결할 수 있습니다. AI 에이전트는 ask MCP 메서드를 사용하여 웹사이트에 직접 질의할 수 있습니다: ask("호텔이 추천하는 호놀룰루 지역의 비건 친화적인 레스토랑이 있나요?"). NLWeb 인스턴스는 이를 처리하여 레스토랑 정보(로드된 경우)를 활용하고 구조화된 JSON 응답을 반환합니다.

MCP/A2A/NLWeb에 대한 추가 질문이 있으신가요?

Azure AI Foundry Discord에 참여하여 다른 학습자들과 만나고, 오피스 아워에 참석하며 AI 에이전트에 대한 질문을 해결하세요.

리소스


면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서의 원어 버전을 권위 있는 출처로 간주해야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 책임을 지지 않습니다.