OpenAI Agents API durable sessions and Sume job ids

A durable OpenAI Agents API session continues across turns; a Sume render is a separate job. Keep the job id in the session and re-read it, never re-create.

4 min readSume
All posts

Durable sessions keep an OpenAI agent's conversation alive across turns, but they do not hold a Sume render. A Sume job has its own id and lifetime, so the agent should write the job_id into the session as soon as the create call returns, and on the next turn read that job rather than create it again.

The OpenAI claims are from its changelog (Sep 10 entry, read 2026-10-01); the Sume rules are from Jobs and results.

What did OpenAI release on Sep 10?

The changelog says the Agents API is in public beta, with a managed Codex harness where OpenAI handles session orchestration, context compaction, and recovery. It adds that you can use durable sessions to continue work across turns, stream progress, and connect your own tools and MCP servers. Connecting Sume as an MCP server is covered in Agents API with Sume MCP.

What does the session not recover for me?

The session recovers the conversation. The render is state held by Sume, which is why the Sume docs say generation endpoints create durable jobs and tell you to store the job id so work can be recovered after process restarts. If the agent only remembers "I asked for a video", it has nothing to read back.

Where each piece of state lives, per the OpenAI changelog and Sume docs, read 2026-10-01.
StateHeld byHow to resume
Conversation turnsAgents API sessionContinue the session
Render progressSume jobjobs_status, jobs_wait, or jobs_events with the stored id
Finished mediaSume job resultjobs_result once the job is completed

How does the agent pick the job back up?

Hosted MCP exposes jobs_status, jobs_result, jobs_events, and jobs_wait as read tools, and jobs_cancel as a write tool that needs an idempotency_key. A new turn can call jobs_wait with the stored id; if the slice expires, call it again with the same id. The docs say never to resubmit the paid create for that.

What if the turn or the client times out?

The docs state that a client-side timeout does not cancel the job; it keeps running and still bills. So a lost turn is a reason to re-read, not to re-create. For completion pushes instead of polling, see agent run webhooks.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume