Agentshield

OpenAI Agent Builder Security: Agents SDK Guardrails After the AgentKit Shutdown

Agent Builder goes away on November 30, 2026, and the Agents SDK is a good destination. The part worth planning before December is smaller than a rewrite: controls you configured once on a canvas become code in every service, and nothing in the migration path produces the evidence an auditor asks for.

OWASP LLM Top 10 Immutable audit trail Never trains on your data

Direct answer

OpenAI announced on June 3, 2026 that Agent Builder shuts down on November 30, 2026, along with the Evals platform and reusable prompt objects. The migration guide sends you to one of two destinations, the Agents SDK or workspace agents in ChatGPT, and states plainly that the export "does not convert your workflow graph or guarantee that every behavior transfers unchanged". The security consequence is narrower than the panic suggests. The Agents SDK ships real controls: input and output guardrails, tool guardrails that wrap FunctionTool instances, needs_approval on function and shell tools, and is_enabled filtering that hides tools from the model at runtime. What changes is where those controls live. On the canvas they were configuration that one person could read in an afternoon. In the SDK they are code, written per agent by whoever owns that repository, shipped with that agent, and invisible to anyone not reading the source. Agentshield is the enforcement point you add when the policy has to outlive a single repository and be provable to someone who was not in the room.

Try it live

Watch Agentshield block an attack in real time.

Pick a scenario and drive the inspection lane yourself. No signup needed.

Threat Console
Interactive demo · 0 blocked in this session

Run a request

Runs the live engine on your text. Nothing is stored, no account needed.

Inspection lane

INSPECTING
untrusted input

Policy trace

High-risk action held for approval

Audit trail

The risk

A team exports four workflows to TypeScript in the second week of November, gets them green in staging, and ships. In January somebody in security asks which of the four can send mail to an address outside the company, and who signed off the last time one of them did. The canvas that used to answer that in one screen is switched off. The answer now lives in four repositories, two of them owned by people who changed teams in December, and the guardrail logic in each one was written by a different engineer working from a different reading of the same ticket. Tracing shows what the agents did. Nothing shows what they were permitted to do, which is the question that was actually asked.

How Agentshield handles it

Keep the migration simple and put the policy somewhere that is not the application. Route the tool and model traffic from your migrated agents through Agentshield, declare per-agent tool and data scopes once, and the same policy covers a TypeScript service, a Python service and a workspace agent without any of them being redeployed. Untrusted content, including tool results and retrieved documents, is inspected before it reaches the model. Named actions that cannot be undone pause for a human and expire if nobody answers. Every call is written to an immutable per-action record that says which agent asked, what policy decided, and on whose authority it proceeded. None of that replaces the Agents SDK guardrails, and you should keep writing those. It replaces the assumption that a control written inside one agent describes the behavior of all of them.

The controls

The controls that secure every tool call your OpenAI agents make once the Agent Builder canvas becomes code you maintain.

What is happening to OpenAI Agent Builder, and when

Four separate deprecations landed in the same announcement window, and three of them share a single shutdown date. That matters for planning, because a team that only tracked Agent Builder can still be surprised in December by an evaluation suite and a prompt library going dark on the same morning. Dates below are from OpenAI's published deprecations page.

ProductAnnouncedShutdownOpenAI's stated destination
Agent BuilderJune 3, 2026November 30, 2026"to continue with the Agents SDK or ChatGPT Workspace Agents"
Evals platformJune 3, 2026Read-only October 31, 2026, shut down November 30, 2026A cookbook migration path to Promptfoo
Reusable prompts (prompt objects)June 3, 2026November 30, 2026"Move reusable prompt content into your application code"
Assistants APIAugust 26, 2025August 26, 2026, already shut downThe Responses API and Conversations API
ChatKitNot deprecatedRemains availableNo action needed

The ChatKit row is the one that quietly catches people. If you put an Agent Builder workflow behind a ChatKit front end, the front end keeps working after November 30 and the thing behind it does not. A chat window that renders correctly and returns nothing useful is a worse failure mode than an outage, because nobody pages anyone for it.

The export itself is four clicks. OpenAI's instructions are to open the workflow in Agent Builder, select Code in the top navigation, select Agents SDK in the code dialog, then select TypeScript or Python and copy the complete export. What you get back is a starting point rather than a finished migration, and OpenAI says so in three places worth reading before you scope the work.

First, on faithfulness: "This process does not convert your workflow graph or guarantee that every behavior transfers unchanged." Second, on what still needs human review: "Some workflow behavior may need manual recreation. Review control flow, triggers, tools, and permissions as you test the migrated agent." Third, for anyone considering the ChatGPT destination instead: "Connected apps, authentication, publishing, and permission configuration require separate review in ChatGPT," and "Workflows with strong determinism at their core may not migrate faithfully to a workspace agent."

Read that second quote again, because it is the only sentence on this page that OpenAI wrote and we did not. Permissions are named, by the vendor, as something you have to re-review by hand. That is the seam this page is about.

Is the OpenAI Agents SDK secure? What it enforces and what it leaves to you

Yes, and anyone telling you the Agents SDK is a bare wrapper with no safety story has not read the guardrails documentation. It has more enforcement surface than most frameworks in this category. The useful question is not whether the controls exist but who has to write them, how far each one reaches, and what survives when the engineer who wrote it moves on.

ControlWhat the SDK gives youThe documented limitWho writes it
Input guardrailsValidation on the incoming request, with a tripwire that raises InputGuardrailTripwireTriggered and can block before the model runs"Input guardrails run only for the first agent in the chain." The default parallel mode may start agent work before the block landsYour developer, per agent
Output guardrailsValidation on the candidate final answer, with the rejected output withheld while prior work is kept"Output guardrails run only for the agent that produces the final output." Intermediate hops are not coveredYour developer, per agent
Tool guardrails"Tool guardrails wrap FunctionTool instances and let you validate or block calls to those tools before and after execution""Handoffs run through the SDK's handoff pipeline rather than the function-tool pipeline, so tool guardrails do not apply to the handoff call itself"Your developer, per tool
Human approvalneeds_approval on function tools and shell tools, and on Agent.as_tool. The run pauses and pending items appear in result.interruptions, then you resume with approve or rejectThe pause lives in the run state of one process. Persisting it, routing it to a person, and expiring it if nobody answers is your application's jobYour developer
Tool visibilityis_enabled, where "Disabled tools are completely hidden from the LLM at runtime" based on contextThis filters what the model can see, which is not the same as an authorization decision, and it runs inside the process the agent runs inYour developer

Every row except the last column of the tracing story ends in the same four words: your developer, per agent. That is a perfectly reasonable design for a framework. It becomes a governance problem at a specific and predictable moment, which is the second agent.

With one agent, in-process controls are excellent. The person who wrote the tool wrote the guardrail, the review caught both, and reading the file tells you the policy. With nine agents across four repositories and three teams, the policy is the union of nine files nobody reads together, and there is no artifact that states it. Ask what your estate is allowed to do and the honest answer becomes a code search.

The pattern generalizes past OpenAI. We have now written the same finding about Bedrock AgentCore, Microsoft Foundry, Gemini Enterprise, Snowflake Cortex and Microsoft Agent 365. Every serious platform governs which data an agent may reach. None of them decides whether the action it just proposed should happen, because that is a business question and the platform does not know your business.

Which migration destination you pick changes who owns security

Most of the migration writing online treats this as one decision with two answers. It is closer to three, and the security consequences diverge sharply. Pick on the honest shape of the workflow rather than on which option sounds most professional.

DestinationWhere policy livesWho can change itWhat evidence you get
Agents SDK, TypeScript or PythonIn the agent's source, as guardrail functions and needs_approval flagsAnyone who can merge to that repository, through a deployRun traces. Useful for debugging, not built as an authorization record
Workspace agents in ChatGPTIn ChatGPT's connected apps, authentication and permission configuration, which OpenAI says "require separate review"Whoever administers the workspace, without a deployWhatever your ChatGPT admin surface exposes, scoped to that workspace
A different visual builder, for example n8n, LangGraph Platform, Copilot Studio or Gemini EnterpriseIn that vendor's canvas and its own policy modelWhoever holds an editor seat thereThat platform's logs, in that platform's format, for agents built in that platform

If the workflow is deterministic, branchy, and the sort of thing a person could draw as a flowchart, the SDK is the faithful destination and the ChatGPT route will frustrate you. OpenAI says as much: workflows with strong determinism at their core may not migrate faithfully to a workspace agent. If the workflow is really a prompt with tools attached, and the value was the model rather than the graph, workspace agents is less work and a genuinely good outcome, and you should not buy anything from anyone to make that decision safer.

The third row deserves its own warning. Moving from one vendor's canvas to another vendor's canvas solves the deadline and reproduces the lesson. The reason this migration hurts is that the policy lived somewhere that could be switched off by a company that was not you. Choosing a different company to hold it is a schedule fix, not an architecture fix.

There is also a fourth possibility worth naming, because a surprising number of Agent Builder workflows are not agent problems at all. If what you built was a support triage flow that reads a ticket, classifies it and routes it, the destination may not be an agent framework at all but purpose-built support operations software, where routing and escalation are the product rather than something you assembled. Rebuilding an escalation ladder in TypeScript because a canvas is closing is a poor reason to own an escalation ladder in TypeScript.

What to rebuild first, in order

The export gives you back a running agent quickly and an incomplete control set slowly. Work in this order and the gap never opens, rather than being discovered during a review in February.

1. Write down what each workflow was allowed to do, before you switch the canvas off. Open every workflow and list the tools, the connectors, the destinations they can write to, and any approval step on the graph. This takes an hour per workflow and it is the only moment the information is free. After November 30 it is archaeology. Save it as a plain table in the repository, not as a screenshot in a chat thread.

2. Re-review permissions rather than porting them. OpenAI's guidance names permissions specifically as something to review as you test. Most canvases accumulate a connector added to unblock a demo and never removed. The migration is the cheapest permission audit you will ever run, because the cost of removing something is a failing test rather than an incident.

3. Put the approval gates back before you put the agent in front of users. needs_approval is straightforward to add and easy to defer. The failure mode is shipping the migrated agent with the gate marked as a follow-up ticket, because the agent works fine without it right up until it does not. If approvals need to survive a process restart, reach a person on a phone, or expire on their own, that part is not in the SDK and you either build it or route the action through something that already has it. Approval gates for AI agents covers the shape that holds up in an audit.

4. Treat every tool result as untrusted input, not just the user's message. Input guardrails cover the first agent in the chain. The content that actually carries injection payloads in 2026 is the retrieved document, the web page, the ticket body and the tool response, and those arrive in the middle of the chain where input guardrails are not running. Prompt injection protection has to sit where untrusted content enters, which is rarely where the user does.

5. Decide what your evidence is, and confirm someone accepts it. This is the step teams skip and then repeat under time pressure. Ask whoever owns your next audit whether run traces answer their question. If the question is "who approved this action", traces do not answer it, and finding that out in October is much cheaper than finding it out the week the auditor arrives.

A migration deadline is an unusually good moment to do all five, because the code is open, the tests are being rewritten anyway, and nobody has to argue for a project. Three months after the migration, every one of these becomes a proposal competing against feature work.

Where Agentshield fits, and the rows where you should buy nothing

We sell one thing and it is narrow. Most of the work in this migration is not ours, and pretending otherwise would waste a call. Here is the honest split.

What you needBuy Agentshield?The better answer
Rebuild the workflow graph itselfNoThe Agents SDK export, plus your own testing. This is engineering work and no product removes it
Replace the Evals platformNoPromptfoo, which is the path OpenAI's own cookbook documents, or whatever evaluation harness your team already trusts
Keep a visual, non-engineer-editable canvasNoA different builder, or workspace agents in ChatGPT. We are not a workflow authoring tool and never will be
Store your prompts now that prompt objects are going awayNoYour repository. OpenAI's guidance is to move reusable prompt content into your application code, and that is correct
Guardrails inside a single agent, owned by the team that wrote itNoThe SDK's input, output and tool guardrails. Keep writing them. They run closer to the model than we do
One policy that covers several agents in several repositories without redeploying themYesThis is the case we exist for. Scopes are declared once and enforced at the call
An approval gate that survives a restart, reaches a person and expires on its ownYesThe SDK pauses the run. Persisting, routing and timing out the approval is application work you can avoid owning
A per-action record of what was permitted and on whose authorityYesTraces record what happened. An audit trail records what was allowed, which is the question auditors ask

Five of those eight rows tell you to buy nothing from us. That is not modesty, it is the actual shape of the problem, and a vendor who claims all eight is describing a roadmap rather than a product.

If you want the framework-level view rather than the migration view, OpenAI agent security covers the Agents SDK in production on its own terms. If your agents call third-party connectors, MCP server security deals with the trust decision you make every time a tool manifest enters the model context.

Traces are not an audit trail, and the difference costs money later

This is the single most expensive misunderstanding we see after a platform migration, and it is easy to hold because both artifacts are called logs and both look thorough on a screen.

A trace is written by the system that did the work, for the person debugging it. It answers what happened, in what order, with what latency. It is designed to be sampled, rotated and eventually deleted, because storing every trace forever is a cost with no debugging benefit. Nothing about it is built to be adversarial.

An audit record is written by the system that made the decision, for somebody who was not there and may not trust you. It answers a different question: what was this agent permitted to do at that moment, which rule decided, who held the authority, and can anyone prove the record has not been edited since. It has to survive the deletion of the service that produced it, because the question usually arrives after that service has been rewritten.

QuestionA trace answers itAn audit record answers it
What did the agent do at 14:12?YesYes
Was it allowed to do that?No. The trace shows the call succeeded, not that a rule permitted itYes, with the rule that decided
Who approved the irreversible action?Only if your code happened to log itYes, as a first-class field
Has this record been altered since?Not answerableYes, that is the point of immutability
What was policy for this agent in March?No. Traces record behavior, not the rules in forceYes, policy version is part of the record

Teams that migrate off a managed builder usually inherit good tracing and no audit record, because the builder was quietly providing the second one through its configuration surface. The canvas was the policy document. When it closes, the policy document closes with it, and rebuilding that as a by-product of shipping code is not something the code asks you to do.

FAQ

Common questions about openai agent builder security.

Is OpenAI Agent Builder being deprecated?

Yes. OpenAI announced on June 3, 2026 that Agent Builder is deprecated, along with the Evals platform and reusable prompt objects. All three leave the platform on November 30, 2026. Existing workflows keep running during the transition window, and OpenAI points migrating teams to the Agents SDK or to workspace agents in ChatGPT.

When does OpenAI Agent Builder shut down?

November 30, 2026. The Evals platform goes read-only earlier, on October 31, 2026, before shutting down on the same November 30 date. The Assistants API is a separate deprecation that already completed on August 26, 2026. ChatKit is not affected and remains available.

What should I migrate my Agent Builder workflow to?

OpenAI names two destinations. Use the Agents SDK when the workflow should continue as code, which is the right answer for deterministic, branching workflows. Use workspace agents in ChatGPT when the use case suits natural language prompting. OpenAI warns that workflows with strong determinism at their core may not migrate faithfully to a workspace agent.

Does the Agent Builder export convert my workflow automatically?

No. Open the workflow, select Code, select Agents SDK, choose TypeScript or Python and copy the export. OpenAI states that the process "does not convert your workflow graph or guarantee that every behavior transfers unchanged", and that some behavior may need manual recreation. Review control flow, triggers, tools and permissions as you test.

Does the OpenAI Agents SDK have guardrails?

Yes, three kinds. Input guardrails validate the incoming request and run only for the first agent in the chain. Output guardrails validate the final answer and run only for the agent producing it. Tool guardrails wrap FunctionTool instances and can block a tool call before or after execution, though they do not apply to handoff calls.

Can the OpenAI Agents SDK require human approval before a tool runs?

Yes. Function tools and shell tools accept needs_approval, and Agent.as_tool uses the same flow. When approval is required the run pauses and pending items appear in the interruptions on the result, and you resume by approving or rejecting. Persisting that pause, routing it to a person and expiring it is your application code.

Is ChatKit affected by the Agent Builder shutdown?

ChatKit is not deprecated and remains available. That creates a specific trap: a ChatKit front end sitting on top of an Agent Builder workflow keeps rendering after November 30 while the workflow behind it stops. Check what each ChatKit surface is actually calling rather than assuming an undeprecated front end means an unaffected product.

What happened to the OpenAI Evals platform?

It was deprecated in the same June 3, 2026 announcement. The hosted evaluation dashboard and API go read-only on October 31, 2026 and shut down on November 30, 2026. OpenAI publishes a cookbook migration path to Promptfoo. Plan this separately from the Agent Builder work, because losing your evaluation suite mid-migration is avoidable.

Do I need a separate AI agent security product after migrating to the Agents SDK?

Not for one agent owned by one team. The SDK guardrails are genuinely good and run closer to the model than any proxy. You need a separate control point when policy has to span several agents and repositories, when an approval must survive a process restart, or when someone needs proof of what an agent was permitted to do rather than what it did.

How much does OpenAI AgentKit cost?

OpenAI states that the Responses API and AgentKit tools are not charged separately and are included with standard API model pricing, so you pay for the model calls and the tools those calls invoke. Hosted tools carry their own usage rates. Verify current figures on OpenAI's pricing page before budgeting, since these change without a deprecation notice.

Secure your openai agent builder security.