A2A Java SDK 1.0.0.Alpha2 Released
We are pleased to announce the release of A2A Java SDK 1.0.0.Alpha2. This release brings significant new features and improvements as we continue to align with the A2A 1.0 specification.
What’s A2A?
The Agent2Agent (A2A) Protocol is an open standard that enables AI agents to communicate and collaborate with one another, regardless of each agent’s underlying framework, language, or vendor. The A2A Java SDK makes it easy to build A2A-compliant agents in Java, with reference implementations based on Quarkus.
Key Highlights in 1.0.0.Alpha2
This release includes several important enhancements and breaking changes:
New Features
Telemetry Support
The A2A Java SDK now includes built-in support for telemetry using OpenTelemetry. This allows you to monitor and trace your agent’s operations, making it easier to diagnose issues and understand performance characteristics.
To use the telemetry features, add the OpenTelemetry extras to your project:
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-extras-opentelemetry-client</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-extras-opentelemetry-server</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
Push Notifications
We’ve implemented full support for push notifications as specified in the A2A 1.0 specification. This allows agents to receive notifications about task updates without polling.
Server agents can now:
-
Configure push notification endpoints
-
Manage push notification configurations per task
-
Receive notifications when task states change
Clients can:
-
Get, set, list, and delete push notification configurations
-
Subscribe to task updates via push notifications
Protocol Updates
Breaking Changes
|
This release includes breaking changes to align with the latest A2A specification. |
-
AgentEmitter API: The
AgentExecutormethods now useAgentEmitterinstead of the previousEventQueue+TaskUpdatercombination, providing a more streamlined and intuitive API. This enhancement allows sending Messages for simple Agent interactions directly through theAgentEmitter, eliminating the need to interact with the EventQueue directly. -
Protocol Alignment: Updated the A2A protocol implementation to align with the latest specification revision, including updates to the gRPC protocol definitions.
Additional Improvements
-
Null-Safety: Migrated the spec module to use JSpecify annotations for better null-safety guarantees
-
Jakarta CDI Compatibility: Added no-args constructors for improved Jakarta CDI compatibility
-
HTTP+JSON/REST Transport: Replaced
quarkus-rest-jacksonwithquarkus-restfor better integration -
Event Processing: Implemented the MainEventBus architecture for more robust event queue processing
-
MicroProfile Config: Added missing
META-INF/beans.xmlto the microprofile-config integration
Migration Guide
If you’re upgrading from 1.0.0.Alpha1, you’ll need to make the following changes:
Update AgentExecutor Implementation
The execute and cancel methods now receive an AgentEmitter parameter instead of EventQueue:
// Before (1.0.0.Alpha1)
@Override
public void execute(RequestContext context, EventQueue eventQueue) throws JSONRPCError {
final TaskUpdater updater = new TaskUpdater(context, eventQueue);
updater.submit();
updater.startWork();
// ...
}
// After (1.0.0.Alpha2)
@Override
public void execute(RequestContext context, AgentEmitter agentEmitter) throws JSONRPCError {
agentEmitter.submit();
agentEmitter.startWork();
// ...
}
The AgentEmitter interface provides the same functionality with a cleaner API.
Getting Started
To use A2A Java SDK 1.0.0.Alpha2, add the appropriate dependencies to your project:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-bom</artifactId>
<version>1.0.0.Alpha1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- For JSON-RPC transport -->
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-reference-jsonrpc</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
<!-- For gRPC transport -->
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-reference-grpc</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
<!-- For HTTP+JSON/REST transport -->
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-reference-rest</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
Conclusion
A2A Java SDK 1.0.0.Alpha2 represents a significant step forward in our journey toward full A2A 1.0 specification compliance. The addition of telemetry support and push notifications makes it easier to build production-ready agents, while the protocol updates ensure compatibility with the latest specification.
We encourage you to try out this release and provide feedback through our GitHub issue tracker. Your input helps shape the future of the A2A Java SDK.