# A2A Go SDK

The A2A Go SDK is an official Go library for building agentic applications that serve or consume the Agent2Agent protocol, with client and server APIs across gRPC, REST and JSON-RPC transports.

The A2A Go SDK is a Go library implementing the Agent2Agent (A2A) protocol, with high-level APIs for both serving agentic functionality through the a2asrv package and consuming it through a2aclient, and protocol bindings for gRPC, REST and JSON-RPC.

On the server side, a transport-agnostic request handler wraps a custom AgentExecutor, then is exposed over one or more transports such as gRPC or a JSON-RPC or REST HTTP handler. On the client side, a resolver fetches an AgentCard describing how an agent is exposed, and a transport-agnostic client is created from that card to send requests, such as SendMessage, to the agent. The SDK is extensible with custom transport implementations, authentication middleware, and messaging or database backends, and requires Go 1.25 or later.

Website: https://github.com/a2aproject/a2a-go
