a2aproject/a2a-go
Golang SDK for A2A Protocol
What is A2A Go SDK?
A2A Go SDK는 Go 라이브러리로, 에이전트 간(Agent-to-Agent, A2A) 프로토콜 v1.0 을 사용하는 에이전트 서비스 를 구축하고 사용할 수 있게 해줍니다. 실제로는 에이전트 는 요청(예: 사용자 메시지)을 받고, 일반적으로 LLM 또는 기타 AI 모델을 통해 로직을 실행한 후 응답을 반환하는 소프트웨어의 일부입니다. SDK는 네트워킹, 메시지 포맷팅, 프로토콜 준수를 자동으로 처리하므로, 에이전트의 핵심 로직에만 집중할 수 있습니다.
Core Components
| Component | What it does | Typical use |
|---|---|---|
a2asrv (Server SDK) |
트랜스포트에 의존하지 않는 요청 핸들러 를 생성하고 gRPC, REST, 또는 JSON-RPC용으로 래핑합니다. | 다른 에이전트가 호출할 수 있는 AI 기반 에이전트 서비스로 배포합니다. |
a2aclient (Client SDK) |
AgentCard (에이전트에 접근하는 방법을 설명하는 메타데이터) 를 해결하고 메시지를 보낼 수 있는 클라이언트를 생성합니다. | Go 프로그램이나 CLI 도구에서 다른 에이전트를 호출합니다. |
Transport bindings (a2agrpc, a2asrv.NewRESTHandler, etc.) |
일반 핸들러를 구체적인 네트워크 서버/클라이언트로 변환합니다. | 환경에 맞는 프로토콜을 선택할 수 있습니다 (고성능 gRPC, 간단한 HTTP 등). |
| Extension points | 사용자 정의 트랜스포트, 인증 미들웨어, 메시지 저장소 등을 플러그인 가능합니다. | 기존 인증 시스템, 데이터베이스, 또는 사용자 정의 네트워크 계층과 통합합니다. |
Getting Started (Step-by-step)
Install the SDK
go get github.com/a2aproject/a2a-go/v2Go 1.25+ 필요.
Write a server
// 에이전트 로직을 실행할 수 있는 자체 실행기 생성. agentExec := newMyAgentExecutor() handler := a2asrv.NewHandler(agentExec) // 트랜스포트 선택 – 여기서는 gRPC. grpcHandler := a2agrpc.NewHandler(handler) srv := grpc.NewServer() grpcHandler.RegisterWith(srv) srv.Serve(lis) // lis 는 net.ListenernewMyAgentExecutor는 LLM 호출, 스크립트 실행 등의 코드로 대체하세요.Write a client
card, _ := agentcard.DefaultResolver.Resolve(ctx) // 원격 에이전트 탐지 client, _ := a2aclient.NewFromCard(ctx, card) msg := a2a.NewMessage(a2a.MessageRoleUser, a2a.NewTextPart("Hello!")) resp, _ := client.SendMessage(ctx, &a2a.SendMessageRequest{Message: msg}) fmt.Println(resp)Run the example 리포지토리는 양방향을 보여주는 최소한의
examples/helloworld를 포함하고 있습니다.
Why Use A2A?
- 표준화된 통신 – A2A 사양을 따르면, 다른 언어의 에이전트도 커스텀 어댑터 없이 상호작용 가능합니다.
- 트랜스포트 유연성 – 동일한 비즈니스 로직을 gRPC, 일반 HTTP, 또는 JSON-RPC로 몇 줄의 연결 코드만으로 노출할 수 있습니다.
- 플러그인 아키텍처 – 코어를 다시 작성하지 않고도 사용자 정의 인증, 저장소, 트랜스포트 계층을 교체할 수 있습니다.
- CLI 보조 도구 – 별도의
a2a-cli도구를 사용하면 Go 코드를 작성하지 않고도 에이전트를 테스트하거나 탐지하거나 로컬 스크립트를 A2A 엔드포인트로 노출할 수 있습니다.
Ecosystem & Resources
- Documentation – 전체 API 참조는 https://pkg.go.dev/github.com/a2aproject/a2a-go/v2 에 있습니다.
- CLI tool –
a2a-cli(리포지토리:a2aproject/a2a-cli) 는 빠른 실험에 적합합니다. - Sample projects – 더 복잡한 사용 사례는
a2aproject/a2a-samples에 있습니다. - Specification – 프로토콜 정의는 https://a2a-protocol.org 에 공개되어 있습니다.
- Contribution – 가이드라인은
CONTRIBUTING.md에 있으며, 대규모 변경 전에 이슈를 열어주세요.
TL;DR
A2A Go SDK는 공통되고 버전 관리된 프로토콜을 사용하는 AI 중심 에이전트 서비스 를 구축하기 위한 프로덕션 준비 완료 라이브러리입니다. gRPC/REST/JSON-RPC 등의 네트워킹을 추상화하고, 준비된 클라이언트 및 서버 도우미를 제공하며, 사용자 정의 인증 또는 저장소 요구 사항에 대해 확장 가능합니다. LLM 기반 에이전트를 표준 준수 방식으로 노출 또는 사용해야 하는 Go 코드를 작성 중이라면, 이 SDK는 뼈대 코드를 제공하여 모델 로직 자체에 집중할 수 있도록 도와줍니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트