brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
tools-and-integrationsBind and troubleshoot ADK Python tools, ToolContext, long-running and confirmation tools, auth, MCP/OpenAPI/Google API/cloud integrations, A2A helpers, and optional extras.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when a user asks to add, wrap, authenticate, expose, or debug tools and integration toolsets in an ADK Python agent.
FunctionTool, LongRunningFunctionTool, ToolContext, request_input, or explicit tool_context.request_confirmation().BaseTool or BaseToolset classes, filter/prefix toolsets, or close toolset resources safely.AgentTool, delegate with TransferToAgentTool or transfer_to_agent, or diagnose tool-name routing issues.AuthConfig, AuthCredential, AuthenticatedFunctionTool, OpenAPI auth helpers, MCP auth, or credential request flows.google-adk[mcp], google-adk[extensions], google-adk[gcp], google-adk[tools], google-adk[a2a], google-adk[toolbox], or google-adk[db].model, instruction, schemas, and callback basics: use agent-construction.cli-configuration-deployment.Runner, App, session/memory/artifact persistence, plugins, telemetry, and service lifecycles: use runtime-services.Workflow, HITL node resume, joins, and dynamic graph routing: use workflow-orchestration.repo-development.FunctionTool(func=..., require_confirmation=...) only when you need confirmation or explicit tool object behavior.tool_context: ToolContext only when the tool needs state, artifacts, credentials, confirmation, transfer actions, or workflow node helpers; the parameter must be named tool_context.{"error": "..."} when the model should see a recoverable tool failure.LongRunningFunctionTool for work that returns pending status or pauses for external input; do not retry the same long-running call unless the returned event requests it.from google.adk import Agent
from google.adk.tools import FunctionTool, ToolContext
def transfer_funds(amount: float, recipient: str, tool_context: ToolContext):
"""Transfer funds after ADK collects confirmation."""
return {"status": "scheduled", "amount": amount, "recipient": recipient}
root_agent = Agent(
name="finance_agent",
model="gemini-3.5-flash",
instruction="Use tools for account operations and explain the result.",
tools=[FunctionTool(func=transfer_funds, require_confirmation=True)],
)
BaseTool descriptions.ToolContext is used for state, credentials, confirmation, memory/artifacts, transfer actions, or node execution; it is not exposed to the model as a normal argument.require_confirmation=True or explicit tool_context.request_confirmation() handling.on_tool_error_callback; recoverable domain failures return a function response such as {"error": "..."}.