ADK for TypeScript: API Reference
    Preparing search index...

    Class BuiltInToolAbstract

    A tool the model runs itself. It is switched on through request parameters — Google Search, URL context, the grounding and retrieval tools — and never executes here.

    Such a tool has no function declaration, so BaseTool.processLlmRequest returns before the line that registers it in llmRequest.toolsDict. That left the model primed with a name the framework could not route: a model that returns one as an explicit function call, rather than running it, produced a call that failed to resolve even though the user had registered the tool. Registering the name here keeps the call resolvable, and runAsync answers it by telling the model the tool is not callable.

    A tool whose applyBuiltInConfig returns without configuring anything — every one of them does when the request carries no model — still claims its name. That request never reaches a model, so no function call can come back for it and the registration is inert.

    Hierarchy (View Summary)

    Constructors

    Properties

    "[BASE_TOOL_SIGNATURE_SYMBOL]": true

    A unique symbol to identify ADK base tool class.

    "[IN_MODEL_TOOL_SYMBOL]": true

    Marks this tool as one the model runs itself.

    description: string
    isLongRunning: boolean
    name: string

    Accessors

    Methods

    • Gets the OpenAPI specification of this tool in the form of a FunctionDeclaration.

      NOTE

      • Required if subclass uses the default implementation of processLlmRequest to add function declaration to LLM request.
      • Otherwise, can be skipped, e.g. for a built-in GoogleSearch tool for Gemini.

      Returns FunctionDeclaration | undefined

      The FunctionDeclaration of this tool, or undefined if it doesn't need to be added to LlmRequest.config.

    • Whether this tool needs a human to approve args before it runs.

      The gate itself lives in the tool that owns it (see FunctionTool), but the resume path has to ask the same question a turn later, to check that an approval it is about to honour belongs to a tool that gates at all. A tool that never gates returns false here, which is the safe default: an approval naming it is meaningless and gets rejected rather than executed. Mirrors Python's BaseTool.check_require_confirmation.

      Parameters

      • _args: Record<string, unknown>

        The arguments the tool would run with.

      • Optional_toolContext: Context

        The context of the call, when there is one.

      Returns Promise<boolean>

      Whether the call requires confirmation.

    • Answers a function call the model should not have made. The tool is already configured on the request and its results arrive as grounding metadata, so the model is told to use those rather than call again.

      Returns Promise<unknown>