In plain English
Every major AI lab now ships its own toolkit for building agents — software that wraps the lab's models in a loop, hands them tools, and lets them act, not just answer. Anthropic has the Claude Agent SDK, OpenAI has the OpenAI Agents SDK, and Google has the Agent Development Kit (ADK). They all solve the same core problem: turn a chat model into something that can run a multi-step task on its own.

Think of it like buying a kit car from three different manufacturers. All three give you an engine (the model), a chassis (the agent loop), and a parts catalog (tools you can bolt on). But each manufacturer made different design bets. One ships you a rugged off-road harness with a strict permission system. One ships you a lightweight frame built around the idea of agents handing work to each other. One ships you a modular kit that snaps neatly into the manufacturer's own factory (its cloud platform). You can build a working car with any of them — the question is which design suits the road you actually drive on.
This article is the side-by-side comparison. Each of these SDKs has its own Claude Agent SDK, OpenAI Agents SDK, and Google ADK explainer; here we line them up against each other so you can see where they genuinely differ — and answer the question that matters most: which one do I pick if I'm already on a given model?
Why it matters
For a builder, the choice between these three is not really a choice between three loops that do roughly the same thing. It is a choice about three things that are expensive to change later:
- Lock-in. A first-party SDK is designed around one provider's models, hosted tools, and deployment story. The deeper you lean on the provider-specific parts (Claude's permission model, OpenAI's hosted tracing, Google's Vertex deployment), the more work it is to switch models later. The agent logic is portable; the surrounding scaffolding often isn't.
- Design philosophy. Each SDK pushes you toward a different way of structuring multi-agent work. Get the mental model wrong and you fight the tool the whole way. These design defaults are sticky — they shape how your whole codebase is organized.
- The deployment and ops story. Where does the agent actually run? How do you watch what it did, gate dangerous actions, and debug a bad run? The labs differ sharply here, and this is the part teams underestimate.
The good news: the concepts are the same across all three. An agent is a model plus a system prompt plus tools plus a loop. Tools are functions the model can call. A multi-agent system is several of those wired together. If you understand one SDK, you understand the shape of the others — see agent framework mental models for that shared vocabulary. What differs is which concepts each lab made first-class (built right into the SDK) versus left for you to assemble yourself.
The wrong way to choose is by feature checklist — they all check most boxes. The right way is to match the SDK's core bet to your actual constraints: which model you trust for the task, where you need to deploy, how much you care about avoiding lock-in, and what your multi-agent structure looks like.
How they're built differently
Underneath, all three run the same fundamental agent loop: the model receives the conversation, decides whether to call a tool, the tool runs, its result is fed back, and the loop repeats until the model produces a final answer. What separates them is the primitives each one layers on top of that loop — the named building blocks you assemble your app from.
Claude Agent SDK — a harness with guardrails
Anthropic's bet is that the most valuable thing it can ship is the same harness that powers Claude Code — its own coding agent. So the Claude Agent SDK leans into a real execution environment: file system access, a bash tool, and crucially a permission system that gates what the agent is allowed to do. Before the agent runs a shell command or edits a file, your code can require approval. That makes it a natural fit for agents that act on a real machine — coding agents, computer-use agents, anything where a wrong move is costly.
OpenAI Agents SDK — agents, handoffs, guardrails
OpenAI's bet is a small, sharp set of three primitives. Agents are model-plus-instructions-plus-tools. Handoffs let one agent pass control to another (a triage agent routes a refund question to the refunds agent). Guardrails are validation checks that run alongside the agent to catch bad input or output. The whole SDK is built around composing these three, plus hosted tracing so you can see every step of a run in OpenAI's dashboard. It's deliberately lightweight and unopinionated about everything else.
Google ADK — workflow agents on Vertex
Google's bet is structure and deployment. ADK gives you workflow agents — explicit Sequential, Parallel, and Loop agents that orchestrate sub-agents in a defined shape — alongside ordinary LLM-driven agents. You describe the control flow as much as the prompting. And it's built to deploy onto Vertex AI (Google's ML platform) and its Agent Engine, so the path from local prototype to managed production service is short if you're already in Google Cloud.
- Harness from Claude Code
- File system + bash tools
- Permission / approval gating
- Best for agents that act on a machine
- Agents + handoffs + guardrails
- Lightweight, few primitives
- Hosted tracing dashboard
- Best for multi-agent routing
- Workflow agents (Sequential/Parallel/Loop)
- Explicit control flow
- Vertex AI deployment
- Best for Google Cloud teams
Side by side
Here is the same set of questions answered for all three. Treat this as a map of where they differ, not a scorecard — none of these is a knockout difference on its own.
| Dimension | Claude Agent SDK | OpenAI Agents SDK | Google ADK |
|---|---|---|---|
| Maker | Anthropic | OpenAI | |
| Core primitive | Harness + tools + permissions | Agents, handoffs, guardrails | LLM agents + workflow agents |
| Multi-agent model | Subagents you orchestrate | Handoffs between agents | Sub-agents in a workflow tree |
| Standout feature | Permission gating; Claude Code parity | Built-in hosted tracing | Sequential/Parallel/Loop control flow |
| Natural deployment | Your own infra | Your own infra + OpenAI tracing | Vertex AI Agent Engine |
| Languages | Python, TypeScript | Python (TS available) | Python (Java available) |
| Best fit | Coding / computer-use agents | Routing and tool-using assistants | Google Cloud, structured pipelines |
A few honest caveats about this table. First, the feature lists move fast — all three labs ship updates constantly, so treat "standout feature" as where each invests, not an exclusive capability. Second, "natural deployment" is about the path of least resistance, not a hard limit: you can run any of these anywhere you can run Python. Third, multi-agent terminology overlaps confusingly — OpenAI's "handoff," Claude's "subagent," and Google's "sub-agent" all describe one agent delegating to another, just wired differently.
The lock-in question
This is the elephant in the room. Building on a model-maker's own SDK means betting on that maker. How big is the bet, really?
Smaller than people fear, but not zero. The portable part is your agent's logic: the prompts, the tools you wrote, the high-level structure of which agent does what. That thinking transfers to any framework. The sticky part is everything provider-specific you lean on — and each SDK has a different center of gravity for that stickiness:
- Claude Agent SDK ties you to Claude's models and to Anthropic-specific tools (the permission system, the Claude Code-style harness, Claude's computer use). The deeper you use the harness, the more rewriting a switch means.
- OpenAI Agents SDK ties you most to hosted tracing and OpenAI's server-side tools. The handoffs/guardrails pattern itself is generic, but the observability you get for free lives on OpenAI's platform.
- Google ADK ties you most to Vertex AI for deployment. The agent code is reasonably portable; the managed Agent Engine, scaling, and ops integration are the Google-shaped part you'd leave behind.
There is a real upside to the bet, though. A first-party SDK is tuned for its own models — it surfaces that provider's newest capabilities first (new tools, thinking modes, hosted features) and is tested against that exact model. A neutral framework, by design, targets the lowest common denominator and may lag on provider-specific features.
The pragmatic middle path: keep your tool functions and business logic in plain, framework-agnostic code, and let the SDK be a thin layer around them. Then the SDK is doing the loop, the model integration, and the ops glue — the parts that are genuinely cheaper to rent than to build — while the valuable, hard-won logic stays yours. If avoiding lock-in entirely is the top priority, that's the case for a neutral framework instead (see the next section).
Which one to pick
The cleanest decision rule: start from the model you trust for the task, and use that lab's SDK unless a specific need pulls you elsewhere. First-party SDKs are tuned for their own models, so this default is usually right. Use this table as the starting point.
| If you're already on… | Lean toward… | Because |
|---|---|---|
| Claude (Anthropic) | Claude Agent SDK | Same harness as Claude Code; strong permission gating for agents that touch a real machine |
| GPT (OpenAI) | OpenAI Agents SDK | Cleanest multi-agent routing via handoffs; free hosted tracing |
| Gemini / Google Cloud | Google ADK | Native Vertex AI deployment; structured workflow agents |
| No strong model preference | A neutral framework | Keeps the model swappable — see below |
Then override that default when one of these is true:
- You need approval gates on real actions (shell, file edits, payments) → the Claude Agent SDK's permission system is the most developed here, whatever model you prefer.
- You need deep observability out of the box → OpenAI's hosted tracing is the least-effort path to seeing every step of a run.
- You're standardizing on Google Cloud for ops → ADK's Vertex integration removes the most deployment friction.
- Avoiding lock-in is the top priority, or you want to mix models → don't use a first-party SDK at all. Reach for a neutral agent framework like LangGraph or LangChain, which lets you point the same agent at Claude, GPT, or Gemini. See how to choose an agent framework for that broader decision.
Going deeper
A few nuances that only surface once you're past the first prototype.
First-party SDKs vs neutral frameworks aren't mutually exclusive. A common production shape is a neutral orchestrator (LangGraph for the graph of who-calls-whom) that invokes provider-tuned agents underneath. You get framework-level model portability at the top and provider-tuned capability at the leaves. The line between "first-party SDK" and "framework" is blurrier than the marketing suggests — see the broader agent framework comparison and the case for building an agent without a framework at all.
Multi-agent models diverge most under pressure. All three let one agent delegate to another, but the control differs. OpenAI handoffs transfer the conversation wholesale to a new agent — clean for routing, but the first agent is out of the loop. Claude subagents and Google sub-agents keep an orchestrator in charge that collects results — more control, more wiring. If your design is "a router that dispatches to specialists," handoffs are elegant. If it's "a manager that fans work out and synthesizes," the orchestrator-and-subagents shape fits better. Match the SDK's native pattern to your actual topology.
Server-side vs client-side tools matter for security and cost. Some provider tools run on the lab's infrastructure (hosted web search, code execution in a managed sandbox) and some run on yours. Hosted tools are less to operate but route data through the provider and bill per use; self-hosted tools keep data and execution on your side. Each SDK draws this line slightly differently, and it's worth checking before you commit — especially for regulated data.
The Model Context Protocol (MCP) is the emerging neutralizer. MCP is an open standard for how agents connect to tools and data sources. All three ecosystems are adopting it, which means a tool you expose over MCP can, in principle, be used by an agent on any of these SDKs. As MCP matures, the tool layer becomes far more portable than it is today — shrinking one of the bigger sources of lock-in. If you're building tools you expect to reuse across providers, exposing them via MCP is a smart hedge.
Don't confuse these SDKs with their hosted-agent cousins. Several labs also offer managed agent services, where the provider runs the agent loop and hosts the execution sandbox for you (Anthropic's managed agents are one example). Those are a different tier — more hands-off, more provider-operated — than the in-process SDKs compared here, where your code runs the loop. If "I don't want to run the loop at all" is your goal, look at the managed offering rather than the SDK.
The honest bottom line: in 2026 these three SDKs are more alike than different, and all three are good. The differences that endure are the surrounding systems — permissions, tracing, deployment — and the lock-in each implies. Choose by matching those to your constraints, keep your logic portable, and don't treat the decision as irreversible. It rarely is.
FAQ
What's the difference between the Claude Agent SDK and the OpenAI Agents SDK?
Both wrap a model in an agent loop with tools, but they bet on different strengths. The Claude Agent SDK ships the same harness that powers Claude Code, with file-system access and a permission system that gates dangerous actions — strong for agents that act on a real machine. The OpenAI Agents SDK is built around three primitives (agents, handoffs, guardrails) plus free hosted tracing, making it lean for multi-agent routing. Pick by whether you value action-gating (Claude) or built-in observability and clean handoffs (OpenAI).
Is Google ADK better than the OpenAI Agents SDK?
Neither is universally better — they suit different teams. Google ADK shines if you're on Google Cloud: it offers explicit workflow agents (Sequential, Parallel, Loop) and a short path to deploying on Vertex AI's Agent Engine. The OpenAI Agents SDK is lighter and unopinionated, with hosted tracing for visibility. Choose ADK for structured pipelines and Google-native deployment; choose the OpenAI SDK for simple, traceable tool-using assistants.
Which agent SDK should I use if I'm already using Claude?
Start with the Claude Agent SDK. First-party SDKs are tuned for their own models and surface that provider's newest capabilities first, so the path of least resistance is to use Anthropic's SDK with Claude. Override that only if a specific need pulls you elsewhere — for example, if avoiding lock-in or mixing models matters more, a neutral framework like LangGraph that can point at Claude, GPT, or Gemini may fit better.
Do first-party agent SDKs lock you into one model provider?
Partly. Your agent's logic — prompts, tool functions, and overall structure — is largely portable to any framework. What's sticky is the provider-specific scaffolding you lean on: Claude's permission model, OpenAI's hosted tracing, or Google's Vertex deployment. Keep your tool code and business logic framework-agnostic and let the SDK be a thin layer, and a later switch becomes re-gluing the edges rather than a full rewrite. If avoiding lock-in entirely is the priority, use a neutral framework instead.
What is a first-party agent SDK?
A first-party agent SDK is built and maintained by the same company that makes the model — the Claude Agent SDK from Anthropic, the OpenAI Agents SDK from OpenAI, the Agent Development Kit (ADK) from Google. Because they're tuned for their own models, they tend to expose that provider's newest features first and are tested against that exact model, but they tie you more tightly to one provider than a neutral, third-party framework does.