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

    Class LoggingPlugin

    A plugin that logs important information at each callback point.

    This plugin helps printing all critical events in the console. It is not a replacement of existing logging in ADK. It rather helps terminal based debugging by showing all logs in the console, and serves as a simple demo for everyone to leverage when developing new plugins.

    This plugin helps users track the invocation status by logging:

    • User messages and invocation context
    • Agent execution flow
    • LLM requests and responses
    • Tool calls with arguments and results
    • Events and final responses
    • Errors during model and tool execution

    Example:

    const loggingPlugin = new LoggingPlugin();
    const runner = new Runner({
    agents: [myAgent],
    // ...
    plugins: [loggingPlugin],
    });

    Hierarchy (View Summary)

    Constructors

    Properties

    name: string

    Methods

    • Callback executed after an agent's primary logic has completed.

      This callback can be used to inspect, log, or modify the agent's final result before it is returned.

      Parameters

      Returns Promise<Content | undefined>

      An optional Content object. If a value is returned, it will replace the agent's original result. Returning undefined uses the original, unmodified result.

    • Callback executed after a response is received from the model.

      This is the ideal place to log model responses, collect metrics on token usage, or perform post-processing on the raw LlmResponse.

      Parameters

      Returns Promise<LlmResponse | undefined>

      An optional value. A non-undefined return may be used by the framework to modify or replace the response. Returning undefined allows the original response to be used.

    • Callback executed after a tool has been called.

      This callback allows for inspecting, logging, or modifying the result returned by a tool.

      Parameters

      • tool: {
            result: Record<string, unknown>;
            tool: BaseTool;
            toolArgs: Record<string, unknown>;
            toolContext: ToolContext;
        }

        The tool instance that has just been executed.

      Returns Promise<Record<string, unknown> | undefined>

      An optional dictionary. If a dictionary is returned, it will replace the original result from the tool. This allows for post-processing or altering tool outputs. Returning undefined uses the original, unmodified result.

    • Callback executed before an agent's primary logic is invoked.

      This callback can be used for logging, setup, or to short-circuit the agent's execution by returning a value.

      Parameters

      Returns Promise<Content | undefined>

      An optional Content object. If a value is returned, it will bypass the agent's callbacks and its execution, and return this value directly. Returning undefined allows the agent to proceed normally.

    • Callback executed before a request is sent to the model.

      This provides an opportunity to inspect, log, or modify the LlmRequest object. It can also be used to implement caching by returning a cached LlmResponse, which would skip the actual model call.

      Parameters

      Returns Promise<LlmResponse | undefined>

      An optional value. The interpretation of a non-undefined trigger an early exit and returns the response immediately. Returning undefined allows the LLM request to proceed normally.

    • Callback executed before the ADK runner runs.

      This is the first callback to be called in the lifecycle, ideal for global setup or initialization tasks.

      Parameters

      • invocationContext: { invocationContext: InvocationContext }

        The context for the entire invocation, containing session information, the root agent, etc.

      Returns Promise<Content | undefined>

      An optional Event to be returned to the ADK. Returning a value to halt execution of the runner and ends the runner with that event. Return undefined to proceed normally.

    • Callback executed before a tool is called.

      This callback is useful for logging tool usage, input validation, or modifying the arguments before they are passed to the tool.

      Parameters

      • tool: { tool: BaseTool; toolArgs: Record<string, unknown>; toolContext: ToolContext }

        The tool instance that is about to be executed.

      Returns Promise<Record<string, unknown> | undefined>

      An optional dictionary. If a dictionary is returned, it will stop the tool execution and return this response immediately. Returning undefined uses the original, unmodified arguments.

    • Callback executed after an event is yielded from runner.

      This is the ideal place to make modification to the event before the event is handled by the underlying agent app.

      Parameters

      • invocationContext: { event: Event; invocationContext: InvocationContext }

        The context for the entire invocation.

      Returns Promise<Event | undefined>

      An optional value. A non-undefined return may be used by the framework to modify or replace the response. Returning undefined allows the original response to be used.

    • Callback executed when a model call encounters an error.

      This callback provides an opportunity to handle model errors gracefully, potentially providing alternative responses or recovery mechanisms.

      Parameters

      • callbackContext: { callbackContext: CallbackContext; error: Error; llmRequest: LlmRequest }

        The context for the current agent call.

      Returns Promise<LlmResponse | undefined>

      An optional LlmResponse. If an LlmResponse is returned, it will be used instead of propagating the error. Returning undefined allows the original error to be raised.

    • Callback executed when a tool call encounters an error.

      This callback provides an opportunity to handle tool errors gracefully, potentially providing alternative responses or recovery mechanisms.

      Parameters

      • tool: {
            error: Error;
            tool: BaseTool;
            toolArgs: Record<string, unknown>;
            toolContext: ToolContext;
        }

        The tool instance that encountered an error.

      Returns Promise<Record<string, unknown> | undefined>

      An optional dictionary. If a dictionary is returned, it will be used as the tool response instead of propagating the error. Returning undefined allows the original error to be raised.

    • Callback executed when a user message is received before an invocation starts.

      This callback helps logging and modifying the user message before the runner starts the invocation.

      Parameters

      • invocationContext: { invocationContext: InvocationContext; userMessage: Content }

        The context for the entire invocation.

      Returns Promise<Content | undefined>

      An optional Content to be returned to the ADK. Returning a value to replace the user message. Returning undefined to proceed normally.