Files
2026-07-24 18:22:51 +00:00

482 lines
44 KiB
HTML

<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Google Analytics tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-DKHZS27PHP"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "G-DKHZS27PHP");
</script>
<!-- Generated by javadoc (26) -->
<title>Plugin (Google Agent Development Kit Maven Parent POM 1.7.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.google.adk.plugins, interface: Plugin">
<meta name="generator" content="javadoc/ClassWriter">
<link rel="stylesheet" type="text/css" href="../../../../resource-files/jquery-ui.min.css">
<link rel="stylesheet" type="text/css" href="../../../../resource-files/stylesheet.css">
<script type="text/javascript" src="../../../../script-files/script.js"></script>
<script type="text/javascript" src="../../../../script-files/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-files/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">const pathtoroot = "../../../../";
loadScripts();
initTheme();
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="nav-content">
<div class="nav-menu-button"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button></div>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/Plugin.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../search.html">Search</a></li>
<li><button id="theme-button" aria-label="Select Theme" title="Select Theme"></button></li>
</ul>
<div id="theme-panel">
<div>Select Theme</div>
<div><label for="theme-light"><input type="radio" id="theme-light" disabled name="theme" value="theme-light"><span>Light</span></label><label for="theme-dark"><input type="radio" id="theme-dark" disabled name="theme" value="theme-dark"><span>Dark</span></label><label for="theme-os"><input type="radio" id="theme-os" disabled name="theme" value="theme-os"><span>System Setting</span></label></div>
</div>
</div>
</div>
<div class="sub-nav">
<div class="nav-content">
<ol class="sub-nav-list">
<li><a href="package-summary.html">com.google.adk.plugins</a></li>
<li><a href="Plugin.html" class="current-selection">Plugin</a></li>
</ol>
<div class="nav-list-search"><input type="text" id="search-input" disabled placeholder="Search documentation (type /)" aria-label="Search in documentation" autocomplete="off" spellcheck="false"><input type="reset" id="reset-search" disabled value="Reset"></div>
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="main-grid">
<nav role="navigation" class="toc" aria-label="Table of contents">
<div class="toc-header">Contents&nbsp;<input type="text" class="filter-input" disabled placeholder="Filter contents (type .)" aria-label="Filter table of contents" autocomplete="off" spellcheck="false"><input type="reset" class="reset-filter" disabled tabindex="-1" value="Reset">&nbsp;<button class="toc-sort-toggle" id="toc-lexical-order-toggle"><img src="../../../../resource-files/sort-a-z.svg" alt="Sort member details in lexicographical order"></button></div>
<ol class="toc-list" tabindex="-1">
<li><a href="#" tabindex="0">Description</a></li>
<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
<li><a href="#method-detail" tabindex="0">Method Details</a>
<ol class="toc-list">
<li><a href="#getName()" tabindex="0">getName()</a></li>
<li><a href="#onUserMessageCallback(com.google.adk.agents.InvocationContext,com.google.genai.types.Content)" tabindex="0">onUserMessageCallback(InvocationContext, Content)</a></li>
<li><a href="#beforeRunCallback(com.google.adk.agents.InvocationContext)" tabindex="0">beforeRunCallback(InvocationContext)</a></li>
<li><a href="#onEventCallback(com.google.adk.agents.InvocationContext,com.google.adk.events.Event)" tabindex="0">onEventCallback(InvocationContext, Event)</a></li>
<li><a href="#afterRunCallback(com.google.adk.agents.InvocationContext)" tabindex="0">afterRunCallback(InvocationContext)</a></li>
<li><a href="#close()" tabindex="0">close()</a></li>
<li><a href="#beforeAgentCallback(com.google.adk.agents.BaseAgent,com.google.adk.agents.CallbackContext)" tabindex="0">beforeAgentCallback(BaseAgent, CallbackContext)</a></li>
<li><a href="#afterAgentCallback(com.google.adk.agents.BaseAgent,com.google.adk.agents.CallbackContext)" tabindex="0">afterAgentCallback(BaseAgent, CallbackContext)</a></li>
<li><a href="#beforeModelCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmRequest.Builder)" tabindex="0">beforeModelCallback(CallbackContext, LlmRequest.Builder)</a></li>
<li><a href="#afterModelCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmResponse)" tabindex="0">afterModelCallback(CallbackContext, LlmResponse)</a></li>
<li><a href="#onModelErrorCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmRequest.Builder,java.lang.Throwable)" tabindex="0">onModelErrorCallback(CallbackContext, LlmRequest.Builder, Throwable)</a></li>
<li><a href="#beforeToolCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext)" tabindex="0">beforeToolCallback(BaseTool, Map, ToolContext)</a></li>
<li><a href="#afterToolCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext,java.util.Map)" tabindex="0">afterToolCallback(BaseTool, Map, ToolContext, Map)</a></li>
<li><a href="#onToolErrorCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext,java.lang.Throwable)" tabindex="0">onToolErrorCallback(BaseTool, Map, ToolContext, Throwable)</a></li>
</ol>
</li>
</ol>
<button class="hide-sidebar"><span>Hide sidebar&nbsp;</span><img src="../../../../resource-files/left.svg" alt="Hide sidebar"></button><button class="show-sidebar"><img src="../../../../resource-files/right.svg" alt="Show sidebar"><span>&nbsp;Show sidebar</span></button></nav>
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<h1 title="Interface Plugin" class="title">Interface Plugin</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="BasePlugin.html" title="class in com.google.adk.plugins">BasePlugin</a>, <a href="agentanalytics/BigQueryAgentAnalyticsPlugin.html" title="class in com.google.adk.plugins.agentanalytics">BigQueryAgentAnalyticsPlugin</a>, <a href="ContextFilterPlugin.html" title="class in com.google.adk.plugins">ContextFilterPlugin</a>, <a href="GlobalInstructionPlugin.html" title="class in com.google.adk.plugins">GlobalInstructionPlugin</a>, <a href="LoggingPlugin.html" title="class in com.google.adk.plugins">LoggingPlugin</a>, <a href="PluginManager.html" title="class in com.google.adk.plugins">PluginManager</a>, <a href="ReplayPlugin.html" title="class in com.google.adk.plugins">ReplayPlugin</a></code></dd>
</dl>
<hr>
<div class="horizontal-scroll">
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">Plugin</span></div>
<div class="block">Interface for creating plugins.
<p>Plugins provide a structured way to intercept and modify agent, tool, and LLM behaviors at
critical execution points in a callback manner. While agent callbacks apply to a particular
agent, plugins applies globally to all agents added in the runner. Plugins are best used for
adding custom behaviors like logging, monitoring, caching, or modifying requests and responses at
key stages.
<p>A plugin can implement one or more methods of callbacks, but should not implement the same
method of callback for multiple times.</div>
</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0">
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;com.google.genai.types.Content&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#afterAgentCallback(com.google.adk.agents.BaseAgent,com.google.adk.agents.CallbackContext)" class="member-name-link">afterAgentCallback</a><wbr>(<a href="../agents/BaseAgent.html" title="class in com.google.adk.agents">BaseAgent</a>&nbsp;agent,
<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed after an agent's primary logic has completed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;<a href="../models/LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#afterModelCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmResponse)" class="member-name-link">afterModelCallback</a><wbr>(<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext,
<a href="../models/LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&nbsp;llmResponse)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed after a response is received from the model.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Completable</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#afterRunCallback(com.google.adk.agents.InvocationContext)" class="member-name-link">afterRunCallback</a><wbr>(<a href="../agents/InvocationContext.html" title="class in com.google.adk.agents">InvocationContext</a>&nbsp;invocationContext)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed after an ADK runner run has completed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#afterToolCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext,java.util.Map)" class="member-name-link">afterToolCallback</a><wbr>(<a href="../tools/BaseTool.html" title="class in com.google.adk.tools">BaseTool</a>&nbsp;tool,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&nbsp;toolArgs,
<a href="../tools/ToolContext.html" title="class in com.google.adk.tools">ToolContext</a>&nbsp;toolContext,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&nbsp;result)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed after a tool has been called.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;com.google.genai.types.Content&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#beforeAgentCallback(com.google.adk.agents.BaseAgent,com.google.adk.agents.CallbackContext)" class="member-name-link">beforeAgentCallback</a><wbr>(<a href="../agents/BaseAgent.html" title="class in com.google.adk.agents">BaseAgent</a>&nbsp;agent,
<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed before an agent's primary logic is invoked.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;<a href="../models/LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#beforeModelCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmRequest.Builder)" class="member-name-link">beforeModelCallback</a><wbr>(<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext,
<a href="../models/LlmRequest.Builder.html" title="class in com.google.adk.models">LlmRequest.Builder</a>&nbsp;llmRequest)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed before a request is sent to the model.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;com.google.genai.types.Content&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#beforeRunCallback(com.google.adk.agents.InvocationContext)" class="member-name-link">beforeRunCallback</a><wbr>(<a href="../agents/InvocationContext.html" title="class in com.google.adk.agents">InvocationContext</a>&nbsp;invocationContext)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed before the ADK runner runs.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#beforeToolCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext)" class="member-name-link">beforeToolCallback</a><wbr>(<a href="../tools/BaseTool.html" title="class in com.google.adk.tools">BaseTool</a>&nbsp;tool,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&nbsp;toolArgs,
<a href="../tools/ToolContext.html" title="class in com.google.adk.tools">ToolContext</a>&nbsp;toolContext)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed before a tool is called.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Completable</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#close()" class="member-name-link">close</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Method executed when the runner is closed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getName()" class="member-name-link">getName</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;<a href="../events/Event.html" title="class in com.google.adk.events">Event</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#onEventCallback(com.google.adk.agents.InvocationContext,com.google.adk.events.Event)" class="member-name-link">onEventCallback</a><wbr>(<a href="../agents/InvocationContext.html" title="class in com.google.adk.agents">InvocationContext</a>&nbsp;invocationContext,
<a href="../events/Event.html" title="class in com.google.adk.events">Event</a>&nbsp;event)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed after an event is yielded from runner.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;<a href="../models/LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#onModelErrorCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmRequest.Builder,java.lang.Throwable)" class="member-name-link">onModelErrorCallback</a><wbr>(<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext,
<a href="../models/LlmRequest.Builder.html" title="class in com.google.adk.models">LlmRequest.Builder</a>&nbsp;llmRequest,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class in java.lang" class="external-link">Throwable</a>&nbsp;error)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed when a model call encounters an error.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#onToolErrorCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext,java.lang.Throwable)" class="member-name-link">onToolErrorCallback</a><wbr>(<a href="../tools/BaseTool.html" title="class in com.google.adk.tools">BaseTool</a>&nbsp;tool,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&nbsp;toolArgs,
<a href="../tools/ToolContext.html" title="class in com.google.adk.tools">ToolContext</a>&nbsp;toolContext,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class in java.lang" class="external-link">Throwable</a>&nbsp;error)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed when a tool call encounters an error.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default io.reactivex.rxjava3.core.Maybe<wbr>&lt;com.google.genai.types.Content&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#onUserMessageCallback(com.google.adk.agents.InvocationContext,com.google.genai.types.Content)" class="member-name-link">onUserMessageCallback</a><wbr>(<a href="../agents/InvocationContext.html" title="class in com.google.adk.agents">InvocationContext</a>&nbsp;invocationContext,
com.google.genai.types.Content&nbsp;userMessage)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Callback executed when a user message is received before an invocation starts.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getName()">
<h3>getName</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getName</span>()</div>
</div>
</section>
</li>
<li>
<section class="detail" id="onUserMessageCallback(com.google.adk.agents.InvocationContext,com.google.genai.types.Content)">
<h3>onUserMessageCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;com.google.genai.types.Content&gt;</span>&nbsp;<span class="element-name">onUserMessageCallback</span><wbr><span class="parameters">(<a href="../agents/InvocationContext.html" title="class in com.google.adk.agents">InvocationContext</a>&nbsp;invocationContext,
com.google.genai.types.Content&nbsp;userMessage)</span></div>
<div class="block">Callback executed when a user message is received before an invocation starts.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>invocationContext</code> - The context for the entire invocation.</dd>
<dd><code>userMessage</code> - The message content input by user.</dd>
<dt>Returns:</dt>
<dd>An optional Content to replace the user message. Returning Empty to proceed normally.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="beforeRunCallback(com.google.adk.agents.InvocationContext)">
<h3>beforeRunCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;com.google.genai.types.Content&gt;</span>&nbsp;<span class="element-name">beforeRunCallback</span><wbr><span class="parameters">(<a href="../agents/InvocationContext.html" title="class in com.google.adk.agents">InvocationContext</a>&nbsp;invocationContext)</span></div>
<div class="block">Callback executed before the ADK runner runs.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>invocationContext</code> - The context for the entire invocation.</dd>
<dt>Returns:</dt>
<dd>An optional Content to halt execution. Returning Empty to proceed normally.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="onEventCallback(com.google.adk.agents.InvocationContext,com.google.adk.events.Event)">
<h3>onEventCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;<a href="../events/Event.html" title="class in com.google.adk.events">Event</a>&gt;</span>&nbsp;<span class="element-name">onEventCallback</span><wbr><span class="parameters">(<a href="../agents/InvocationContext.html" title="class in com.google.adk.agents">InvocationContext</a>&nbsp;invocationContext,
<a href="../events/Event.html" title="class in com.google.adk.events">Event</a>&nbsp;event)</span></div>
<div class="block">Callback executed after an event is yielded from runner.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>invocationContext</code> - The context for the entire invocation.</dd>
<dd><code>event</code> - The event raised by the runner.</dd>
<dt>Returns:</dt>
<dd>An optional Event to modify or replace the response. Returning Empty to proceed
normally.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="afterRunCallback(com.google.adk.agents.InvocationContext)">
<h3>afterRunCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Completable</span>&nbsp;<span class="element-name">afterRunCallback</span><wbr><span class="parameters">(<a href="../agents/InvocationContext.html" title="class in com.google.adk.agents">InvocationContext</a>&nbsp;invocationContext)</span></div>
<div class="block">Callback executed after an ADK runner run has completed.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>invocationContext</code> - The context for the entire invocation.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="close()">
<h3>close</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Completable</span>&nbsp;<span class="element-name">close</span>()</div>
<div class="block">Method executed when the runner is closed.
<p>This method is used for cleanup tasks such as closing network connections or releasing
resources.</div>
</div>
</section>
</li>
<li>
<section class="detail" id="beforeAgentCallback(com.google.adk.agents.BaseAgent,com.google.adk.agents.CallbackContext)">
<h3>beforeAgentCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;com.google.genai.types.Content&gt;</span>&nbsp;<span class="element-name">beforeAgentCallback</span><wbr><span class="parameters">(<a href="../agents/BaseAgent.html" title="class in com.google.adk.agents">BaseAgent</a>&nbsp;agent,
<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext)</span></div>
<div class="block">Callback executed before an agent's primary logic is invoked.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>agent</code> - The agent that is about to run.</dd>
<dd><code>callbackContext</code> - The context for the agent invocation.</dd>
<dt>Returns:</dt>
<dd>An optional Content object to bypass the agent's execution. Returning Empty to proceed
normally.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="afterAgentCallback(com.google.adk.agents.BaseAgent,com.google.adk.agents.CallbackContext)">
<h3>afterAgentCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;com.google.genai.types.Content&gt;</span>&nbsp;<span class="element-name">afterAgentCallback</span><wbr><span class="parameters">(<a href="../agents/BaseAgent.html" title="class in com.google.adk.agents">BaseAgent</a>&nbsp;agent,
<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext)</span></div>
<div class="block">Callback executed after an agent's primary logic has completed.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>agent</code> - The agent that has just run.</dd>
<dd><code>callbackContext</code> - The context for the agent invocation.</dd>
<dt>Returns:</dt>
<dd>An optional Content object to replace the agent's original result. Returning Empty to
use the original result.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="beforeModelCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmRequest.Builder)">
<h3>beforeModelCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;<a href="../models/LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&gt;</span>&nbsp;<span class="element-name">beforeModelCallback</span><wbr><span class="parameters">(<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext,
<a href="../models/LlmRequest.Builder.html" title="class in com.google.adk.models">LlmRequest.Builder</a>&nbsp;llmRequest)</span></div>
<div class="block">Callback executed before a request is sent to the model.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>callbackContext</code> - The context for the current agent call.</dd>
<dd><code>llmRequest</code> - The mutable request builder, allowing modification of the request before it
is sent to the model.</dd>
<dt>Returns:</dt>
<dd>An optional LlmResponse to trigger an early exit. Returning Empty to proceed normally.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="afterModelCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmResponse)">
<h3>afterModelCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;<a href="../models/LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&gt;</span>&nbsp;<span class="element-name">afterModelCallback</span><wbr><span class="parameters">(<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext,
<a href="../models/LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&nbsp;llmResponse)</span></div>
<div class="block">Callback executed after a response is received from the model.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>callbackContext</code> - The context for the current agent call.</dd>
<dd><code>llmResponse</code> - The response object received from the model.</dd>
<dt>Returns:</dt>
<dd>An optional LlmResponse to modify or replace the response. Returning Empty to use the
original response.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="onModelErrorCallback(com.google.adk.agents.CallbackContext,com.google.adk.models.LlmRequest.Builder,java.lang.Throwable)">
<h3>onModelErrorCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;<a href="../models/LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&gt;</span>&nbsp;<span class="element-name">onModelErrorCallback</span><wbr><span class="parameters">(<a href="../agents/CallbackContext.html" title="class in com.google.adk.agents">CallbackContext</a>&nbsp;callbackContext,
<a href="../models/LlmRequest.Builder.html" title="class in com.google.adk.models">LlmRequest.Builder</a>&nbsp;llmRequest,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class in java.lang" class="external-link">Throwable</a>&nbsp;error)</span></div>
<div class="block">Callback executed when a model call encounters an error.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>callbackContext</code> - The context for the current agent call.</dd>
<dd><code>llmRequest</code> - The mutable request builder for the request that failed.</dd>
<dd><code>error</code> - The exception that was raised.</dd>
<dt>Returns:</dt>
<dd>An optional LlmResponse to use instead of propagating the error. Returning Empty to
allow the original error to be raised.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="beforeToolCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext)">
<h3>beforeToolCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&gt;</span>&nbsp;<span class="element-name">beforeToolCallback</span><wbr><span class="parameters">(<a href="../tools/BaseTool.html" title="class in com.google.adk.tools">BaseTool</a>&nbsp;tool,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&nbsp;toolArgs,
<a href="../tools/ToolContext.html" title="class in com.google.adk.tools">ToolContext</a>&nbsp;toolContext)</span></div>
<div class="block">Callback executed before a tool is called.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>tool</code> - The tool instance that is about to be executed.</dd>
<dd><code>toolArgs</code> - The dictionary of arguments to be used for invoking the tool.</dd>
<dd><code>toolContext</code> - The context specific to the tool execution.</dd>
<dt>Returns:</dt>
<dd>An optional Map to stop the tool execution and return this response immediately.
Returning Empty to proceed normally.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="afterToolCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext,java.util.Map)">
<h3>afterToolCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&gt;</span>&nbsp;<span class="element-name">afterToolCallback</span><wbr><span class="parameters">(<a href="../tools/BaseTool.html" title="class in com.google.adk.tools">BaseTool</a>&nbsp;tool,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&nbsp;toolArgs,
<a href="../tools/ToolContext.html" title="class in com.google.adk.tools">ToolContext</a>&nbsp;toolContext,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&nbsp;result)</span></div>
<div class="block">Callback executed after a tool has been called.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>tool</code> - The tool instance that has just been executed.</dd>
<dd><code>toolArgs</code> - The original arguments that were passed to the tool.</dd>
<dd><code>toolContext</code> - The context specific to the tool execution.</dd>
<dd><code>result</code> - The dictionary returned by the tool invocation.</dd>
<dt>Returns:</dt>
<dd>An optional Map to replace the original result from the tool. Returning Empty to use
the original result.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="onToolErrorCallback(com.google.adk.tools.BaseTool,java.util.Map,com.google.adk.tools.ToolContext,java.lang.Throwable)">
<h3>onToolErrorCallback</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Maybe&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&gt;</span>&nbsp;<span class="element-name">onToolErrorCallback</span><wbr><span class="parameters">(<a href="../tools/BaseTool.html" title="class in com.google.adk.tools">BaseTool</a>&nbsp;tool,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>&gt;&nbsp;toolArgs,
<a href="../tools/ToolContext.html" title="class in com.google.adk.tools">ToolContext</a>&nbsp;toolContext,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class in java.lang" class="external-link">Throwable</a>&nbsp;error)</span></div>
<div class="block">Callback executed when a tool call encounters an error.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>tool</code> - The tool instance that encountered an error.</dd>
<dd><code>toolArgs</code> - The arguments that were passed to the tool.</dd>
<dd><code>toolContext</code> - The context specific to the tool execution.</dd>
<dd><code>error</code> - The exception that was raised during tool execution.</dd>
<dt>Returns:</dt>
<dd>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.</dd>
</dl>
</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
<footer>
<hr>
<p class="legal-copy"><small>Copyright &#169; 1980. All rights reserved.</small></p>
</footer>
</main>
</div>
</body>
</html>