Repository navigation
Built-in tools not available in sub agents (issue with GoogleSearchTool) #550
Description
Activity
- addedquestionFurther information is requestedFurther information is requested
on Feb 12, 2026 Hi @fedorovychh, Thank you for bringing this, This is a known architectural constraint:
GoogleSearchToolis a server-side model configuration, but Sub-Agents require client-side executableFunctionToolsto work within their nested runtime. Because the sub-agent loop cannot propagate grounding configurations effectively, the tool fails to activate.There is a fundamental distinction between these two Tools:
Client-Side Tools (Executable): Standard FunctionTool implementations. These are Java methods running in your application's JVM. When the model invokes them, the ADK runtime executes the code locally and returns the output.
Model Capabilities (Configuration): The
GoogleSearchToolandVertexAiSearchToolare strictly configuration flags. They do not contain client-side execution logic. Instead, they instruct the Gemini Model (server-side) to perform Grounding during the generation process.When an Agent is wrapped as a Sub-Agent, the ADK spins up a nested runtime loop. This loop is designed to handle Executable tools. However,
GoogleSearchToolrelies on passing specific configuration flags to the Model session. Currently, the nested runtime does not propagate these "Grounding" configurations into the inner model session effectively. As a result, the Sub-Agent sees the tool definition but has no mechanism to run it.To enable search within a Sub-Agent, You must move the search capability to the Client-Side Tools by wrapping the Google Custom Search API in a standard Java class. This converts "Search" into a normal method call that the Sub-Agent can execute reliably.
- addedwaiting on reporterWaiting for reaction by reporter. Failing that, maintainers will eventually closed it as stale.Waiting for reaction by reporter. Failing that, maintainers will eventually closed it as stale.
on Feb 13, 2026 Closing this issue because it has been inactive for more than 14 days.
I’m developing a multi-agent system and encountered a limitation described in the official ADK documentation:
https://google.github.io/adk-docs/tools/built-in-tools/#limitations
According to these limitations, built-in tools cannot be used inside sub agents.
This became a problem when using GoogleSearchTool — the tool itself doesn’t contain any search implementation code and seems to act as a flag indicating that the agent can access the internet and perform grounding searches.
Because of this, sub agents lose the ability to perform web searches, breaking part of the system’s intended functionality.
Question:
What is the recommended way to bypass or handle this limitation?
Should I implement a custom search tool (e.g., using the Google Custom Search API) instead, or is there a supported method to enable built-in tool usage within sub agents?