Agent Builder, Evals and saved prompts shut on 30 November. Here's what to pull out first
Agent Builder, saved prompts and OpenAI Evals go dark on 30 November 2026. If your chat, prompts or tests still sit there, here's what breaks and what to pull out this week.
part 24 of 25 · Platform releases, explained from scratchthe ideaGet your workflows, prompts and tests out before the tools close.
after reading, you can- Track down each chat, app and test still leaning on the tools that close
- Pull workflows, prompt wording and test results out while you still can
- Decide who'll run each agent from now on, your developers or staff in ChatGPT
OpenAI is switching off three developer tools on 30 November: the Evals platform, Agent BuilderdefinitionOpenAI's drag-and-drop canvas for agent workflows. Someone publishes a workflow and gets an ID back. Your chat or app has been calling that ID ever since. and saved prompt objects behind the v1/prompts API. If your chat widget, your test suite or your production prompts live in any of them, they need a new home before that date. Evals already went read-only on 31 October, so the test half of this has started.
Built anything in OpenAI's dashboard? Check it now. Three of its tools close at the end of November.
Lots of teams keep part of their work in OpenAI's dashboard. Someone drew the chat helper there as boxes and arrows, saved the instructions the app fetches by ID, and kept the tests that check the answers are still good. OpenAI is closing those tools. Whatever lives only there has to be copied out and rebuilt somewhere you control. Anything that calls them by ID will stop getting what it expects.
It's like a landlord closing the storage unit where you kept the master copies of your forms. The forms still work, but only if you've got your own copy before the doors lock, and every office that sends people to collect from the unit needs a new address.
- Sites whose ChatKit chat runs on Agent Builder
- Apps that load saved prompts by ID
- ML teams running tests in OpenAI Evals
- Product owners of AI features
- Buyers of tools built on OpenAI
Why it matters to you
The failure here is quiet until it isn't. Nothing in your own code changes on 30 November. A website chat that gets its brains from an Agent Builder workflow loses that backend. An app that fetches its instructions by prompt ID loses the instructions. OpenAI's prompt migration guide doesn't say what those requests return after the date, so plan for them to fail.
The tests matter more than they look. For some teams, Evals is where they check that a model swap didn't make answers worse. OpenAI is also retiring several GPT-4o and GPT-4.1 snapshots, minis included, on 14 January, so plenty of teams have a model migration coming right after this one. They'll want their test set out of Evals and running somewhere else before that starts.
There's an access angle too, and it's easy to miss. Today the dashboard holds the prompt text, the workflow and the test data, and anyone with access to the project can change them. Once they move into your repo or a ChatGPT workspace, someone has to decide who can edit them and which API key or connected app each one runs under.
-
01 Your app makes a call
A ChatKit session names a workflow ID, or a Responses API call names a saved prompt ID, the same way it has for months.
-
02 The target is gone
OpenAI stops serving Agent Builder workflows and saved prompts. Your code hasn't changed, but it's now calling something that isn't there.
-
03 The feature breaks
The chat on your site goes quiet. Or the app fires off a request and the instructions it relied on aren't there.
-
04 Logic moves to your side
Someone moves the workflow into Agents SDK code or a ChatGPT workspace agent, and copies the prompt wording into the app's own code.
-
05 Your own tests check it
Run the tests you rebuilt outside Evals, say in Promptfoo. If the answers still look right, let users back in.
For engineers: a ChatKit session created against a hosted workflow sends workflow: {id} to the ChatKit sessions endpoint. OpenAI's ChatKit guide says you can keep using that hosted workflow during the transition window, and points new work and migrations at a ChatKit server you run yourself. Saved prompts show up as a prompt parameter on the Responses API with an ID, a version and variables. Search for both before you search for anything else.
What goes, and where OpenAI wants you to move it
The three shutdowns and what replaces each one
The canvas shuts on 30 November. Export each workflow as Agents SDK code first. You can run that yourself or paste it into a ChatGPT workspace agent.
Every prompt someone saved in the dashboard goes, versions and all. Paste the wording into your own code and stop fetching it by ID. That's OpenAI's advice too.
Nobody can edit evals since 31 October, and the whole thing closes on 30 November. OpenAI sends people to Promptfoo, an open-source eval tool.
Eval graders go too. The deprecations page puts the graders used in eval workflows in this same transition, while fine-tuning keeps its own timeline. If a release check leans on one, rebuild it somewhere else.
Still available. If your ChatKit chat runs on an Agent Builder workflow, though, it needs a new backend you host with the ChatKit SDK.
Stays in OpenAI's platform. The Promptfoo guide says dataset review and prompt iteration remain there, so you lose the test runner, not the whole workspace.
Agent Builder is the hard one. The export hands you code, but it doesn't convert the workflow graph. Nobody promises every behaviour survives the trip either, so someone still walks each branch by hand.
Workspace agents have their own catch. OpenAI warns that a workflow built on a strict run of steps might not come across faithfully, so test the awkward paths first. Someone also has to set up the connected apps and permissions again in ChatGPT.
Prompt objects are the simplest move and the easiest to get slightly wrong. The prompt text goes into your code, the variables become ordinary function arguments, and the version history moves to git. OpenAI's guide adds one detail that saves money: keep the fixed instructions first and the parts that change per request last, because prompt caching only works on an exact matching prefix.
Don't expect an export button. The PromptfoodefinitionAn open-source test tool. You write the checks in a config file, then run them on a laptop or in CI. It's where OpenAI sends people leaving Evals. cookbook describes a manual rebuild instead: you recreate the prompts, the model settings, the test cases and the scoring rules in a Promptfoo config file, then run it. One developer on OpenAI's forum who has used Promptfoo said they couldn't point to anything they'd lost. Their team later dropped it for its own rubric-based evals, which is a reasonable choice if your checks are simple.
| What you have today | Where OpenAI points you | What moves for you | What you redo by hand |
|---|---|---|---|
| Agent Builder workflow | Agents SDK (TypeScript or Python), or a ChatGPT workspace agent | Exported SDK code | Control flow, triggers, tools and permissions review |
| ChatKit on a hosted workflow | ChatKit with your own server | The chat front end and widgets | The backend that answers, built with the ChatKit Python SDK |
| Saved prompt object | Prompt text in your application code | Nothing automatic. Copy the text out | Variables, versioning, rollout flags |
| Evals in the dashboard or API | Promptfoo, or your own harness | Test data you can still read and download | Graders, scoring thresholds, CI runs |
The dates around this shutdown
- 26 Aug 2026Assistants API removed
If anything still calls /v1/assistants or threads, it's been failing since late August. OpenAI's replacement is the Responses and Conversations APIs.
- 31 Oct 2026Evals read-only
You can still read your evals, runs and results and pull them through the API. You can't edit them any more.
- 30 Nov 2026Three tools shut
All three tools are scheduled to close on this day. Anything you haven't copied out by then stays behind.
- 6 Jan 2027No new fine-tuning jobs
From here even active fine-tuning customers can't start new jobs. Fine-tuned models you already have keep answering until their base model goes.
- 14 Jan 2027GPT-4o and GPT-4.1 removed
GPT-4o and GPT-4.1 snapshots leave the API. You'll want working tests for that switch, so move them out of Evals now.
Your options, side by side
For most teams the choice is really about Agent Builder. Prompts go into code either way, and Evals goes to Promptfoo or your own harness. The agent is where you pick between owning code and handing the logic to ChatGPT.
| Route | Best when | What you take on | Watch out for |
|---|---|---|---|
| Agents SDK in your app | The agent sits behind a product or website and developers own it | Hosting, API keys, logs, deployment | Validating config, tools, auth and permissions yourself |
| ChatGPT workspace agent | Staff use it inside ChatGPT for repeatable internal work | Business, Enterprise or Edu plan, agent-creation rights | Strongly step-by-step workflows may not carry over faithfully |
| ChatKit plus your own server | You want to keep the same chat window on your site | A server running the ChatKit SDK and your agent | Logging users in properly. We'd authenticate every end user |
| Plain Responses API wrapper | The workflow was really one or two model calls | Your own small loop and tool handling | You rebuild the agent loop and handoffs the SDK gives you |
The last row isn't on OpenAI's migration page. It came up on OpenAI's developer forum, where one practitioner suggested rolling a small wrapper over the Responses API, while calling the Agents SDKdefinitionOpenAI's code library for Python and TypeScript. Your developers drop it into their own app, and it handles the agent loop and handoffs. Hosting and keys are on you. a good replacement and the way to go otherwise. That matches what the SDK overview says about the trade: the SDK runs the agent loop and handoffs for you, and the raw Responses API leaves the whole integration to you.
The workspace agent route changes who owns the thing. It stops being an app your developers deploy and becomes something staff build and share in ChatGPT. That suits internal helpers. It's a poor fit for a customer-facing chat on your website, which is where ChatKit with your own server makes more sense.
What to do before 30 November
Who does what, and by when
- Ask your tech lead which features use Agent Builder, saved prompts or OpenAI Evals, and who owns each one.
- Ask any vendor whose chat or AI feature you embed whether it runs on Agent Builder, and get their move date in writing.
- Put 30 November on the risk register with one named owner per feature.
- Search code and config for the prompt parameter, saved prompt IDs and ChatKit session calls that pass a workflow ID.
- Export every Agent Builder workflow you use as TypeScript or Python Agents SDK code and commit it, even if you'll rewrite it.
- Copy the live wording of each saved prompt into the repo. The variables become plain function arguments.
- Pull eval definitions, runs and graded answers through the Evals API now. Once it's gone, so are they.
- Rebuild the evals you rely on in Promptfoo or your own harness, and compare scores with the old runs.
- Re-check any test where a model does the grading. Don't let it approve a release until someone has.
- Decide who can change prompts once they're in the repo, and require pull request review.
- Give each migrated agent its own API key or project, scoped to what it actually calls.
- Check what each workspace agent can reach before anyone shares it. Connected apps get the same review as a new hire's access.
Saving the Evals data is mostly a scripted job, so give it to a developer this week. The Evals API still lists your evals at GET /v1/evals, their runs at /v1/evals/{eval_id}/runs and each run's graded answers at /runs/{run_id}/output_items. You can filter those answers down to the failures, and they're usually the cases you'll want again. Page through everything. The output-items list, for one, returns 20 per page unless you ask for more.
Then search the code. The IDs in OpenAI's examples look like pmpt_123 and wf_123, so grep for those prefixes and for calls to chatkit/sessions, but check your config files, environment variables and low-code tools too. A workflow ID often sits in an environment variable on the server that creates ChatKit sessions.
A migration order that holds up
- 01Inventory by ID
Write down every workflow ID, saved prompt ID and eval your projects use. Put a feature and an owner next to each, or nobody will chase it.
- 02Export while you can
Get every export, prompt and eval into your repo or storage first. Sort out what's worth keeping later, once nothing can disappear on you.
- 03Move prompts into code
One named function per prompt in a prompts module. Fixed instructions first, request details last. Versioning happens in git from now on.
- 04Rebuild the tests
Recreate the evals you rely on in Promptfoo or your own harness. Check each grader against a few answers someone has marked by hand.
- 05Rebuild the agent
Get the exported code running, or set up the workspace agent from it. Then run the rebuilt tests against both old and new while the old one still answers.
- 06Switch the front end
Point ChatKit at your own server, or switch the app to the new code path. Keep the old path as a fallback until 30 November.
- 07Clean up access
Retire API keys the old setup used, and give the new agent its own key with only what it needs.
Make the next shutdown less painful
OpenAI switched off the Assistants API in August, and now these three. The pattern is the same both times. Anything you build inside the vendor's dashboard is easy to start with and hard to take with you.
Before: the logic sits in OpenAI's dashboard
The app holds IDs. The workflow, the prompt wording and the tests all sit in tools that are closing.
After: logic and tests in your repo
OpenAI only serves the models now. Your team owns the agent, the prompts and the tests, and reviews them like any other code.
Durable fixes, tied to this case
- 01Keep prompts in source control
Every wording change becomes a commit with a reviewer. OpenAI's own migration guide recommends this, with tests in CI before release.
- 02Run tests where you deploy
Promptfoo runs locally or in CI, so a prompt or model change can't merge until the tests pass.
- 03One key per agent
Give each agent or service its own project and key. When something is retired, you can see exactly what still calls it.
- 04Authenticate chat users
Whatever server sits behind ChatKit should know who each user is. Don't let anonymous visitors reach an agent that can call your internal tools.
- 05Watch the deprecations page
Someone reads OpenAI's deprecations page on a schedule and files a ticket for anything that touches your stack.
If it goes wrong
If something breaks after the shutdown, here's the order we'd work in
After the shutdown there's nothing to roll back to on OpenAI's side. The plan is to have your own copy ready and switch to it fast.
- 01Spot itfirst hour
- Check server logs for failed ChatKit session calls and Responses requests that carry a prompt ID.
- Tell support which feature is down and what users see, so the help desk isn't guessing.
- 02Stop the damagefirst hour
- Hide or disable the broken chat rather than leave it spinning, and show a contact route instead.
- Turn off retries for calls that can't succeed, so they don't fill queues or burn rate limits.
- 03Switch to your copyfirst day
- Put the exported Agents SDK code behind ChatKit. Where a saved prompt broke, paste in the text you copied out.
- If you didn't copy a prompt out, rebuild it from whatever records you have. Don't count on OpenAI's tools still having it.
- 04Check the answersfirst week
- Run the rebuilt tests against the new path and spot-check live answers.
- Look for silent problems: missing guardrails, tools that no longer fire, a different tone.
- 05Learnafter
- Add whatever you missed to the inventory, then ask why it wasn't there. Usually someone built it on the side and never told anyone.
- Move any remaining dashboard-only setup into code.
What this could look like: four typical setups
Four made-up setups, so you can see where yours fits and what to do first
- the setup
- A small accounting firm put a help assistant on its website, built in Agent Builder and shown through ChatKit. The contractor who set it up has moved on, and nobody else has the login.
- what happens
- The chat window still loads, because ChatKit stays. The workflow behind it doesn't. Visitors type a question and nothing useful comes back.
- what to do
- Export the workflow now as Agents SDK code. Pay someone to stand up a small ChatKit server, or take the chat down before 30 November.
- the setup
- A product manager at a software company edits prompts in OpenAI's dashboard whenever support complains about an answer. The app only sends an ID, a version number and the customer's details, so the wording never touches the repo.
- what happens
- When the prompts API shuts, expect requests that carry the ID to fail. The feature breaks, and the current wording may exist nowhere else.
- what to do
- Copy every prompt's live version into a prompts module in the repo. Give the product manager pull request access instead of dashboard edits.
- the setup
- A data science team runs regression tests in OpenAI Evals before every prompt change, with a model-graded rubric for claim summaries.
- what happens
- The tests went read-only on 31 October, so nobody can change them there. In December they're gone, just as the GPT-4o migration needs them.
- what to do
- Download the eval definitions and failed output items now. Rebuild the rubric in Promptfoo and check it against summaries someone has marked by hand.
- the setup
- Someone in IT built a workflow in Agent Builder that sorts incoming requests and drafts replies. Staff reach it from an internal page. The company already pays for ChatGPT Enterprise.
- what happens
- The workflow stops on 30 November. Rebuilding it as a workspace agent is the obvious route, but its connections to the ticketing system need new sign-in and permission setup in ChatGPT.
- what to do
- Export the code, create the workspace agent from it and test it in Preview. Have the identity team review its connected apps and who it's shared with before you create it.
How Cohash helps
We pull the agents, prompts and tests out of OpenAI's dashboard and into code your team owns. Most of the work is an Agents SDK or ChatKit server build. Then the prompts get a reviewer, and the evals run in CI so nothing merges untested. See our OpenAI API page and the LLMOps and evaluation practice. If you need engineers for the cut-over, hire OpenAI developers, or start with a short assessment.
What to take from this
- 01
Plan for anything still sitting in Agent Builder, saved prompts or Evals on 30 November to be out of reach. ChatKit and the models keep working.
- 02
A ChatKit chat on an Agent Builder workflow needs a new backend. Export the workflow as Agents SDK code this week.
- 03
Copy every saved prompt's live wording into your repo. After the shutdown the ID is all you'll have.
- 04
Evals is read-only now, and OpenAI's guide rebuilds tests by hand. Download definitions and results through the API, then rebuild in Promptfoo or your own harness.
- 05
Recheck model-graded tests after rebuilding them. Scores won't match the old ones exactly.
- 06
Give each migrated agent its own key and review who can edit prompts and agents once they leave the dashboard.
01Is ChatGPT affected?
No. This hits developer tools in OpenAI's API platform, and ChatGPT carries on as before. In fact ChatGPT workspace agents are one place OpenAI suggests moving Agent Builder workflows to.
02Does ChatKit stop working on 30 November?
No, ChatKit stays. What stops is Agent Builder, so a ChatKit chat that runs on a hosted Agent Builder workflow loses its backend. You'd connect ChatKit to a server you run instead.
03Can I export my evals?
OpenAI's migration guide doesn't use one. While evals are read-only you can still pull definitions, runs and graded answers through the Evals API. Then you rebuild the tests by hand in Promptfoo or your own harness.
04Our app still sends a saved prompt ID. What happens to it in December?
OpenAI's guide doesn't say what they'll return. Assume they fail. Copy the prompt text into your code before 30 November, because afterwards the ID is all you'll have.
05Do we need ChatGPT Enterprise to get off Agent Builder?
Only if you go the workspace agent route, which needs a Business, Enterprise or Edu workspace. If your developers run the Agents SDK in your own app, you don't need a ChatGPT plan at all.
06Is Promptfoo the only replacement for Evals?
It's the one OpenAI points to. Some teams use their own test harness instead. What matters is that the tests live somewhere you control and run before changes go live.
07There's a vendor's AI chat on our site. Is that our problem?
Possibly. Ask the vendor whether their product runs on Agent Builder or saved prompts, and when they'll have moved. Get the answer in writing.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1Someone tells you the website chat is fine because ChatKit isn't going anywhere. What would you check before believing them?
show the answer
B. Whether your server sends a workflow ID when it starts a chat. That's the giveaway ChatKit survives, but a chat backed by a hosted Agent Builder workflow loses its backend when Agent Builder shuts. The workflow ID in the session call tells you which kind you have.
-
Q2Your app has sent the same saved prompt ID for a year, and nobody has the wording anywhere else. What do you do this week?
show the answer
A. Copy the live wording out today and commit it to the app's repo Once v1/prompts shuts, expect requests carrying the ID to fail, and the wording may exist nowhere else. OpenAI's guide says to move the content into your code.
-
Q3You've rebuilt the evals in Promptfoo, and the similarity scores don't match the old runs. What's the likely reason?
show the answer
C. Scores usually shift a bit between tools. Check the graders by hand before you trust them The Promptfoo migration guide warns that similarity scores won't match exactly across systems. Check rebuilt graders, especially model-graded ones, against hand-marked answers.