ai-agents-for-beginners

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

Agentic Protocols

(위 이미지를 클릭하면 이번 강의의 비디오를 볼 수 있습니다)

AI 에이전트의 사용이 늘어남에 따라 표준화, 보안 보장 및 개방형 혁신 지원을 위한 프로토콜의 필요성도 커지고 있습니다. 이번 강의에서는 이러한 요구를 충족하기 위해 설계된 3가지 프로토콜 — 모델 컨텍스트 프로토콜(Model Context Protocol, MCP), 에이전트 간 통신(Agent to Agent, A2A), 자연어 웹(Natural Language Web, NLWeb)을 다룹니다.

소개

이번 강의에서는 다음 내용을 다룹니다:

• AI 에이전트가 외부 도구와 데이터에 접근하여 사용자 작업을 완료할 수 있도록 하는 MCP의 기능.

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

• AI 에이전트가 웹사이트 콘텐츠를 발견하고 상호작용할 수 있도록 자연어 인터페이스를 제공하는 NLWeb의 역할.

학습 목표

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

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

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

모델 컨텍스트 프로토콜

모델 컨텍스트 프로토콜(Model Context Protocol, 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 Diagram

사용자가 MCP 기반 AI 비서를 통해 항공편을 예약하려 한다고 가정합시다.

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

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

  3. 도구 호출: 사용자가 “포틀랜드에서 호놀룰루까지 항공편을 검색해 주세요”라고 AI 비서에게 요청하면, AI 비서는 LLM을 활용해 “항공편 검색” 도구를 호출하여 출발지와 목적지 매개변수를 MCP 서버에 전달합니다.

  4. 실행 및 응답: MCP 서버는 래퍼처럼 항공사의 내부 예약 API를 호출합니다. 그리고 항공편 정보를 받아 AI 비서에게 되돌려 줍니다(예: JSON 데이터).

  5. 추가 상호작용: AI 비서는 항공편 옵션을 제시합니다. 사용자가 특정 항공편을 선택하면 비서는 같은 MCP 서버의 “항공편 예약” 도구를 호출하여 예약을 완료합니다.

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

MCP가 LLM과 도구 연결에 중점을 둔다면, 에이전트 간 프로토콜(Agent-to-Agent, A2A)은 서로 다른 AI 에이전트 간 통신과 협업을 가능하게 하여 공동 작업을 완수할 수 있게 합니다. A2A는 조직, 환경, 기술 스택이 다른 AI 에이전트를 연결합니다.

이제 A2A의 구성 요소와 이점을 살펴보고 우리 여행 애플리케이션에서 어떻게 적용될 수 있는지 예제를 보여드리겠습니다.

A2A 핵심 구성 요소

A2A는 에이전트 간 통신과 사용자 문제의 하위 작업을 협력해 완료하는 데 집중합니다. 각 구성 요소는 다음과 같은 역할을 합니다:

에이전트 카드

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

에이전트 실행기

에이전트 실행기는 사용자 대화의 컨텍스트를 원격 에이전트에 전달할 책임이 있습니다. 원격 에이전트는 수행해야 할 작업을 이해하기 위해 이를 필요로 합니다. A2A 서버에서 에이전트는 자체 LLM을 사용해 요청을 파싱하고 내부 도구로 작업을 실행합니다.

아티팩트

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

이벤트 큐

이 구성 요소는 업데이트 처리와 메시지 전달에 사용됩니다. 특히 작업 완료까지 시간이 걸릴 때 에이전트 간 연결이 조기에 종료되는 것을 방지하여 생산 환경에서 매우 중요합니다.

A2A의 이점

• 협업 강화: 다른 벤더 및 플랫폼의 에이전트들이 상호작용, 컨텍스트 공유, 공동 작업을 할 수 있게 하여 전통적으로 단절된 시스템 간 원활한 자동화를 지원합니다.

• 모델 선택 유연성: 각 A2A 에이전트는 자신의 요청을 처리할 LLM을 선택할 수 있어, MCP에서 단일 LLM 연결과 달리 에이전트별 최적화 또는 맞춤 모델 사용이 가능합니다.

• 내장 인증: 인증이 A2A 프로토콜에 직접 통합되어 에이전트 간 상호작용 보안을 강화합니다.

A2A 예제

A2A Diagram

여행 예약 시나리오를 A2A 사용으로 확장해 봅시다.

  1. 사용자의 다중 에이전트 요청: 사용자는 “다음 주 호놀룰루로 항공편, 호텔, 렌터카를 포함한 전체 여행을 예약해 주세요”라고 Travel Agent A2A 클라이언트/에이전트에게 말할 수 있습니다.

  2. Travel Agent의 조정 역할: Travel Agent는 복잡한 요청을 받아 LLM을 사용해 작업을 분석하고 다른 전문 에이전트와 상호작용해야 함을 결정합니다.

  3. 에이전트 간 통신: Travel Agent는 A2A 프로토콜을 사용해 여러 회사에서 만든 “항공사 에이전트”, “호텔 에이전트”, “렌터카 에이전트”와 연결합니다.

  4. 위임 작업 실행: Travel Agent는 이러한 전문 에이전트에 각각 “호놀룰루행 항공편 찾기”, “호텔 예약”, “렌터카 예약” 같은 특정 작업을 보냅니다. 각 에이전트는 자체 LLM과 도구(자체 MCP 서버일 수 있음)를 사용해 예약 작업을 수행합니다.

  5. 통합 응답: 하위 에이전트들이 모두 작업을 완료하면 Travel Agent는 결과(항공편 정보, 호텔 예약 확인, 렌터카 예약)를 모아 종합적이고 채팅 형식의 답변으로 사용자에게 전달합니다.

자연어 웹 (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에 대해 추가 질문이 있나요?

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

자료

이전 강의

생산 환경에서의 AI 에이전트

다음 강의

AI 에이전트를 위한 컨텍스트 엔지니어링


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