Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 21 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,26 +29,34 @@ More examples will be added soon.

The A2A Java SDK provides a Java server implementation of the [Agent2Agent (A2A) Protocol](https://google-a2a.github.io/A2A). To run your agentic Java application as an A2A server, simply follow the steps below.

- [Add the A2A Java SDK Core Maven dependency to your project](#1-add-the-a2a-java-sdk-core-maven-dependency-to-your-project)
- [Add an A2A Java SDK Server Maven dependency to your project](#1-add-an-a2a-java-sdk-server-maven-dependency-to-your-project)
- [Add a class that creates an A2A Agent Card](#2-add-a-class-that-creates-an-a2a-agent-card)
- [Add a class that creates an A2A Agent Executor](#3-add-a-class-that-creates-an-a2a-agent-executor)
- [Add an A2A Java SDK Server Maven dependency to your project](#4-add-an-a2a-java-sdk-server-maven-dependency-to-your-project)

### 1. Add the A2A Java SDK Maven dependencies to your project
### 1. Add an A2A Java SDK Server Maven dependency to your project

> **Note**: The A2A Java SDK isn't available yet in Maven Central but will be soon. For now, be
> sure to check out the latest tag (you can see the tags [here](https://github.com/a2aproject/a2a-java/tags)), build from the tag, and reference that version below. For example, if the latest tag is `0.2.3`, you can use the following dependency.
Adding a dependency on an A2A Java SDK Server will provide access to the core classes that make up the A2A specification
and allow you to run your agentic Java application as an A2A server agent.

The A2A Java SDK provides two A2A server endpoint implementations, one based on Jakarta REST (`a2a-java-sdk-server-jakarta`) and one based on Quarkus Reactive Routes (`a2a-java-sdk-server-quarkus`). You can choose the one that best fits your application.

Add **one** of the following dependencies to your project:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The dependency snippet uses a Maven property ${io.a2a.sdk.version} without explaining where this version comes from. This could be confusing for users, especially since the previous version of the README provided specific guidance on versioning.

To improve clarity and usability, I suggest adding a note that explains users need to replace this placeholder with a specific version and provides links to find the latest releases.

Suggested change
Add **one** of the following dependencies to your project:
Add **one** of the following dependencies to your project:
<!-- Place this comment at the location where the note should be added -->
```xml
<dependency>
<groupId>io.a2a.sdk</groupId>
<artifactId>a2a-java-sdk-server-jakarta</artifactId>
<version>${io.a2a.sdk.version}</version>
</dependency>

Note: Replace ${io.a2a.sdk.version} with the desired SDK version. You can find the latest available versions on Maven Central or in the project's releases.


```xml
<dependency>
<groupId>io.a2a.sdk</groupId>
<artifactId>a2a-java-sdk-client</artifactId>
<version>0.2.3</version>
<artifactId>a2a-java-sdk-server-jakarta</artifactId>
<version>${io.a2a.sdk.version}</version>
</dependency>
```

OR

```xml
<dependency>
<groupId>io.a2a.sdk</groupId>
<artifactId>a2a-java-sdk-server-common</artifactId>
<version>0.2.3</version>
<artifactId>a2a-java-sdk-server-quarkus</artifactId>
<version>${io.a2a.sdk.version}</version>
</dependency>
```

Expand Down Expand Up @@ -185,39 +193,19 @@ public class WeatherAgentExecutorProducer {
}
```

### 4. Add an A2A Java SDK Server Maven dependency to your project

> **Note**: The A2A Java SDK isn't available yet in Maven Central but will be soon. For now, be
> sure to check out the latest tag (you can see the tags [here](https://github.com/a2aproject/a2a-java/tags)), build from the tag, and reference that version below. For example, if the latest tag is `0.2.3`, you can use the following dependency.

Adding a dependency on an A2A Java SDK Server will allow you to run your agentic Java application as an A2A server.

The A2A Java SDK provides two A2A server endpoint implementations, one based on Jakarta REST (`a2a-java-sdk-server-jakarta`) and one based on Quarkus Reactive Routes (`a2a-java-sdk-server-quarkus`). You can choose the one that best fits your application.

Add **one** of the following dependencies to your project:

```xml
<dependency>
<groupId>io.a2a.sdk</groupId>
<artifactId>a2a-java-sdk-server-jakarta</artifactId>
<version>${io.a2a.sdk.version}</version>
</dependency>
```
## A2A Client

OR
The A2A Java SDK provides a Java client implementation of the [Agent2Agent (A2A) Protocol](https://google-a2a.github.io/A2A), allowing communication with A2A servers.
To make use of the Java `A2AClient`, simply add the following dependency:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Similar to the server dependency, the client dependency snippet uses the ${io.a2a.sdk.version} property without context. It would be beneficial for users to have guidance on how to find and specify the correct version.

Please consider adding a note here as well.

Suggested change
To make use of the Java `A2AClient`, simply add the following dependency:
To make use of the Java `A2AClient`, simply add the following dependency:
<!-- Place this comment at the location where the note should be added -->
```xml
<dependency>
<groupId>io.a2a.sdk</groupId>
<artifactId>a2a-java-sdk-client</artifactId>
<version>${io.a2a.sdk.version}</version>
</dependency>

Note: Replace ${io.a2a.sdk.version} with the desired SDK version. You can find the latest available versions on Maven Central or in the project's releases.


```xml
<dependency>
<groupId>io.a2a.sdk</groupId>
<artifactId>a2a-java-sdk-server-quarkus</artifactId>
<artifactId>a2a-java-sdk-client</artifactId>
<version>${io.a2a.sdk.version}</version>
</dependency>
```

## A2A Client

The A2A Java SDK provides a Java client implementation of the [Agent2Agent (A2A) Protocol](https://google-a2a.github.io/A2A), allowing communication with A2A servers.

### Sample Usage

#### Create an A2A client
Expand Down
5 changes: 0 additions & 5 deletions tck/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,6 @@
<description>Server example to use with the A2A TCK</description>

<dependencies>
<dependency>
<groupId>io.a2a.sdk</groupId>
<artifactId>a2a-java-sdk-spec</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.a2a.sdk</groupId>
<artifactId>a2a-java-sdk-server-quarkus</artifactId>
Expand Down