Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
d7bd3e8
chore(deps): bump org.assertj:assertj-core
dependabot[bot] Jan 26, 2026
15255b4
feat: drop gemini-1 support in GoogleSearchTool
tilgalas Feb 25, 2026
746e857
feat: Handle final and error TaskStatusUpdateEvents
tilgalas Feb 25, 2026
43e042a
Merge pull request #783 from google:dependabot/maven/maven-099704d0fe
copybara-github Feb 25, 2026
1a593a9
feat: remove model restrictions in BuiltInCodeExecutionTool
tilgalas Feb 25, 2026
94aacc8
chore: update errorprone to 2.47.0
tilgalas Feb 25, 2026
2d2903c
refactor: Replacing Optional in BaseToolSet with Nullable
google-genai-bot Feb 25, 2026
e162a6b
chore: bump auto-value version to 1.11.1
tilgalas Feb 26, 2026
70041fe
refactor: Adding a new BaseSessionService.createSession() that takes …
google-genai-bot Feb 26, 2026
63fbc05
chore: bump protobuf version to 4.33.5
tilgalas Feb 26, 2026
a738bb4
chore: bump truth version to 1.4.5
tilgalas Feb 26, 2026
25fde82
chore: bump com.google.cloud:libraries-pom version to 26.76.0
tilgalas Feb 26, 2026
b6ebfc5
chore: Add a suitable devcontainer.json
vorburger Feb 26, 2026
411b6d9
fix: Add missing logging for Async MCP Servers
vorburger Aug 19, 2025
ed0916f
chore: bump langchain4j version to 1.11.0
tilgalas Feb 26, 2026
313ce85
fix: LlmAgent model name resolution and improve Gemini-3 model detect…
google-genai-bot Feb 26, 2026
0b5ac92
fix: change Session events list to a threadsafe implementation by def…
google-genai-bot Feb 26, 2026
0f9600c
chore: bump otel version to 1.59.0
tilgalas Feb 27, 2026
f422b47
chore: bump httpclient5 version to 5.6
tilgalas Feb 27, 2026
e0f7137
feat: add the AgentExecutor config
google-genai-bot Feb 27, 2026
482fc76
chore: bump google genai version to 1.41.0
tilgalas Feb 27, 2026
64d3a77
fix: make a mutable copy of function args for the beforeToolCallback …
tilgalas Feb 27, 2026
571d162
chore(main): release 0.7.0
tilgalas Feb 27, 2026
0c4ea2a
Merge pull request #884 from google:release-please--branches--main
copybara-github Feb 27, 2026
39936b3
chore(main): release 0.7.1-SNAPSHOT
tilgalas Feb 27, 2026
4a75571
Merge pull request #928 from google:release-please--branches--main
copybara-github Feb 27, 2026
e3ea378
feat: add example on how to expose agent via A2A protocol
google-genai-bot Feb 27, 2026
117fedf
fix: downgrade otel.version to 1.51.0
tilgalas Mar 2, 2026
6a2669b
refactor: Replace Optional builder methods with @Nullable
google-genai-bot Mar 2, 2026
d899f6f
feat: Adding a SessionKey for typeSafety
google-genai-bot Mar 2, 2026
e064067
feat: implement partial event aggregation in RemoteA2AAgent
google-genai-bot Mar 3, 2026
d10109a
Merge pull request #374 from vorburger:mcp-logging-async
copybara-github Mar 3, 2026
71b1070
fix: Allow injecting ObjectMapper in FunctionTool, default to ObjectM…
vorburger Oct 7, 2025
2ec0e90
Merge pull request #915 from vorburger:github_codespace_java17
copybara-github Mar 3, 2026
5bc3ef8
fix: Exit from rearrangeEventsForLatestFunctionResponse if size of ev…
google-genai-bot Mar 3, 2026
89c49c7
dev: Increase DevContainer 2 to 4 CPUs, and rm extension
vorburger Mar 3, 2026
c0f9f95
chore: bump rxjava version to 3.1.12
tilgalas Mar 3, 2026
005121b
Merge pull request #487 from vorburger:issue-473_ObjectMapper-inject
copybara-github Mar 3, 2026
6959909
chore: bump docker-java version to 3.7.0
tilgalas Mar 4, 2026
840118f
chore: bump anthropic dep version to 2.15.0
tilgalas Mar 4, 2026
c1ccb2e
refactor!: remove support for legacy `transferToAgent`, superseded by…
Mar 4, 2026
6e30af3
refactor: Relax type constraints on callback lists in LlmAgent.Builder
google-genai-bot Mar 4, 2026
a0cba25
fix: Fixed issue where events were marked empty if the first part had…
google-genai-bot Mar 4, 2026
db0983b
chore: bump okhttp version to 5.3.2
tilgalas Mar 4, 2026
6001b44
chore: add illegal optional checkstyle check
tilgalas Mar 4, 2026
05fbcfc
feat: Adding a Builder for EventsCompactionConfig
google-genai-bot Mar 4, 2026
7e8f9dc
feat: add callbacks functionality to the agent executor
google-genai-bot Mar 4, 2026
acffdb9
fix: Ensure Gemini 3.1 models have events correctly buffered
google-genai-bot Mar 4, 2026
a3ac436
feat!: remove Optional parameters from LlmResponse.Builder's methods
tilgalas Mar 5, 2026
5b23d03
Merge pull request #940 from vorburger:dev-4cpu
copybara-github Mar 5, 2026
8c6591b
fix: prepare JSON serialization for Jackson 2.20.2 and Spring Boot 4.…
google-genai-bot Mar 5, 2026
dc1a192
feat: Adding plugin(Plugin... p) helper methods on App and Runner bui…
google-genai-bot Mar 5, 2026
401c25d
refactor:Fixes #947 Update Spring Boot version , Spring AI version, o…
ddobrin Mar 5, 2026
d2f1145
feat!: remove deprecated BaseToolset.isToolSelected method
tilgalas Mar 5, 2026
88153c8
feat!: remove deprecated methods accepting Optional params in Invocat…
tilgalas Mar 5, 2026
2426fcd
Merge pull request #962 from ddobrin:spring-pr
copybara-github Mar 5, 2026
c7d2a41
chore: switch release please secret to use adk-java-releases-bot's token
tilgalas Mar 6, 2026
b8eef9e
refactor: convert Optional<LiveRequestQueue> to @Nullable param in Ru…
tilgalas Mar 6, 2026
84c62a4
feat!: remove methods with Optional params from LiveRequest.Builder
tilgalas Mar 6, 2026
e25e335
refactor: remove unused converters code in the A2A; reduce Optional u…
google-genai-bot Mar 6, 2026
7eafd1b
chore: revert: switch release please secret to use adk-java-releases-…
tilgalas Mar 6, 2026
d6e6d15
chore(main): release 0.8.0
tilgalas Mar 6, 2026
7f09b99
Merge pull request #969 from google:release-please--branches--main
copybara-github Mar 6, 2026
47d0a19
chore(main): release 0.8.1-SNAPSHOT
tilgalas Mar 6, 2026
4d55455
Merge pull request #972 from google:release-please--branches--main
copybara-github Mar 6, 2026
0b9057c
feat!: remove methods with Optional params from VertexCredential.Builder
tilgalas Mar 6, 2026
924fb71
feat: add support for gemini models in VertexAiRagRetrieval
tilgalas Mar 6, 2026
11ce49e
chore: switch release please secret to use adk-java-releases-bot's token
tilgalas Mar 6, 2026
67b602f
feat!: use @Nullable fields in Event class
tilgalas Mar 6, 2026
44e63dd
Merge upstream/main, resolving conflicts with upstream priority
Sandeep-BA Mar 7, 2026
2291ad7
Fix build after upstream merge: restore custom dependencies and adapt…
Sandeep-BA Mar 7, 2026
a2edac0
Fix gRPC version mismatch causing A2A integration test failures
Sandeep-BA Mar 7, 2026
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
30 changes: 30 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"name": "Java 17",
"image": "mcr.microsoft.com/devcontainers/java:1-17-bullseye",
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/git-lfs:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"extension-pack-for-java",
"redhat.vscode-xml"
],
"settings": {
"java.jdt.download.server": "latest",
"java.help.firstView": "none",
"java.showBuildStatusOnStart": "notification",
"java.configuration.updateBuildConfiguration": "interactive",
"java.autobuild.enabled": true,
"terminal.integrated.focusOnOutput": false
}
}
},
"remoteUser": "vscode",
"forwardPorts": [8000, 8080, 8081, 8082],
"postCreateCommand": "git config --global credential.helper '!gh auth git-credential' && git config --global lfs.locksverify false",
"hostRequirements": {
"cpus": 4
}
}
2 changes: 1 addition & 1 deletion .github/workflows/release-please.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ jobs:
steps:
- uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.2.0"
".": "0.8.0"
}
369 changes: 135 additions & 234 deletions CHANGELOG.md

Large diffs are not rendered by default.

98 changes: 2 additions & 96 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,97 +1,3 @@

# Capability Supported

Of course. Here is the table with the 4th column for "Bedrock API" added.

| Feature | Gemini | Anthropic | AWS Bedrock API | Ollama | Azure OAI (redBus) | Bedrock+Anthropic |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| **Chat** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Tools/Function** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Chat Stream** | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
| **Image (Input)** | ✅ (Multimodal models) | ❌ | ✅ (Via models like Claude 3) | ✅ | ❓ | ❌ (Claude 3 models) |
| **Image Gen (Output)** | ✅ | ❌ | ✅ (Via Titan, Stable Diffusion) | ❌ | ❓ | ❌ (Via other models like Titan Image Generator) |
| **Audio Streaming (Input)** | ✅ (Some APIs/integrations) | ❌ | ❌ (Via Amazon Transcribe) | ❌ | ❓ |❌ (Via services like Amazon Transcribe) |
| **Transcription** | ✅ (Some APIs/integrations) | ❌ | ❌ (Via Amazon Transcribe) | ❌ | ❓ | ❌ (Via Amazon Transcribe) |
| **Persistent session (MapDB)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Agents as Tool/Function** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Interoperability (A2A)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Interoperability (Tools/Functions)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Interoperability (Agents as Tool/Function)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Agent Workflow** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Parallel Agents** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Sequential Agents** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Agent Orchestration** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Hierarchical Task Decomposition** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |


# Core Differences

## Persistent session storage added,

| Store | Chat | Stream | Artifact |
| :--- | :--- | :--- | :--- |
| **MapDB** | ✅ | ✅ | ✅ |
| **MongoDB** | ✅ | ✅ | ❌ |
| **Postgres** | ✅ | ✅ | ✅ |

### MapDbSessionService("map.db")

```
public BaseSessionService sessionService() {

try {
// TODO: Add logic to select service based on config (e.g., DB URL)
log.info("Using MapDbSessionService");
return new MapDbSessionService("map.db");
} catch (Exception ex) {
java.util.logging.Logger.getLogger(AdkWebServer.class.getName()).log(Level.SEVERE, null, ex);
}

// TODO: Add logic to select service based on config (e.g., DB URL)
log.info("Using InMemorySessionService");
return new InMemorySessionService();
}
```

## Ollama API Supported,

### OllamaBaseLM("qwen3:0.6b")
```
LlmAgent coordinator = LlmAgent.builder()
.name("Coordinator")
. model(new com.google.adk.models.OllamaBaseLM("qwen3:0.6b"))//
.instruction("You are an assistant. Delegate requests to appropriate agent")
.description("Main coordinator.")
.build();
```

## Secondary Auth Over Azure API

### RedbusADG("40")

```
LlmAgent.builder()
.name(NAME)
.model(new com.google.adk.models.OllamaBaseLM("qwen3:0.6b"))//.model(new RedbusADG("40"))
.description("Agent to calculate trigonometric functions (sine, cosine, tangent) for given angles.") // Updated description
.instruction(
"You are a helpful agent who can calculate trigonometric functions (sine, cosine, and"
+ " tangent). Use the provided tools to perform these calculations."
+ " When the user provides an angle, identify the value and the unit (degrees or radians)."
+ " Call the appropriate tool based on the requested function (sin, cos, tan) and provide the angle value and unit."
+ " Ensure the angle unit is explicitly passed to the tool as 'degrees' or 'radians'.") // Updated instruction
.tools(
// Register the new trigonometry tools
FunctionTool.create(TrigonometryAgent.class, "calculateSine"),
FunctionTool.create(TrigonometryAgent.class, "calculateCosine"),
FunctionTool.create(TrigonometryAgent.class, "calculateTangent")
// Removed FunctionTool.create for getCurrentTime and getWeather
)
.build();
```



# Agent Development Kit (ADK) for Java

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
Expand Down Expand Up @@ -144,13 +50,13 @@ If you're using Maven, add the following to your dependencies:
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk</artifactId>
<version>1.2.0</version>
<version>0.8.0</version>
</dependency>
<!-- Dev UI -->
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-dev</artifactId>
<version>1.2.0</version>
<version>0.8.0</version>
</dependency>
```

Expand Down
42 changes: 27 additions & 15 deletions a2a/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-parent</artifactId>
<version>1.2.0</version><!-- {x-version-update:google-adk:current} -->
<version>0.8.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
</parent>

<artifactId>google-adk-a2a</artifactId>
Expand All @@ -19,17 +19,22 @@
<a2a.sdk.version>0.3.2.Final</a2a.sdk.version>
<google.adk.version>${project.version}</google.adk.version>
<guava.version>33.0.0-jre</guava.version>
<jackson.version>2.19.0</jackson.version>
<rxjava.version>3.1.5</rxjava.version>
<jackson.version>2.19.0</jackson.version>
<jspecify.version>1.0.0</jspecify.version>
<slf4j.version>2.0.17</slf4j.version>
<errorprone.version>2.38.0</errorprone.version>
<grpc.version>1.76.2</grpc.version>
<slf4j.version>2.0.17</slf4j.version>
<truth.version>1.4.4</truth.version>
<junit4.version>4.13.2</junit4.version>
<grpc.version>1.62.2</grpc.version>
</properties>

<dependencies>
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk</artifactId>
<version>${google.adk.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
Expand All @@ -51,11 +56,6 @@
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk</artifactId>
<version>${google.adk.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
Expand All @@ -76,6 +76,11 @@
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
Expand Down Expand Up @@ -129,13 +134,13 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
Expand All @@ -149,7 +154,6 @@
<scope>test</scope>
</dependency>
</dependencies>

<build>
<extensions>
<extension>
Expand All @@ -159,6 +163,14 @@
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<release>${java.version}</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
Expand Down Expand Up @@ -187,7 +199,7 @@
</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>
io.grpc:protoc-gen-grpc-java:1.48.1:exe:${os.detected.classifier}
io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
</pluginArtifact>
</configuration>
<executions>
Expand Down
Loading
Loading