You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2025-07-09-quarkus-and-a2a-java-sdk.adoc
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
layout: post
3
3
title: 'Getting Started with Quarkus and the A2A Java SDK'
4
4
date: 2025-07-09
5
-
tags: release
5
+
tags: ai a2a
6
6
synopsis: 'Today, we released A2A Java SDK 0.2.3.Beta1. This makes it possible to quickly get started with Quarkus and A2A.'
7
7
author: fjuma
8
8
---
@@ -12,6 +12,8 @@ A couple of weeks ago, we https://quarkus.io/blog/a2a-project-launches-java-sdk/
12
12
13
13
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.
14
14
15
+
video::5CZzW-wvEQs[youtube,width=640, height=360]
16
+
15
17
== What's A2A?
16
18
17
19
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:
24
26
* *A2A Client* - This is the client that will send requests on the user's behalf to an A2A server agent.
25
27
* *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.
26
28
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.
28
30
29
31
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.
30
32
31
33
== From a Quarkus LangChain4j AI Service to an A2A Server Agent
32
34
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:
34
36
35
37
[source,java]
36
38
----
@@ -67,7 +69,7 @@ The `io.github.a2asdk` `groupId` is temporary and will likely change for future
<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.
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!
0 commit comments