ADK 2.11 tool nodes pause for approval: gate Sume paid tools
Google ADK 2.11.0 tool nodes can pause for user approval via RequestInput. Use it so a Sume paid tool call waits for a person before it spends.

Use the new approval pause in Google ADK Python v2.11.0 (2026-10-02) for any Sume tool that spends. The release says tool nodes now pause for user approval via RequestInput, which gives your workflow a human checkpoint before a paid call reaches Sume.
Sume does not ask for approval itself over MCP. It gives you a dry_run option and an optional max_spend_usd, and it requires an idempotency_key on write and paid calls.
What the release adds
The ADK notes list tool nodes pausing for approval, an abort_signal, auto-cancel on client disconnect for /run_sse, a ModelConsultTool, and an optional MCP SDK 2.x connection path.
At a glance
| Step | Where it happens | Tool or setting |
|---|---|---|
| Preview | Before approval | dry_run, generation_admission_preview |
| Approval | ADK tool node | RequestInput pause |
| Execute | After approval | idempotency_key, max_spend_usd |
| Wait | Afterwards | jobs_wait slices of 45 to 55 seconds |
A sensible approval flow with Sume
First call the paid tool with dry_run to see what it would do. Present that result in the approval step. On approval, call again with a fresh idempotency_key and max_spend_usd set to the approved amount.
Sume also has generation_admission_preview for estimating whether a generation will be admitted. Use it in the same place.
- Dry run, show, approve, then run.
- One idempotency_key per approved action.
- Keep read tools out of the approval node to avoid prompt fatigue.
Limits and what is not verified
I did not run an ADK workflow against Sume for this post. The release notes are short about how RequestInput payloads are shaped, so follow ADK's documentation for the node code.
Sources
Related posts
More in Developers
- Agent crashed after submitting: find the Sume runs it started
List a Format's runs, read trigger.idempotency_key, and rebuild which rows already ran after a fresh agent session or crash, without paying for a duplicate.
- Teammate continues a thread: why webhook_delivery.url reads null
A Sume Agent turn reading a teammate's job sees delivery state, but webhook_delivery.url and last_error are null. Who reads which jobs, explained.
- AI favicon for Google Search: square, over 48 px, stable URL
Google wants a square favicon bigger than 48 px at a URL that stays put. How to make one with the Sume image API, what it costs, and what no tool can promise.
- AI image API timeouts in Python: httpx above 30 s, 200 or 202
Sume's image endpoint holds a request up to 30 seconds, then returns 202 with a job. A runnable httpx example with a 40 second client timeout.
Written by Sume