ai-agents-for-beginners

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

에이전틱 프로토콜

(위 이미지를 클릭하여 이 수업의 영상을 보세요)

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

소개

이번 수업에서 다룰 내용:

MCP가 AI 에이전트가 외부 도구와 데이터를 접근하여 사용자 작업을 완료하도록 어떻게 지원하는지.

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

NLWeb이 자연어 인터페이스를 모든 웹사이트에 적용해 AI 에이전트가 콘텐츠를 발견하고 상호작용하게 하는 방법.

학습 목표

• AI 에이전트 맥락에서 MCP, A2A 및 NLWeb의 핵심 목적과 이점을 식별합니다.

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

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

모델 컨텍스트 프로토콜

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

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

MCP 핵심 구성 요소

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

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

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

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

프로토콜에는 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. 사용자의 다중 에이전트 요청: 사용자가 “다음 주 호놀룰루로의 전체 여행을 예약해 주세요. 항공편, 호텔, 렌터카 모두 포함해서”라고 ‘여행 에이전트’ A2A 클라이언트/에이전트에 말합니다.

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

  3. 에이전트 간 소통: 여행 에이전트는 A2A 프로토콜을 이용해 각각 다른 회사가 만든 “항공사 에이전트”, “호텔 에이전트”, “렌터카 에이전트” 등 하위 에이전트와 연결합니다.

  4. 작업 위임 실행: 여행 에이전트는 각 특화 에이전트에 특정 작업(“호놀룰루행 항공편 찾아줘”, “호텔 예약해줘”, “렌터카 빌려줘”)을 보냅니다. 각각의 특화 에이전트는 자체 LLM과 자체 도구(MCP 서버일 수 있음)를 활용해 해당 예약 작업을 수행합니다.

  5. 통합 응답 제공: 모든 하위 에이전트가 작업을 완료하면, 여행 에이전트가 결과(항공편 정보, 호텔 확인서, 렌터카 예약)를 모아 채팅 스타일의 종합 응답을 사용자에게 전달합니다.

자연어 웹 (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 메서드를 사용해 직접 질의할 수 있습니다. NLWeb 인스턴스는 식당 정보 데이터베이스(로딩된 경우)를 활용해 이를 처리하고 구조화된 JSON 응답을 반환합니다.

MCP/A2A/NLWeb에 대해 더 궁금하신가요?

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

자료


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