Tools
Tools are callable functions exposed to the live model.
Execution modes
inline: blocking, result returned in-turnbackground: async handoff to subagent
On gemini-3.8-live — the default Live model — every function is declared BLOCKING unless the tool sets behavior or the session sets functionBehavior. That model would otherwise run an undeclared call NON_BLOCKING and end its turn before the result exists. Other Live models, including gemini-3.1-flash-live-preview and the 2.5 native-audio models, are sent no behavior and keep the server default they were measured with. Set 'NON_BLOCKING' to opt into asynchronous calls, or 'BLOCKING' to ask for it on a model that does not get it by default.
Tool basics
Each tool defines:
name,descriptionparameters(zod schema)executionexecute(args, ctx)
Artifact Pipeline (Cross-Tool Data Flow)
The framework supports per-session artifact sharing across tools and subagents.
Use this when one tool generates binary data (image/document) and another tool needs it later (email, analysis, relay).
Typical flow:
- Generator tool stores artifact in registry.
- Registry returns
artifactId. - Downstream tool receives
artifactIdand materializes/forwards data.
This avoids embedding base64 into prompt text and keeps handoffs structured.