Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
78766c1
feat: Allowing McpAsycToolset Builder to take in a McpSessionManager
google-genai-bot Apr 13, 2026
9031cad
fix: Fix ADK Runner race condition for sequential tool execution
google-genai-bot Apr 14, 2026
69680bb
fix: Fix ADK Runner race condition for sequential tool execution
google-genai-bot Apr 14, 2026
1a3dd61
fix: Allow BuiltInCodeExecutor for Gemini 3 models
damianmomotgoogle Apr 15, 2026
f4cd1b7
feat: Forward state delta from all events to parent session instead o…
google-genai-bot Apr 15, 2026
629c390
feat: Make BigQueryAgentAnalyticsPlugin state per-invocation
google-genai-bot Apr 15, 2026
5be29d4
ADK changes
google-genai-bot Apr 16, 2026
589328e
feat: Support ChatCompletionChunk to LlmResponse conversion
google-genai-bot Apr 17, 2026
1604c69
chore(main): release 1.1.1-SNAPSHOT
adk-java-releases-bot Apr 17, 2026
26429af
Merge pull request #1129 from google:release-please--branches--main
copybara-github Apr 18, 2026
4009905
feat:Add telemetry headers
google-genai-bot Apr 21, 2026
02a08a1
feat: Support plugins in Java AgentTool similar to Python's implement…
google-genai-bot Apr 23, 2026
52323b4
feat: Adding functionality to support customer content formating
google-genai-bot Apr 24, 2026
aa0907b
chore(main): release 1.2.0
adk-java-releases-bot Apr 24, 2026
a1fc13a
Merge pull request #1150 from google:release-please--branches--main
copybara-github Apr 27, 2026
e9b5c3e
chore(main): release 1.2.1-SNAPSHOT
adk-java-releases-bot Apr 27, 2026
dd46b25
Merge pull request #1162 from google:release-please--branches--main
copybara-github Apr 27, 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
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.1.0"
".": "1.2.0"
}
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# Changelog

## [1.2.0](https://github.com/google/adk-java/compare/v1.1.0...v1.2.0) (2026-04-24)


### Features

* Add telemetry headers ([4009905](https://github.com/google/adk-java/commit/40099057e2b59f34e868da4c34dcd9c1194b2fde))
* Adding functionality to support customer content formating ([52323b4](https://github.com/google/adk-java/commit/52323b44c89f233e2dd794aee33df8ba5318790e))
* Allowing McpAsycToolset Builder to take in a McpSessionManager ([78766c1](https://github.com/google/adk-java/commit/78766c179192ff8e560502e0365b45f87ecac433))
* Forward state delta from all events to parent session instead of just the last event ([f4cd1b7](https://github.com/google/adk-java/commit/f4cd1b754b62fcbf82da22aabc695911d416e51a))
* Implement BigQuery auto-schema upgrade and view creation ([14027d1](https://github.com/google/adk-java/commit/14027d1545237675a507706d792825356575f73c))
* Make BigQueryAgentAnalyticsPlugin state per-invocation ([629c390](https://github.com/google/adk-java/commit/629c390de9ca0ec49cba18a0689d299f9261c1fa))
* Support ChatCompletionChunk to LlmResponse conversion ([589328e](https://github.com/google/adk-java/commit/589328ea747ad4a994223af5789320e171ea2aa7))
* Support plugins in Java AgentTool similar to Python's implementation ([02a08a1](https://github.com/google/adk-java/commit/02a08a10f087975491d55a29329d6011362925ce))


### Bug Fixes

* Allow BuiltInCodeExecutor for Gemini 3 models ([1a3dd61](https://github.com/google/adk-java/commit/1a3dd612217a05e2f8fff69720087ed1136a09ab))
* Fix ADK Runner race condition for sequential tool execution ([69680bb](https://github.com/google/adk-java/commit/69680bbeae11578199eca4efcaf5ecddea2dd552))
* Fix ADK Runner race condition for sequential tool execution ([9031cad](https://github.com/google/adk-java/commit/9031cadc0e53cad8e4fe141e1d9d2bb19a431a12))
* Removing deprecated Optional methods ([8ef99f9](https://github.com/google/adk-java/commit/8ef99f999c11c1dbf3331563a0566e14188a68f2))

## [1.1.0](https://github.com/google/adk-java/compare/v1.0.0...v1.1.0) (2026-04-10)


Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,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.1.0</version>
<version>1.2.0</version>
</dependency>
<!-- Dev UI -->
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-dev</artifactId>
<version>1.1.0</version>
<version>1.2.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion 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.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
</parent>

<artifactId>google-adk-a2a</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion contrib/firestore-session-service/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-parent</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/langchain4j/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-parent</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/planners/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-parent</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/samples/a2a_basic/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-samples</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/samples/a2a_server/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-samples</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/samples/configagent/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-samples</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/samples/helloworld/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-samples</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/samples/mcpfilesystem/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-parent</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>../../..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/samples/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.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>../..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion contrib/spring-ai/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-parent</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-parent</artifactId>
<version>1.1.0</version><!-- {x-version-update:google-adk:current} -->
<version>1.2.1-SNAPSHOT</version><!-- {x-version-update:google-adk:current} -->
</parent>

<artifactId>google-adk</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/com/google/adk/Version.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
*/
public final class Version {
// Don't touch this, release-please should keep it up to date.
public static final String JAVA_ADK_VERSION = "1.1.0"; // x-release-please-released-version
public static final String JAVA_ADK_VERSION = "1.2.0"; // x-release-please-released-version

private Version() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public CodeExecutionResult executeCode(
/** Pre-process the LLM request for Gemini 2.0+ models to use the code execution tool. */
public void processLlmRequest(LlmRequest.Builder llmRequestBuilder) {
LlmRequest llmRequest = llmRequestBuilder.build();
if (ModelNameUtils.isGemini2Model(llmRequest.model().orElse(null))) {
if (llmRequest.model().map(ModelNameUtils::isGemini2OrAbove).orElse(false)) {
GenerateContentConfig.Builder configBuilder =
llmRequest.config().map(c -> c.toBuilder()).orElseGet(GenerateContentConfig::builder);
ImmutableList.Builder<Tool> toolsBuilder = ImmutableList.<Tool>builder();
Expand Down
21 changes: 13 additions & 8 deletions core/src/main/java/com/google/adk/flows/llmflows/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import com.google.adk.tools.BaseTool;
import com.google.adk.tools.FunctionTool;
import com.google.adk.tools.ToolContext;
import com.google.common.base.VerifyException;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.genai.types.Content;
Expand Down Expand Up @@ -141,9 +140,12 @@ public static Maybe<Event> handleFunctionCalls(
Map<String, ToolConfirmation> toolConfirmations) {
ImmutableList<FunctionCall> functionCalls = functionCallEvent.functionCalls();

List<FunctionCall> validFunctionCalls = new ArrayList<>();
for (FunctionCall functionCall : functionCalls) {
if (!tools.containsKey(functionCall.name().get())) {
throw new VerifyException("Tool not found: " + functionCall.name().get());
logger.warn("Tool not found: {}", functionCall.name().get());
} else {
validFunctionCalls.add(functionCall);
}
}

Expand All @@ -154,10 +156,10 @@ public static Maybe<Event> handleFunctionCalls(
Observable<Event> functionResponseEventsObservable;
if (invocationContext.runConfig().toolExecutionMode() == ToolExecutionMode.SEQUENTIAL) {
functionResponseEventsObservable =
Observable.fromIterable(functionCalls).concatMapMaybe(functionCallMapper);
Observable.fromIterable(validFunctionCalls).concatMapMaybe(functionCallMapper);
} else {
functionResponseEventsObservable =
Observable.fromIterable(functionCalls)
Observable.fromIterable(validFunctionCalls)
.concatMapEager(call -> functionCallMapper.apply(call).toObservable());
}
return functionResponseEventsObservable
Expand Down Expand Up @@ -209,9 +211,12 @@ public static Maybe<Event> handleFunctionCallsLive(
Map<String, ToolConfirmation> toolConfirmations) {
ImmutableList<FunctionCall> functionCalls = functionCallEvent.functionCalls();

List<FunctionCall> validFunctionCalls = new ArrayList<>();
for (FunctionCall functionCall : functionCalls) {
if (!tools.containsKey(functionCall.name().get())) {
throw new VerifyException("Tool not found: " + functionCall.name().get());
logger.warn("Tool not found: {}", functionCall.name().get());
} else {
validFunctionCalls.add(functionCall);
}
}

Expand All @@ -222,10 +227,10 @@ public static Maybe<Event> handleFunctionCallsLive(
Observable<Event> responseEventsObservable;
if (invocationContext.runConfig().toolExecutionMode() == ToolExecutionMode.SEQUENTIAL) {
responseEventsObservable =
Observable.fromIterable(functionCalls).concatMapMaybe(functionCallMapper);
Observable.fromIterable(validFunctionCalls).concatMapMaybe(functionCallMapper);
} else {
responseEventsObservable =
Observable.fromIterable(functionCalls)
Observable.fromIterable(validFunctionCalls)
.concatMapEager(call -> functionCallMapper.apply(call).toObservable());
}

Expand All @@ -238,7 +243,7 @@ public static Maybe<Event> handleFunctionCallsLive(
if (events.isEmpty()) {
return Maybe.empty();
}
return Maybe.just(Functions.mergeParallelFunctionResponseEvents(events).orElse(null));
return Maybe.fromOptional(Functions.mergeParallelFunctionResponseEvents(events));
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public FunctionCall toFunctionCall(@Nullable String toolCallId) {
if (name != null) {
fcBuilder.name(name);
}
if (arguments != null) {
if (arguments != null && !arguments.isEmpty()) {
try {
Map<String, Object> args =
objectMapper.readValue(arguments, new TypeReference<Map<String, Object>>() {});
Expand Down
Loading
Loading