Plugin

interface Plugin : AutoCloseable

Interface for creating plugins.

Plugins provide a structured way to intercept and modify agent, tool, and LLM behaviors at critical execution points in a callback manner.

Inheritors

Properties

Link copied to clipboard
abstract val name: String

The unique name of the plugin.

Functions

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

Callback executed after a specific agent finishes its processing.

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

Callback executed after an LLM response is received.

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

Callback executed after the ADK runner completes its execution, or after the caller stops collecting early (for example with first() or take(n)) or its collector throws.

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

Callback executed after a tool runs, or after a before-tool callback answers the call in its place.

Link copied to clipboard

Callback executed before a specific agent starts processing.

Link copied to clipboard

Callback executed before an LLM request is sent.

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

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

Link copied to clipboard
open suspend 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 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 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 fun onRunError(invocationContext: InvocationContext, error: Throwable)

Callback executed when the ADK runner run fails, or when afterRun fails after the caller stopped collecting early.

Link copied to clipboard
open suspend 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 fun onUserMessage(invocationContext: InvocationContext, userMessage: Content): Content

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