본문 바로가기

JAVA

A2A Java SDK 0.3.0.Beta1: REST 전송(HTTP+JSON) 지원으로 더 유연해진 멀티 에이전트 시스템

728x90
반응형
728x170

A2A(Java SDK)는 멀티 에이전트 시스템을 손쉽게 구현할 수 있도록 돕는 자바 기반 개발 도구입니다. 최근 공개된 A2A Java SDK 0.3.0.Beta1 버전에서는 개발자들이 특히 반가워할 기능인 HTTP+JSON/REST 전송(Transport) 지원이 추가되었습니다.

기존에는 gRPC나 JSON-RPC와 같은 전송 방식에만 의존해야 했지만, 이제 널리 사용되는 REST 방식을 활용할 수 있게 되면서 개발 환경은 한층 더 유연해졌습니다. 이번 글에서는 A2A 서버 에이전트와 클라이언트에서 REST 전송을 활성화하고 사용하는 방법을 단계별로 살펴보겠습니다.

반응형

A2A Java SDK란 무엇인가

A2A SDK는 여러 개의 에이전트가 서로 통신하며 협력할 수 있는 멀티 에이전트 시스템(Multi-Agent System) 을 쉽게 구축할 수 있도록 돕는 개발 키트입니다.

주요 특징은 다음과 같습니다.

  • 에이전트(Server/Client) 간 통신을 단순화
  • 다양한 전송 프로토콜(Transport) 지원
  • 시스템 확장성과 상호 운용성 강화

특히 이번 0.3.0.Beta1 버전의 핵심은 REST 전송 추가 지원입니다. HTTP를 기반으로 하기 때문에 기존 웹 인프라와 손쉽게 통합할 수 있으며, JSON 포맷을 통해 직관적이고 표준화된 데이터 교환이 가능합니다.


서버 에이전트에서 REST Transport 활성화

1. 의존성 추가

서버 에이전트가 REST 전송을 지원하려면 다음 의존성을 pom.xml에 추가해야 합니다.

<dependency>
    <groupId>io.github.a2asdk</groupId>
    <artifactId>a2a-java-sdk-reference-rest</artifactId> 
</dependency>

이 라이브러리는 A2A 프로토콜을 HTTP+JSON/REST 방식으로 구현하는 데 필요한 클래스와 엔드포인트를 제공합니다.


2. 에이전트 카드 업데이트

REST 전송을 지원하려면 에이전트 카드를 수정해 전송 방식을 지정합니다.

@Produces
@PublicAgentCard
public AgentCard agentCard() {
    return new AgentCard.Builder()
             .url("http://localhost:8080") // 서버의 기본 URL
             .preferredTransport(TransportProtocol.HTTP_JSON.asString()) // 선호 전송 방식
             .additionalInterfaces(List.of(
                     new AgentInterface(TransportProtocol.HTTP_JSON.asString(),
                                        "http://localhost:8080")
             ))
             .build();
}

구성 요소 설명:

  • url: 서버의 REST 엔드포인트 주소
  • preferredTransport: REST(HTTP+JSON)를 기본 전송 방식으로 지정
  • additionalInterfaces: 필요 시 다른 전송 방식(gRPC, JSON-RPC 등)도 함께 선언 가능

클라이언트에서 REST Transport 활성화

1. 기본 의존성 추가

클라이언트에서는 먼저 A2A 클라이언트 라이브러리를 프로젝트에 포함해야 합니다.

<dependency>
    <groupId>io.github.a2asdk</groupId>
    <artifactId>a2a-java-sdk-client</artifactId> 
</dependency>

2. REST 전송 의존성 추가

<dependency>
    <groupId>io.github.a2asdk</groupId>
    <artifactId>a2a-java-sdk-client-transport-rest</artifactId>
</dependency>

3. REST 클라이언트 생성

클라이언트 객체를 생성할 때 withTransport 메서드를 사용해 REST 방식을 명시합니다.

// REST 클라이언트 생성
Client client = Client
        .builder(agentCard)
        .withTransport(RestTransport.class, new RestTransportConfig()) 
        .build();

핵심 포인트는 다음과 같습니다.

  • 최소 하나 이상의 전송 방식은 반드시 설정해야 함
  • withTransport를 통해 REST 외에도 다른 전송 방식을 추가할 수 있음

728x90

A2A Java SDK 0.3.0.Beta1 릴리스는 멀티 에이전트 시스템 개발자들에게 중요한 전환점이 될 수 있습니다.

  • REST 지원을 통해 기존 웹 서비스와 손쉽게 통합 가능
  • 다양한 전송 프로토콜 선택으로 환경별 유연성 확보
  • 확장성과 상호 운용성이 강화되어 복잡한 멀티 에이전트 아키텍처 구현이 한층 용이

결론적으로, 이번 업데이트는 개발자들이 보다 직관적이고 호환성 높은 멀티 에이전트 시스템을 구축할 수 있도록 돕습니다. REST 전송의 추가는 단순히 새로운 기능을 넘어, 실무에서 활용 범위를 크게 넓히는 계기가 될 것입니다.

https://quarkus.io/blog/quarkus-a2a-java-0-3-0-beta-release/?fbclid=IwY2xjawM-RQdleHRuA2FlbQIxMQABHgBvxixRBfIo2RTAg3r1ckQ1T5fmlPgiUNK4tB-6pM-RP40qhvBildCuSn_s_aem_VkVftCagygx-nnSZPeOPRQ

 

A2A Java SDK: Support for the REST Transport is Now Here

Quarkus: Supersonic Subatomic Java

quarkus.io

728x90
반응형
그리드형