Continue a Sume Format run with previous_run_id after a review gate

Send previous_run_id on a new POST .../runs so the agent redoes one part. A yes/no review model decides whether to continue; each new run gets its own webhook.

5 min readSume
All posts

A Format run is one agent turn, and previous_run_id on a new POST …/runs continues the same conversation. Sume replays what the agent produced, so it can redo one part and keep the rest. That makes a review gate cheap to add: a decision model reads the finished output, says accept or redo, and your code sends the continue request only on a redo.

What a continue changes

Each continued run is a new run with its own receipt and its own single terminal webhook. The webhook of the original run already fired and does not fire again, so your handler must treat the new run id as a new job.

Continue a Format run (read 2026-10-05)
ItemOriginal runContinued run
Run idarun_...A new arun_...
previous_run_idnullThe original id
Terminal webhookAlready sentSent again, own id
Spend capIts ownSend a new generation_spend_cap_usd
def next_request(prev_id: str, verdict: str, note: str) -> dict | None:
    if verdict == "accept":
        return None
    return {
        "previous_run_id": prev_id,
        "instruction": f"Redo only the part with this problem: {note}",
        "generation_spend_cap_usd": 2,
    }


print(next_request("arun_example", "redo", "the caption is cut off"))
print(next_request("arun_example", "accept", ""))

Cap the loop

Limit the number of redo loops in your code. A decision model that says redo every time will keep spending, and the only thing that stops it is a counter and a cap you own.

Check the docs before you ship

Sume's limits and field names change faster than blog posts do. Read the linked docs pages for the current request fields before you ship, and send a dry_run or a low spend cap on your first real call.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume