DebugLoggingPlugin

class DebugLoggingPlugin(outputPath: String = "adk_debug.yaml", includeSessionState: Boolean = true, includeSystemInstruction: Boolean = true, val name: String = "debug_logging_plugin") : Plugin

A plugin that captures complete debug information to a file.

This plugin records detailed interaction data including:

  • LLM requests (model, system instruction, contents, tools)

  • LLM responses (content, usage metadata, errors)

  • Function calls with arguments

  • Function responses with results

  • Events yielded from the runner

  • Session state at the end of each invocation

The output is written as YAML for human readability. Each invocation is appended to the file as a separate YAML document (separated by ---). Unlike LoggingPlugin, which prints truncated summaries to the console, this plugin captures the data in full.

CAUTION: The plugin writes raw requests / responses, including user prompts, tool arguments, and session state, to disk. Be mindful of sensitive data disclosure and protect the output file accordingly.

Constructors

Link copied to clipboard
constructor(outputPath: String = "adk_debug.yaml", includeSessionState: Boolean = true, includeSystemInstruction: Boolean = true, name: String = "debug_logging_plugin")

Types

Link copied to clipboard
class Builder

Fluent builder for DebugLoggingPlugin, provided primarily for Java callers. Any property left unset falls back to the same default as the constructor.

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open override val name: String

The unique name of the plugin instance.

Functions

Link copied to clipboard
open suspend override fun afterAgent(context: CallbackContext): CallbackChoice<Unit, Content>

Callback executed after a specific agent finishes its processing.

Link copied to clipboard
open suspend override fun afterModel(context: CallbackContext, response: LlmResponse): LlmResponse

Callback executed after an LLM response is received.

Link copied to clipboard
open suspend override fun afterRun(invocationContext: InvocationContext)

Callback executed after the ADK runner completes its execution.

Link copied to clipboard
open suspend override fun afterTool(context: ToolContext, tool: BaseTool, args: Map<String, Any?>, result: Map<String, Any?>): Map<String, Any?>

Callback executed after a tool finishes its execution.

Link copied to clipboard
open suspend override fun beforeAgent(context: CallbackContext): CallbackChoice<EventActions, Content>

Callback executed before a specific agent starts processing.

Link copied to clipboard
open suspend override fun beforeModel(context: CallbackContext, request: LlmRequest): CallbackChoice<LlmRequest, LlmResponse>

Callback executed before an LLM request is sent.

Link copied to clipboard
open suspend override fun beforeRun(invocationContext: InvocationContext): CallbackChoice<Unit, Content>

Callback executed before the ADK runner starts the main execution loop.

Link copied to clipboard
open suspend override fun beforeTool(context: ToolContext, tool: BaseTool, args: Map<String, Any?>): CallbackChoice<Map<String, Any?>, Map<String, Any?>>

Callback executed before a tool is invoked.

Link copied to clipboard
open override fun close()

Method executed when the runner is closed.

Link copied to clipboard
open suspend override fun onEvent(invocationContext: InvocationContext, event: Event): Event

Callback executed when an event is yielded by an agent during execution.

Link copied to clipboard
open suspend override fun onModelError(context: CallbackContext, request: LlmRequest, error: Throwable): CallbackChoice<Unit, LlmResponse>

Callback executed when an error occurs during an LLM interaction.

Link copied to clipboard
open suspend override fun onToolError(context: ToolContext, tool: BaseTool, args: Map<String, Any?>, error: Throwable): CallbackChoice<Unit, Map<String, Any?>>

Callback executed when an error occurs during a tool invocation.

Link copied to clipboard
open suspend override fun onUserMessage(invocationContext: InvocationContext, userMessage: Content): Content

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