닷넷에서 A2A 시작하기
컨텐츠 정보
- 조회 489
본문
AI 툴의 활용 범위가 챗봇을 넘어 계속 확장되면서 새로운 작업 방식이 점점 더 중요해지고 있다. 에이전트 기술은 비즈니스 프로세스를 자동화할 수 있는 흥미로운 방법이라는 사실이 입증됐다. 이러한 기술은 AI 모델을 유연한 오케스트레이션 계층으로 취급해 사용자의 쿼리와 의도를 기반으로 기존 API에 대한 페이로드를 동적으로 생성할 수 있게 해준다.
닷넷에서 엔터프라이즈 AI 사용하기
시맨틱 커널 오케스트레이터의 에이전트 개발 프레임워크부터 마이크로소프트 애플리케이션 전반으로 확장되고 있는 모델 컨텍스트 프로토콜(MCP) 기능에 이르기까지, 마이크로소프트는 새로운 애플리케이션을 구축하기 위한 툴을 다양한 자체 개발 플랫폼에 계속 추가해왔다. 이러한 기능을 사용하면 애저 AI 파운드리(Azure AI Foundry)와 같은 서비스에서 작동하는 자체 AI 애플리케이션을 구축할 수 있다.
에이전트는 그 자체로 강력하지만 여러 에이전트를 결합하면 더 유용하고 흥미로운 툴이 되며, 특히 대규모 언어 모델(LLM)과 다른 머신 러닝 기법을 결합해서 전문적인 툴을 개발할 때 큰 효과를 발휘한다. 에이전트를 사용해 에이전트를 조율하고 서비스 카탈로그에서 선택하는 방식은 2000년대 초반에 등장한 서비스 지향 아키텍처(SOA) 모델에 새로운 접근 방식을 제시한다. 이 모델은 SOA와 이를 기반으로 구축된 MCP 서버를 새로운 인터페이스 기술 언어로 활용한다.
작업 중심 에이전트 AI와 A2A
상호 협력하는 에이전트들의 네트워크를 구현하려면 당연히 에이전트가 다른 에이전트와 통신하기 위한 표준이 필요하다. 이 표준은 에이전트의 기능에 대한 정보를 제공하고 데이터를 송수신한다. 구글이 개발한 A2A 프로토콜의 역할이 바로 여기에 있다. A2A는 데이터의 형태와 관계없이 모든 에이전트에서 작동하며, 장기간 실행되는 작업도 다룰 수 있다.
챗봇과 같은 사용자 중심 AI 애플리케이션과 달리 에이전트, 그리고 A2A 프로토콜은 작업 중심적이다. A2A 맥락에서 보면, 첫 요청을 보내는 클라이언트 에이전트는 에이전트 기능에 대한 지식을 바탕으로 작업을 관련된 여러 조각으로 분할한 다음 각 하위 작업을 가장 잘 처리할 수 있는 원격 에이전트로 전달한다. 장기 트랜잭션의 경우 작업 또는 작업 진행에 대한 알림이 클라이언트 에이전트로 반환되며, 클라이언트 에이전트는 이 다양한 결과를 사용자에게 또는 호출 애플리케이션을 위한 콘텐츠로 조합한다.
닷넷의 A2A
마이크로소프트는 최근 A2A 상호작용의 양쪽을 모두 지원해서 개발자가 익숙한 툴을 사용해 클라이언트 에이전트와 원격 에이전트를 구축할 수 있게 해주는 닷넷 A2A SDK의 초기 프리뷰 버전을 출시했다. 이 SDK로 구축된 클라이언트 에이전트는 호환되는 모든 에이전트를 그 에이전트의 위치나 개발된 방식에 관계없이 호출할 수 있으며, 원격 에이전트에 대해서도 동일한 지원을 제공한다.
첫 릴리스 버전에는 에이전트 기능 탐색, 다이렉트 메시징, 작업 기반 상호작용, 스트리밍 데이터 처리 등 프로토콜의 핵심 기능이 대부분 포함됐다. 또한 빠른 상호작용, 긴 워크플로우, 실시간 운영을 지원한다. 원격 에이전트의 경우 ASP.NET 코어를 사용해 기존 에이전트에 A2A 지원을 추가할 수 있다.
닷넷 A2A SDK는 깃허브에서 공개 개발 중이며 뉴겟(NuGet)을 통해 배포된다. 아파치 2.0 라이선스를 사용하므로 대부분의 기업 오픈소스 정책에 부합한다. 유의할 점은 지금 나온 버전은 프리뷰 버전이고 SDK와 A2A 프로토콜 모두 앞으로 변경될 가능성이 높다는 것이다. 참고로 A2A 프로토콜의 경우 2025년 4월 초에 처음 출시됐다.
첫 A2A 인터페이스 만들기
프리뷰를 시작하는 방법은 간단하다. 최신 닷넷 릴리즈(버전 8.0 이상)와 닷넷 개발 환경만 있으면 된다. 이 조건을 충족하면 닷넷 CLI를 통해 뉴겟에서 A2A와 A2A ASP.NET 코어 패키지를 설치해 기본적인 에이전트를 생성할 수 있다. 처음 시작할 때 샘플 코드가 도움이 될 것이다. 클라이언트와 서버, 그리고 시맨틱 커널도 지원된다.
에이전트에 MCP 지원 추가하기와 A2A 지원 추가하기는 많은 면에서 비슷하다. 기존 에이전트에 A2A만 추가하는 경우에는 A2A 메시지를 받아 에이전트가 기대하는 형식으로 전달하는 래퍼를 제공한다. 다른 방법은 A2A SDK를 사용해서 기존 또는 새로운 에이전트 코드에 새 인터페이스를 추가하는 것이다. 이 방법은 새 에이전트를 개발할 때 가장 적합하다. 코드를 라이브로 올리는 즉시 클라이언트 에이전트에 A2A 지원을 제공할 수 있기 때문이다.
에이전트 카드로 에이전트 설명하기
A2A 프로토콜의 핵심 기능 중 하나는 에이전트 카드(Agent Card)다. 에이전트 카드는 에이전트의 기능과 외부 환경과의 상호작용 방식을 설명하는 표준화된 방법이다. 알려진 URL을 통해 직접, 또는 레지스트리에 게시하는 방법으로 검색(discovery)에 사용되는 만큼 프로토콜의 필수적인 구성요소라고 할 수 있다. 레지스트리는 공개 또는 비공개 두 가지 종류가 있으며, 이를 통해 A2A 작업의 다양한 버전을 두고 예를 들어 에이전트와의 내부 상호작용을 위한 버전과 외부 인터넷에서 접근 가능한 버전을 구분해 구성할 수 있다.
카드는 JSON 형식으로 게시되며, 에이전트에 의해 생성될 수도 있고 개발자가 만들어 웹 서버에 저장할 수도 있다. 카드에 기밀 정보가 포함되지 않도록 잘 확인하고 적절한 액세스 제어를 적용해야 한다. 예를 들어 OAuth 또는 이와 비슷한 프로토콜을 사용해서 승인된 사용자와 애플리케이션만 액세스하도록 제한한다.
에이전트 카드는 사람과 기계가 읽을 수 있는 콘텐츠를 혼합한, 비교적 간소한 형식을 사용한다. 이를 통해 애플리케이션은 현재 어느 에이전트를 사용 중이고 그 이유는 무엇인지를 표시할 수 있으므로 기본적인 수준의 설명 가능성이 확보된다. 에이전트 카드의 가장 중요한 측면은 에이전트 스킬 목록이다. 에이전트가 A2A 워크플로우에서 어떻게 사용될지가 이 스킬 목록을 통해 결정된다. 샘플 프롬프트와 입력 및 출력 유형이 포함돼 있다.
에이전트 스킬 다음에는 클라이언트 에이전트가 원격 에이전트를 호출하는 방법을 설명하는 지원 인터페이스 유형에 대한 설명이 나온다. 에이전트는 REST, gRPC와 같은 여러 프로토콜을 지원할 수 있다. 인터페이스 URL도 포함해야 한다.
닷넷 A2A SDK를 사용하는 경우 이 작업의 상당부분을 코드로 처리할 수 있으므로 코드를 업데이트할 때 원격 에이전트 인터페이스도 함께 최신 상태로 유지하고, 모든 요소가 동기화됐는지 확인하기 위한 적절한 테스트를 작성할 수 있다. 카드 작성 외에 SDK에는 원격 에이전트에서 전달된 데이터를 저장하고 엔드포인트를 빠르게 지정할 수 있는 툴을 제공하는 에이전트 카드 객체도 포함돼 있다.
에이전트 대 에이전트 통신
또 다른 핵심 기능은 에이전트 간의 통신 방법이다. 클라이언트 에이전트에서 원격 에이전트로 간단히 메시지를 보낼 수 있다. 클라이언트는 응답을 기다리는 동안 닷넷의 비동기 프로그래밍 툴을 사용해서 전송된 메시지를 래핑한다. 비슷한 방식으로, 더 복잡한 작업을 전송하고 현재 작업이 실행 중인지, 완료되었는지, 또는 실패했는지 여부를 알려주는 응답을 폴링할 수 있다. SDK를 사용해 스트리밍 데이터를 빠르게 처리할 수도 있다.
ASP.NET 코어 지원은 A2A 닷넷 SDK의 또 다른 유용한 기능으로, ASP.NET에서 실행 중인 AI 애플리케이션을 빠르게 에이전트로 노출할 수 있게 해준다. ASP.NET 코어의 MCP 지원과 비슷한 방법으로 ASP.NET 코어 애플리케이션에 손쉽게 새로운 경로를 추가할 수 있다(예를 들어 /agent URL을 대표 엔드포인트로 사용). 확장 메서드가 대부분의 작업을 알아서 실행하면서 원격 에이전트의 A2A 구현에서 전송된 데이터를 사용해서 클라이언트 에이전트의 호출에 응답한다.
A2A 프로젝트의 인스펙터(Inspector)로 에이전트를 테스트할 수 있다. 인스펙터는 서버에 설치할 수 있는 파이썬 애플리케이션으로, 에이전트 카드를 표시하고 A2A 사양을 기준으로 작동을 검증하는 데 사용된다. 또한 기본적인 콘솔도 제공하므로 이 콘솔에서 모델과 상호작용하면서 의도대로 작동하는지 확인할 수 있다.
A2A 프로토콜이 여전히 발전 중인 만큼 닷넷 A2A SDK 역시 빠른 속도로 변화할 것으로 예상해야 한다. 그러나 현재 제공되는 기능도 닷넷 기반 AI 애플리케이션에서 프로토콜을 탐색하기 위한 출발점으로는 충분하다. ASP.NET 코어의 MCP 툴과 많은 부분에서 공통점이 있어 두 기술을 함께 사용하고 동일한 모델을 래핑할 수 있다.
마이크로소프트는 지금까지 많은 닷넷 기반 AI 툴을 개발해왔고, 닷넷 A2A SDK와 같은 기능을 통해 이를 최대한 신속하게 개발자에게 전달해 실험과 프로토타입 개발에 활용하도록 유도하고 있다.
작업 기반 에이전트 애플리케이션을 구축하려는 경우, 특히 장기 실행 트랜잭션의 행동을 관찰하기 위한 툴을 감안하면 이 SDK가 좋은 출발점이 된다. 이를 통해 사용자와 서비스에 최신 정보를 지속적으로 알릴 수 있으며, 애플리케이션은 장기간에 걸친 컨텍스트를 처리하기 위한 툴로서 현대 AI가 가진 역량을 활용할 수 있게 된다. 이러한 툴이 무엇을 만들어낼 수 있을지, 그리고 막다른 길에 다다른 챗봇에서 얼마나 빠르게 벗어나게 해줄지 지켜보는 것도 흥미로울 것이다.
dl-itworldkorea@foundryco.com
관련자료
-
링크
-
이전
-
다음





