Skip to content

Latest commit

 

History

History
82 lines (54 loc) · 3.41 KB

File metadata and controls

82 lines (54 loc) · 3.41 KB

A2A Java SDK

License

A2A Logo

A Java library that helps run agentic applications as A2A servers following the Agent2Agent (A2A) Protocol.

A multi-module Maven library providing client and server support for A2A agent communication over JSON-RPC, gRPC, and REST transports.

Documentation

Full documentation is available at a2aproject.github.io/a2a-java.

Quick Start

Requires Java 17+.

Add the A2A Java SDK reference server for JSON-RPC to your Maven project:

<dependency>
    <groupId>org.a2aproject.sdk</groupId>
    <artifactId>a2a-java-sdk-reference-jsonrpc</artifactId>
    <!-- Use a released version from https://github.com/a2aproject/a2a-java/releases --> 
    <version>${org.a2aproject.sdk.version}</version>
</dependency>

See the Server Guide for full setup instructions.

Build

mvn clean install

Regeneration of gRPC files

We copy https://github.com/a2aproject/A2A/blob/main/specification/grpc/a2a.proto to the spec-grpc/ project, and adjust the java_package option to be as follows:

option java_package = "org.a2aproject.sdk.grpc";

Then build the spec-grpc module with mvn clean install -Dskip.protobuf.generate=false to regenerate the gRPC classes in the org.a2aproject.sdk.grpc package.

Examples

Server Integrations

Community contributed integrations with various Java runtimes:

  • Quarkus — This project contains the reference implementations for JSON-RPC, gRPC, and HTTP+JSON (REST) transports.
  • Jakarta EEa2a-jakarta works with any runtime supporting the Jakarta EE Web Profile.

To contribute an integration, see CONTRIBUTING_INTEGRATIONS.md.

Extras

See the extras folder for optional add-ons (OpenTelemetry, JPA-backed task store, Kafka-based replicated queue manager, Vert.x and Android HTTP clients).

License

This project is licensed under the terms of the Apache 2.0 License.

Contributing

See CONTRIBUTING.md for contribution guidelines.