Skip to content

Built-in tools not available in sub agents (issue with GoogleSearchTool) #550

Description

@fedorovychh

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?

Activity

  1. added theissue type on Feb 12, 2026
  2. hemasekhar-p commented on Feb 13, 2026

    @hemasekhar-p
    Contributor

    Hi @fedorovychh, Thank you for bringing this, This is a known architectural constraint: GoogleSearchTool is a server-side model configuration, but Sub-Agents require client-side executable FunctionTools to 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 GoogleSearchTool and VertexAiSearchTool are 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, GoogleSearchTool relies 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.

  3. added
    waiting on reporterWaiting for reaction by reporter. Failing that, maintainers will eventually closed it as stale.
    on Feb 13, 2026
  4. self-assigned this
    on Mar 2, 2026
  5. hemasekhar-p commented on Apr 29, 2026

    @hemasekhar-p
    Contributor

    Closing this issue because it has been inactive for more than 14 days.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

questionFurther information is requestedwaiting on reporterWaiting for reaction by reporter. Failing that, maintainers will eventually closed it as stale.

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions