From 15255b48285819c7d3aedb4470e91f37d1bcfaf4 Mon Sep 17 00:00:00 2001 From: Maciej Szwaja Date: Wed, 25 Feb 2026 03:21:54 -0800 Subject: [PATCH] feat: drop gemini-1 support in GoogleSearchTool PiperOrigin-RevId: 875065099 --- .../google/adk/tools/GoogleSearchTool.java | 16 +-------------- .../com/google/adk/tools/BaseToolTest.java | 20 ------------------- 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/core/src/main/java/com/google/adk/tools/GoogleSearchTool.java b/core/src/main/java/com/google/adk/tools/GoogleSearchTool.java index 6f89754cf..b4f298c21 100644 --- a/core/src/main/java/com/google/adk/tools/GoogleSearchTool.java +++ b/core/src/main/java/com/google/adk/tools/GoogleSearchTool.java @@ -20,12 +20,9 @@ import com.google.common.collect.ImmutableList; import com.google.genai.types.GenerateContentConfig; import com.google.genai.types.GoogleSearch; -import com.google.genai.types.GoogleSearchRetrieval; import com.google.genai.types.Tool; import io.reactivex.rxjava3.core.Completable; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * A built-in tool that is automatically invoked by Gemini 2 and 3 models to retrieve search results @@ -43,7 +40,6 @@ * } */ public final class GoogleSearchTool extends BaseTool { - private static final Logger logger = LoggerFactory.getLogger(GoogleSearchTool.class); public static final GoogleSearchTool INSTANCE = new GoogleSearchTool(); public GoogleSearchTool() { @@ -66,17 +62,7 @@ public Completable processLlmRequest( updatedToolsBuilder.addAll(existingTools); String model = llmRequestBuilder.build().model().get(); - if (model != null && model.startsWith("gemini-1")) { - if (!updatedToolsBuilder.build().isEmpty()) { - logger.error("Tools already present: {}", configBuilder.build().tools().get()); - return Completable.error( - new IllegalArgumentException( - "Google search tool cannot be used with other tools in Gemini 1.x.")); - } - updatedToolsBuilder.add( - Tool.builder().googleSearchRetrieval(GoogleSearchRetrieval.builder().build()).build()); - configBuilder.tools(updatedToolsBuilder.build()); - } else if (model != null && (model.startsWith("gemini-2") || model.startsWith("gemini-3"))) { + if (model != null && (model.startsWith("gemini-2") || model.startsWith("gemini-3"))) { updatedToolsBuilder.add(Tool.builder().googleSearch(GoogleSearch.builder().build()).build()); configBuilder.tools(updatedToolsBuilder.build()); diff --git a/core/src/test/java/com/google/adk/tools/BaseToolTest.java b/core/src/test/java/com/google/adk/tools/BaseToolTest.java index 16418657d..e8d3887a4 100644 --- a/core/src/test/java/com/google/adk/tools/BaseToolTest.java +++ b/core/src/test/java/com/google/adk/tools/BaseToolTest.java @@ -8,7 +8,6 @@ import com.google.genai.types.GenerateContentConfig; import com.google.genai.types.GoogleMaps; import com.google.genai.types.GoogleSearch; -import com.google.genai.types.GoogleSearchRetrieval; import com.google.genai.types.Tool; import com.google.genai.types.ToolCodeExecution; import com.google.genai.types.UrlContext; @@ -143,25 +142,6 @@ public void processLlmRequestWithGoogleSearchToolAddsToolToConfig() { Tool.builder().googleSearch(GoogleSearch.builder().build()).build()); } - @Test - public void processLlmRequestWithGoogleSearchRetrievalToolAddsToolToConfig() { - GoogleSearchTool googleSearchTool = new GoogleSearchTool(); - LlmRequest llmRequest = - LlmRequest.builder() - .config(GenerateContentConfig.builder().build()) - .model("gemini-1") - .build(); - LlmRequest.Builder llmRequestBuilder = llmRequest.toBuilder(); - Completable unused = - googleSearchTool.processLlmRequest(llmRequestBuilder, /* toolContext= */ null); - LlmRequest updatedLlmRequest = llmRequestBuilder.build(); - assertThat(updatedLlmRequest.config()).isPresent(); - assertThat(updatedLlmRequest.config().get().tools()).isPresent(); - assertThat(updatedLlmRequest.config().get().tools().get()) - .containsExactly( - Tool.builder().googleSearchRetrieval(GoogleSearchRetrieval.builder().build()).build()); - } - @Test public void processLlmRequestWithUrlContextToolAddsToolToConfig() { FunctionDeclaration functionDeclaration =