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.

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.
| State | Held by | How to resume |
|---|---|---|
| Conversation turns | Agents API session | Continue the session |
| Render progress | Sume job | jobs_status, jobs_wait, or jobs_events with the stored id |
| Finished media | Sume job result | jobs_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
- OpenAI Agents Python MCP error content: reading Sume tool errors
openai-agents-python v0.20.0 keeps MCP error content with structured output. Sume tool failures arrive as isError text with code, message and http_status.
- OpenAI Agents Python MCP non-text content as JSON: Sume results
openai-agents-python v0.20.0 serializes non-text MCP blocks as JSON. Sume tool results are text blocks, with media delivered as URLs inside the JSON.
- OpenAI Agents Python MCP backoff ceiling vs Sume retry-after
Set the MCP retry backoff ceiling low enough that a Sume 429 with retry-after is honored first, and never retry a paid create without its idempotency key.
- Does an OpenAI API key expire? Expiry dates and key rotation
OpenAI project keys can now carry an expiration date and orgs can cap lifetime. Sume documents no expiry field: rotate by minting a replacement key.
Written by Sume