FunctionTool
Represents a compile-time generated tool that wraps a function annotated with com.google.adk.kt.annotations.Tool.
The optional confirmation gate (set via the requiresConfirmation constructor parameter) makes an invocation pause for human approval before the underlying function runs:
On the first call the tool records a confirmation request via ToolContext.requestConfirmation and returns a placeholder error response without invoking the underlying function.
Once the user supplies a com.google.adk.kt.events.ToolConfirmation, the tool is re-executed: if the user confirmed it runs normally; otherwise it returns a rejection error response.
The gate has two forms:
Per-call predicate (the primary constructor): a
(args) -> Booleanis invoked on every call with the function'sargsand decides whether to gate this invocation, e.g.requiresConfirmation = { args -> (args["amount"] as Int) > 1000 }. The default value{ false }disables the gate entirely.Boolean (the secondary constructor): a constant flag that gates either every invocation (
true) or none (false). It is a thin wrapper that lifts the Boolean into a constant predicate{ value }.
Constructors
Boolean convenience constructor: pass true to gate every invocation, false to skip the gate entirely. Equivalent to passing { requiresConfirmation } to the primary constructor.
Properties
The custom metadata of the tool.
The description of the tool.
Whether the tool's final result will be delivered out-of-band. When true, the framework marks the call as long-running and uses the tool's return value as the function-response payload (or suppresses the response entirely if the tool returns Unit).