LangGraph interrupt response_schema for paid video approval

LangGraph 1.2.12 adds response_schema to interrupt(). Use a typed approve, edit or reject reply with max spend to drive a Sume dry_run, then submit.

4 min readSume
All posts

Use a typed reply for the approval step: have the human answer with approve, edit or reject plus a spend ceiling, then run Sume's dry_run=true preview before the real submit. LangGraph 1.2.12 added response_schema to interrupt(), which is a natural place to declare that reply shape.

The LangGraph release note is a single line ("add response_schema to interrupt()", #8886), so check its docs for exact usage. Sume's gates are from MCP tools and gates, read 2026-09-30.

What should the approval payload contain?

Three things: a decision (approve, edit, reject), an optional edited prompt, and a maximum spend in USD. Sume's max_spend_usd gate is enforced only when provided, so a reply that omits the ceiling means no cap, and your graph should refuse that.

Sume gates a graph can feed from the approval reply, from the Sume docs read 2026-09-30.
GateRequired?Meaning in the docs
idempotency_keyRequired on write and paid toolsStable key for transport and dedup, not human approval
dry_run=trueOptionalAdmission and cost preview only; does not submit
max_spend_usdOptionalEnforced only when provided

Why is the key not the approval?

Sending an idempotency_key does not mean anyone agreed to the spend. The docs describe it as dedup only, so approval has to live in your graph: the interrupt is the approval, the key is the retry guard.

What is the sequence?

The docs give a two-step flow. First call with dry_run=true and review the preview. Then repeat with dry_run omitted or false to submit, and poll with jobs_status or jobs_wait before reading jobs_result.

Put the interrupt between the two calls: show the preview, wait for the typed reply, and on approve or edit submit with the approved max_spend_usd. On edit, run the dry run again, since the prompt changed. Compare the simpler untyped pattern in LangGraph interrupt before a paid video API call.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume