The base class for all tools

Hierarchy (view full)

Constructors

Properties

name: string

Name of the tool

description: string

Description of the tool

isLongRunning: boolean

Whether the tool is a long running operation, which typically returns a resource id first and finishes the operation later.

shouldRetryOnFailure: boolean

Whether the tool execution should be retried on failure

maxRetryAttempts: number

Maximum retry attempts

baseRetryDelay: number = 1000

Base delay for retry in ms (will be used with exponential backoff)

maxRetryDelay: number = 10000

Maximum delay for retry in ms

logger: Logger = ...

Accessors

Methods

  • Processes the outgoing LLM request for this tool.

    Use cases:

    • Most common use case is adding this tool to the LLM request.
    • Some tools may just preprocess the LLM request before it's sent out.

    Parameters

    Returns Promise<void>

  • 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 return null, e.g. for a built-in GoogleSearch tool.

    Returns FunctionDeclaration

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

  • Runs the tool with the given arguments and context

    NOTE:

    • Required if this tool needs to run at the client side.
    • Otherwise, can be skipped, e.g. for a built-in GoogleSearch tool.

    Parameters

    • args: {
          pattern: string;
          files: string;
          caseInsensitive?: boolean;
          contextLines?: number;
          maxMatches?: number;
          wholeWord?: boolean;
          invertMatch?: boolean;
          exclude?: string;
          include?: string;
      }

      The LLM-filled arguments

      • pattern: string
      • files: string
      • OptionalcaseInsensitive?: boolean
      • OptionalcontextLines?: number
      • OptionalmaxMatches?: number
      • OptionalwholeWord?: boolean
      • OptionalinvertMatch?: boolean
      • Optionalexclude?: string
      • Optionalinclude?: string
    • _context: ToolContext

    Returns Promise<GrepResult>

    The result of running the tool