Skip to content

Commit a4e797d

Browse files
committed
Incorporating remaining feedback
1 parent 7acc1fd commit a4e797d

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

_posts/2025-07-09-quarkus-and-a2a-java-sdk.adoc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: post
33
title: 'Getting Started with Quarkus and the A2A Java SDK'
44
date: 2025-07-09
5-
tags: release
5+
tags: ai a2a
66
synopsis: 'Today, we released A2A Java SDK 0.2.3.Beta1. This makes it possible to quickly get started with Quarkus and A2A.'
77
author: fjuma
88
---
@@ -12,6 +12,8 @@ A couple of weeks ago, we https://quarkus.io/blog/a2a-project-launches-java-sdk/
1212

1313
You can also check out our https://www.youtube.com/watch?v=5CZzW-wvEQs[short video] that gives an introduction to the A2A Java SDK.
1414

15+
video::5CZzW-wvEQs[youtube,width=640, height=360]
16+
1517
== What's A2A?
1618

1719
Before jumping into the details, let's go through what https://a2aproject.github.io/A2A/specification/[A2A] is. The _Agent2Agent_ (A2A) protocol is an open standard developed by Google. It enables AI agents to communicate and collaborate with one another, regardless of each agent's underlying framework, language, or vendor. This is important, as it paves the way for polyglot multi-agent systems.
@@ -24,13 +26,13 @@ The A2A protocol involves a few important concepts:
2426
* *A2A Client* - This is the client that will send requests on the user's behalf to an A2A server agent.
2527
* *A2A Server* - This is the server agent that will receive and respond to requests from an A2A client agent. An A2A server agent exposes an HTTP endpoint that implements the A2A protocol.
2628

27-
A2A client and A2A server agents can be implemented using different languages and frameworks. They just need to be able to speak with each other using the A2A protocol. Communication happens using JSON-RPC 2.0 over HTTP(S) as transport. A2A SDKs written for various programming languages enable this interoperability.
29+
A2A client and A2A server agents can be implemented using different languages and frameworks. They just need to be able to speak with each other using the A2A protocol. Communication happens using JSON-RPC 2.0 over HTTP(S) as the transport. A2A SDKs written for various programming languages enable this interoperability.
2830

2931
The https://github.com/orgs/a2aproject/repositories[A2A project] aims to provide SDKs for various languages. Using the https://github.com/a2aproject/a2a-python[A2A Python SDK] and our https://github.com/a2aproject/a2a-java[A2A Java SDK], for example, it's possible for an A2A client agent written in Python to communicate with an A2A server agent written in Java and vice versa.
3032

3133
== From a Quarkus LangChain4j AI Service to an A2A Server Agent
3234

33-
Let's say we have a Quarkus LangChain4j AI service that can respond to user queries about the weather by making use of a weather MCP server:
35+
Let's say we have a https://docs.quarkiverse.io/quarkus-langchain4j/dev/ai-services.html[Quarkus LangChain4j AI service] that can respond to user queries about the weather by making use of a weather MCP server:
3436

3537
[source,java]
3638
----
@@ -67,7 +69,7 @@ The `io.github.a2asdk` `groupId` is temporary and will likely change for future
6769
<artifactId>a2a-java-sdk-server-quarkus</artifactId> <1>
6870
</dependency>
6971
----
70-
<1> `a2a-java-sdk-server-quarkus` provides access to the core classes that make up the A2A specification and provides the HTTP endpoint that implements the A2A protocol. This dependency makes use of Quarkus Reactive Routes. To make use of Jakarta REST, the `a2a-java-sdk-server-jakarta` dependency can be used instead.
72+
<1> `a2a-java-sdk-server-quarkus` provides access to the core classes that make up the A2A specification and provides the HTTP endpoint that implements the A2A protocol. This dependency makes use of Quarkus Reactive Routes. If not using Quarkus, the `a2a-java-sdk-server-jakarta` dependency can be used to expose an A2A server agent in a Jakarta server supporting CDI and Jakarta RESTful Web Services.
7173

7274
=== Add a Class that Creates an A2A `AgentCard`
7375

@@ -273,7 +275,7 @@ image::la_airbnb.png[scaledwidth=100%]
273275

274276
== Conclusion
275277

276-
We've seen how easy it is to get started with Quarkus and A2A using the A2A Java SDK. With just a few steps, we can turn a Quarkus LangChain4j AI service into an A2A server agent that can communicate with other A2A agents, regardless of the language or framework they are implemented in.
278+
We've seen how easy it is to get started with Quarkus and A2A using the A2A Java SDK. With just a few steps, we can turn a Quarkus LangChain4j AI service into an A2A server agent that can communicate with other A2A agents, regardless of the language or framework they are implemented in. The LangChain4j and Quarkus teams are also working on removing most of the boilerplate code to expose an A2A server and interact with A2A clients. So, stay tuned!
277279

278280
=== Further Reading
279281

0 commit comments

Comments
 (0)