
Compare the right layers first
The old wording around “AgentKit vs Claude 3” puts products from different layers in one basket. That leads to bad decisions: a team might select a model when it actually needs a runtime, or choose a UI when it actually needs a support workflow.
| Layer | What it is | What you decide |
|---|---|---|
| Claude 3 | A Claude model family | Which model best handles your inputs, cost, latency, and quality target |
| Agent Builder | OpenAI’s visual canvas for multi-step workflows | How to transition an existing workflow before the November 2026 shutdown |
| ChatKit | An embeddable chat interface | Whether a custom chat UI is part of your product |
| OpenAI Agents SDK | A TypeScript or Python agent runtime | How your application handles tools, handoffs, guardrails, sessions, and traces |
| Claude Agent SDK | A Python or TypeScript library built on Claude Code’s agent loop | How your application uses tools, context, and execution controls |
OpenAI describes Agent Builder as a way to assemble, debug, and export multi-step workflows. It can deploy through ChatKit or export SDK code. The migration path changes the ownership boundary: after export, your team operates the code and the surrounding application.
ChatKit is not disappearing with Agent Builder. Its current documentation says an existing hosted workflow can stay during the transition, while new work should connect ChatKit to a server-side agent implementation you run. ChatKit’s overview also makes the security boundary clear: your server authenticates each end user.
OpenAI Agents SDK vs Claude Agent SDK
Both SDKs are code-first routes. Neither is simply a model selector, and neither removes the need for a production application around the model.
The OpenAI Agents SDK provides an agent loop, function tools, MCP tool calling, sessions, guardrails, handoffs, tracing, and optional sandbox workspaces. Its core abstraction is an agent configured with instructions and tools. Read the SDK overview for the current primitives and supported paths.
Anthropic describes the Claude Agent SDK as the same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript. It runs the loop in your process; it is different from Anthropic’s hosted Managed Agents product. Anthropic’s overview is the right starting point when you need the distinction.
The practical difference is not “visual versus code” anymore. Agent Builder is the visual product that is winding down. A new OpenAI Agents SDK application and a Claude Agent SDK application both require engineering judgment about what may act, who may use it, how failures appear, and how to inspect a bad outcome.
| Design question | OpenAI Agents SDK route | Claude Agent SDK route |
|---|---|---|
| How does the loop get work done? | Agent runs invoke attached tools and can delegate with handoffs or agents-as-tools | Claude Code's agent loop uses built-in tools, MCP, and specialized subagents |
| What is available for file or command work? | Optional container-based sandbox agents, alongside platform and function tools | Built-in file reading, editing, and command tools from Claude Code |
| How do you control risky work? | Configure guardrails and resumable approval flows around the application | Configure tool permissions and lifecycle hooks around the application |
| What can persist between exchanges? | SDK sessions and resumable run state | Sessions that can resume or fork |
| Where does the customer UI come from? | Build one or connect ChatKit to your server | Build or integrate a UI around the SDK |
That does not make the two SDKs identical. Their APIs, providers, execution defaults, and model ecosystems differ. It does mean the buying decision should start with the job and the operating responsibility, not with a stale claim that one option is a fully managed shortcut and the other is only a framework.
The work a framework does not do for you
An SDK can make tool calling and orchestration easier. It does not decide whether a refund should be approved, which support source is current, or when a risky action must wait for a person.
For a support agent, make the operating contract explicit before writing code:
- Which knowledge sources can it cite, and who updates them?
- Which Zendesk actions may it take without review?
- Which requests must become a human handoff?
- How does it behave when a policy is missing, conflicting, or out of date?
- Which normal and exception tickets prove the rollout is safe?
- Where can an owner inspect the decision, the tool call, and the handoff?
This is why a support manager should not be asked to adopt a separate agent console just to supervise a new teammate. The work belongs in the queue they already run, with clear boundaries and a human route for the cases the teammate should not decide.
A concrete support workflow with the eesel CLI
If your goal is an approved support teammate rather than a bespoke customer-facing agent product, eesel is the operating layer: the teammate works in the helpdesk, while the owner can inspect it in the dashboard. The eesel CLI is another way into the same workspace and same teammate, not a separate bot.
That matters because a person can run the checks from a terminal, a script can put them in a repeatable review, and a coding agent such as Claude Code, Codex, or Cursor can read the JSON output and do the same bounded setup. Node.js 18.17 or newer is required. Observing setup is free, but chat is real, billed workspace work, not a sandbox.
Start with a named teammate and inspect its scope. Do this before sending a test prompt or proposing a write:
npx @eesel/cli status --agent "Zendesk support teammate"
npx @eesel/cli integrations --agent "Zendesk support teammate"
npx @eesel/cli instructions --agent "Zendesk support teammate"
npx @eesel/cli approvals --agent "Zendesk support teammate"
npx @eesel/cli new --name "returns-policy-review" --agent "Zendesk support teammate"
The owner checks that the intended Zendesk and policy sources are connected, and reads the standing instructions and held-action queue. Confirm actual action permissions in the dashboard and connected service too: the CLI's integration list is not a complete scope audit. Replace the example teammate name with the intended one. The exact fictional case below deliberately asks for analysis, not a customer reply or a refund:
Fictional ticket R-1042
Customer: Mina Park
Order: waterproof travel bag, delivered April 5
Request: return on May 20; customer says the bag was used once
Current policy: returns are accepted only for unused items requested within 30 calendar days of delivery.
Do not contact the customer or take an action. Cite the policy facts, list the missing facts, say whether this needs a human handoff, and propose one precise instruction change if the current rule is ambiguous.
Send it only after that scope check:
npx @eesel/cli chat "Fictional ticket R-1042: Mina Park requests a return on May 20 for a waterproof travel bag delivered April 5 and used once. Current policy permits returns only for unused items requested within 30 calendar days of delivery. Do not contact the customer, modify configuration, approve actions, or take an action. Cite the policy facts, list missing facts, state the human-handoff decision, and propose one precise instruction change if the rule is ambiguous." --agent "Zendesk support teammate"
The desired proposal is narrow enough to review: “For a return requested more than 30 calendar days after delivery or for a used item, do not authorize a refund or issue a label. State the relevant policy, collect a missing order number if needed, and hand off to the Returns Lead for an exception decision.” It is not a license for the agent to invent exceptions.
The owner approves the change, not the coding agent. Review the exact wording in the dashboard or via the CLI’s instruction reference. Run eesel instructions --help before editing, and use --dry-run only on write commands whose help lists that flag. The CLI documents --dry-run as printing the server call without sending it; it is not a claim that every command supports it. Held customer actions are reviewed with eesel approvals; configuration edits should not be treated as automatically held.
After the approved change, retest in a fresh conversation. Run one normal case (an unused item requested 12 days after delivery), then this late-and-used exception case, then a missing-order-number case. Inspect eesel activity and the returned JSON. Finally, validate actual Zendesk delivery and human handoff separately with a safe test ticket. A polished answer in terminal chat is not proof that a real helpdesk action will route correctly.
Which route fits?
Choose a custom SDK route when the agent itself is part of the product you sell: you need a bespoke interface, custom tools, a particular execution environment, and an engineering team ready to own the service after launch. Pick the SDK and model only after you have written down the permissions, evaluation cases, incident path, and support burden.
Choose an existing support teammate when the job is to answer and act in Zendesk using approved company knowledge, with clear escalation and owner review. eesel’s Zendesk integration gives that teammate a place in the queue your team already uses; it does not require turning every policy refinement into an application project. See the Zendesk integration or try eesel to assess that route.
The best choice is the smallest system that safely owns the real job. For an existing Agent Builder workflow, that begins with a migration plan before November 30, 2026. For a new build, it begins with honest ownership. For support automation, it begins with the policy, permissions, and handoff that a teammate needs on day one.
Frequently Asked Questions
Is AgentKit the same as Claude 3?
No. Claude 3 is a model family. Agent Builder was OpenAI’s visual workflow product, while the OpenAI Agents SDK and Claude Agent SDK are development libraries. Compare models separately from the runtime and product architecture.
Is OpenAI Agent Builder retired?
Not yet. OpenAI says Agent Builder is deprecated, existing users can use it during the transition, and it is scheduled to shut down on November 30, 2026. Teams should plan the migration now rather than describe it as already gone.
Does ChatKit shut down with Agent Builder?
No. ChatKit remains available. For new work and migration planning, OpenAI directs teams to use a custom server integration with their own server-side agent implementation.
What does the Claude Agent SDK provide?
The Claude Agent SDK gives Python and TypeScript applications the agent loop, tools, and context management behind Claude Code. Your team still owns the application, tool permissions, deployment, and operational controls around it.
Can a coding agent use the eesel CLI?
Yes. The CLI prints JSON and can be driven by a person, a script, or coding agents such as Claude Code, Codex, and Cursor. It operates the same eesel workspace and teammate as the dashboard.









