Package com.google.adk.plugins
Class DebugLoggingPlugin
java.lang.Object
com.google.adk.plugins.BasePlugin
com.google.adk.plugins.DebugLoggingPlugin
- All Implemented Interfaces:
Plugin
A plugin that captures complete debug information to a YAML file.
It records LLM requests and responses, tool calls and results, the events yielded by the
runner, and, by default, the session state at the end of each invocation. Each invocation is
appended to the file as a separate YAML document. Unlike LoggingPlugin, which prints
truncated summaries to the console, this plugin captures the data in full.
Caution: the file holds raw prompts, tool arguments and session state. Where the file system supports POSIX permissions, the plugin creates it readable and writable by its owner only.
Example:
Runner runner =
new InMemoryRunner(
agent,
APP_NAME,
ImmutableList.of(
DebugLoggingPlugin.builder().outputPath(Path.of("adk_debug.yaml")).build()));
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from class com.google.adk.plugins.BasePlugin
name -
Constructor Summary
ConstructorsConstructorDescriptionCreates a plugin that writesadk_debug.yamlin the working directory. -
Method Summary
Modifier and TypeMethodDescriptionio.reactivex.rxjava3.core.Maybe<com.google.genai.types.Content>afterAgentCallback(BaseAgent agent, CallbackContext callbackContext) Callback executed after an agent's primary logic has completed.io.reactivex.rxjava3.core.Maybe<LlmResponse>afterModelCallback(CallbackContext callbackContext, LlmResponse llmResponse) Callback executed after a response is received from the model.io.reactivex.rxjava3.core.CompletableafterRunCallback(InvocationContext invocationContext) Callback executed after an ADK runner run has completed.afterToolCallback(BaseTool tool, Map<String, Object> toolArgs, ToolContext toolContext, Map<String, Object> result) Callback executed after a tool has been called.io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Content>beforeAgentCallback(BaseAgent agent, CallbackContext callbackContext) Callback executed before an agent's primary logic is invoked.io.reactivex.rxjava3.core.Maybe<LlmResponse>beforeModelCallback(CallbackContext callbackContext, LlmRequest.Builder llmRequest) Callback executed before a request is sent to the model.io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Content>beforeRunCallback(InvocationContext invocationContext) Callback executed before the ADK runner runs.beforeToolCallback(BaseTool tool, Map<String, Object> toolArgs, ToolContext toolContext) Callback executed before a tool is called.static DebugLoggingPlugin.Builderbuilder()Returns a builder with the same defaults asDebugLoggingPlugin().io.reactivex.rxjava3.core.Maybe<Event>onEventCallback(InvocationContext invocationContext, Event event) Callback executed after an event is yielded from runner.io.reactivex.rxjava3.core.Maybe<LlmResponse>onModelErrorCallback(CallbackContext callbackContext, LlmRequest.Builder llmRequest, Throwable error) Callback executed when a model call encounters an error.onToolErrorCallback(BaseTool tool, Map<String, Object> toolArgs, ToolContext toolContext, Throwable error) Callback executed when a tool call encounters an error.io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Content>onUserMessageCallback(InvocationContext invocationContext, com.google.genai.types.Content userMessage) Callback executed when a user message is received before an invocation starts.Methods inherited from class com.google.adk.plugins.BasePlugin
getNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.google.adk.plugins.Plugin
close, onRunErrorCallback
-
Constructor Details
-
DebugLoggingPlugin
public DebugLoggingPlugin()Creates a plugin that writesadk_debug.yamlin the working directory.
-
-
Method Details
-
builder
Returns a builder with the same defaults asDebugLoggingPlugin(). -
onUserMessageCallback
public io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Content> onUserMessageCallback(InvocationContext invocationContext, com.google.genai.types.Content userMessage) Description copied from interface:PluginCallback executed when a user message is received before an invocation starts.- Parameters:
invocationContext- The context for the entire invocation.userMessage- The message content input by user.- Returns:
- An optional Content to replace the user message. Returning Empty to proceed normally.
-
beforeRunCallback
public io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Content> beforeRunCallback(InvocationContext invocationContext) Description copied from interface:PluginCallback executed before the ADK runner runs.- Parameters:
invocationContext- The context for the entire invocation.- Returns:
- An optional Content to halt execution. Returning Empty to proceed normally.
-
onEventCallback
public io.reactivex.rxjava3.core.Maybe<Event> onEventCallback(InvocationContext invocationContext, Event event) Description copied from interface:PluginCallback executed after an event is yielded from runner.- Parameters:
invocationContext- The context for the entire invocation.event- The event raised by the runner.- Returns:
- An optional Event to modify or replace the response. Returning Empty to proceed normally.
-
afterRunCallback
Description copied from interface:PluginCallback executed after an ADK runner run has completed.- Parameters:
invocationContext- The context for the entire invocation.
-
beforeAgentCallback
public io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Content> beforeAgentCallback(BaseAgent agent, CallbackContext callbackContext) Description copied from interface:PluginCallback executed before an agent's primary logic is invoked.- Parameters:
agent- The agent that is about to run.callbackContext- The context for the agent invocation.- Returns:
- An optional Content object to bypass the agent's execution. Returning Empty to proceed normally.
-
afterAgentCallback
public io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Content> afterAgentCallback(BaseAgent agent, CallbackContext callbackContext) Description copied from interface:PluginCallback executed after an agent's primary logic has completed.- Parameters:
agent- The agent that has just run.callbackContext- The context for the agent invocation.- Returns:
- An optional Content object to replace the agent's original result. Returning Empty to use the original result.
-
beforeModelCallback
public io.reactivex.rxjava3.core.Maybe<LlmResponse> beforeModelCallback(CallbackContext callbackContext, LlmRequest.Builder llmRequest) Description copied from interface:PluginCallback executed before a request is sent to the model.- Parameters:
callbackContext- The context for the current agent call.llmRequest- The mutable request builder, allowing modification of the request before it is sent to the model.- Returns:
- An optional LlmResponse to trigger an early exit. Returning Empty to proceed normally.
-
afterModelCallback
public io.reactivex.rxjava3.core.Maybe<LlmResponse> afterModelCallback(CallbackContext callbackContext, LlmResponse llmResponse) Description copied from interface:PluginCallback executed after a response is received from the model.- Parameters:
callbackContext- The context for the current agent call.llmResponse- The response object received from the model.- Returns:
- An optional LlmResponse to modify or replace the response. Returning Empty to use the original response.
-
onModelErrorCallback
public io.reactivex.rxjava3.core.Maybe<LlmResponse> onModelErrorCallback(CallbackContext callbackContext, LlmRequest.Builder llmRequest, Throwable error) Description copied from interface:PluginCallback executed when a model call encounters an error.- Parameters:
callbackContext- The context for the current agent call.llmRequest- The mutable request builder for the request that failed.error- The exception that was raised.- Returns:
- An optional LlmResponse to use instead of propagating the error. Returning Empty to allow the original error to be raised.
-
beforeToolCallback
public io.reactivex.rxjava3.core.Maybe<Map<String,Object>> beforeToolCallback(BaseTool tool, Map<String, Object> toolArgs, ToolContext toolContext) Description copied from interface:PluginCallback executed before a tool is called.- Parameters:
tool- The tool instance that is about to be executed.toolArgs- The dictionary of arguments to be used for invoking the tool.toolContext- The context specific to the tool execution.- Returns:
- An optional Map to stop the tool execution and return this response immediately. Returning Empty to proceed normally.
-
afterToolCallback
public io.reactivex.rxjava3.core.Maybe<Map<String,Object>> afterToolCallback(BaseTool tool, Map<String, Object> toolArgs, ToolContext toolContext, Map<String, Object> result) Description copied from interface:PluginCallback executed after a tool has been called.- Parameters:
tool- The tool instance that has just been executed.toolArgs- The original arguments that were passed to the tool.toolContext- The context specific to the tool execution.result- The dictionary returned by the tool invocation.- Returns:
- An optional Map to replace the original result from the tool. Returning Empty to use the original result.
-
onToolErrorCallback
public io.reactivex.rxjava3.core.Maybe<Map<String,Object>> onToolErrorCallback(BaseTool tool, Map<String, Object> toolArgs, ToolContext toolContext, Throwable error) Description copied from interface:PluginCallback executed when a tool call encounters an error.- Parameters:
tool- The tool instance that encountered an error.toolArgs- The arguments that were passed to the tool.toolContext- The context specific to the tool execution.error- The exception that was raised during tool execution.- Returns:
- An optional Map to be used as the tool response instead of propagating the error. Returning Empty to allow the original error to be raised.
-