Agent API continue session with thread_id: what Sume supports
Sume's Agent Completions run in a fresh thread every time and do not accept thread_id to continue one. Format runs continue with previous_run_id instead.

An Agent Completion on Sume cannot continue a prior thread: every completion runs in a fresh thread, and the docs list continuing with thread_id under not available yet. If a long job needs a second turn, the supported route is a Format run with previous_run_id.
What does a completion do with thread_id?
The receipt carries a thread_id that tells you which fresh thread ran. It is output, not something you send back. The docs also say assistant turns in messages[] are rejected, not ignored, because accepting them would imply Sume replays a prior conversation, which this endpoint does not do yet.
OpenAI's overview, by contrast, says its sessions are durable. That is a difference in scope of the two products, not a fault in either.
How do I continue work on Sume, then?
Use a Format. A Format run is one agent turn, and sending previous_run_id on a new run continues the same conversation, so the agent is replayed what it produced and can redo one part.
| Surface | Continue a prior turn? | How |
|---|---|---|
| Agent Completions | Not yet | Fresh thread every run |
| Format runs | Yes | previous_run_id on a new POST .../runs |
Which prior run can be continued?
Read it off the receipt: thread_id is not null, and the run either completed or has a non-empty artifacts[]. A failed run that left work behind can be continued; one that left nothing cannot. Sume's error docs say to prefer continuing over a fresh run when a failure left clips behind, so finished clips are not regenerated.
What if I must stay on Agent Completions?
Carry the state yourself. Pass earlier results back in input, which is written whole to /workspace/inputs/sume-action-input.json and treated as data, not instructions. Keep each request self-contained, since the task is sent on every call.
How do I tell which thread ran?
The create response returns a receipt with id, object: "agent.run", thread_id, status, status_url and cancel_url. Poll status_url until next_action stops being poll_status. Log the thread_id beside your own task id so support and later Format work can find it.
Retrying a failed completion is a new request with a new Idempotency-Key; replaying the same key returns the original receipt with idempotency_hit: true, and reusing it with a different payload returns 409 idempotency_conflict.
Is team-owned continuation available?
No. The Not available yet list also names team-owned threads: completions are user-owned. Non-image attachments, streaming and a synchronous choices[] response are on the same list. Check that page again before you design around any of them.
Sources
Related posts
More in Developers
- Generate an image, then animate it: image to video in two API calls
Generate a still with POST /v1/images, then pass its URL as first_frame to POST /v1/videos. The two calls, the URL rule between them, and what each reserves.
- AI music generator API in Python: prompt to MP3 file
A short Python script that sends a prompt to Sume's Music Router, polls the job and saves the audio. Runs with httpx and asyncio.
- AI music negative prompt: why the API returns 400
Sume's music API rejects a non-empty negative_prompt with HTTP 400. What the error looks like and how to write exclusions in the prompt instead.
- AI music API webhook: get a callback when the track is ready
Submit a music job with mode webhook and a public HTTPS URL, verify the signed callback, and keep polling as a backup. Headers, events and retries.
Written by Sume