AI

WritingEssay

An Agent SDK Is a Harness You Didn't Build

What a framework makes easy, and what it hides.

By Sachin Gupta5 min read
Portrait of Sachin Gupta rendered in binary

An Agent SDK is a packaged harness: the run loop, tool interface, memory, model abstraction, and tracing, ready to wire together. The value is what it makes easy. The risk is what it hides.

To build a car you do not forge your own engine, chassis, wheels, and wiring from scratch. You start from a platform that provides the frame and the plumbing, and you add the parts that make the car yours. An Agent SDK is that platform for building an agent: it hands you the loop, the tool wiring, the memory, and the retries, so you bring the model and your logic and skip rebuilding the frame every time.

Every agent needs the same plumbing: a loop that calls the model and runs tools, a way to register and validate those tools, somewhere to keep state, a way to swap models, and enough tracing to debug what happened. You can hand-roll all of it, and doing so once is a good way to learn where the hard parts are. Or you can reach for an Agent SDK, which is really just that plumbing, packaged.

An Agent SDK is a harness you did not have to build. It gives you the primitives so you wire them together instead of writing each one from scratch.

An Agent SDK sits between your app and the model plus tools, packaging the harness primitives: a run loop, a tool registry, a model adapter, memory, and tracing

The value is real. You are not reinventing the run loop, retry handling, tool schema validation, or tracing for the hundredth time, and the primitives have usually been hardened by more use than your first attempt will get. For most teams, starting from an SDK is the right call.

Here is the split, part by part, between what the SDK hands you and what stays yours:

Interactive · What an agent SDK gives youOpen in Visualizers →
Run loop
the SDK gives you this

Calls the model, runs the tool it asked for, feeds the result back, and decides when to stop.

The SDK is the frame and wiring. You still bring the engine (the model) and what makes the agent yours (the tools and the policy).

The risk is equally real, and it is a single idea: what the SDK makes easy is obvious, but what it hides is what hurts you later. If the framework hides the loop, you cannot control termination or budgets when a run goes sideways, which is exactly the moment you need that control. If it assumes one way to assemble context, you are stuck with it. And if it hard-wires a single model provider, you have quietly taken on lock-in to the one component you most want to keep replaceable.

That last one is worth its own picture, because the model is a dependency and a good SDK treats it like one.

A good Agent SDK puts the model behind a model adapter, so the same agent code can swap between a hosted provider, another provider, or a local model without being rewritten

So the way I judge an Agent SDK is not by its feature list but by what it lets me keep control of:

  • Is the model swappable? The model should sit behind an adapter, so I can adopt a better one without rewriting the agent.
  • Can I see and control the loop? Termination, budgets, and retries should be configurable, not buried.
  • Is policy at the tool boundary? What the agent may do should be enforceable where the action happens, not left to the prompt.
  • Can I drop to the primitives? The easy path should be easy and the hard path should still be possible. A framework that only supports the demo is a trap.

Two more things do not come from the SDK, no matter how good it is. It does not make your guardrails, your verification, or your budgets for you; those are decisions you still own. And it does not free you from understanding the harness. The parts of my own work that plug into any SDK make this concrete: openapi-mcp derives an agent's tool surface from an approved API specification, so the tools stay tied to a real contract, and ToolContractGate governs tool calls at runtime regardless of which framework issued them. An SDK can host both. It cannot decide that you need them.

An Agent SDK is scaffolding for your harness, not a substitute for thinking about it. Pick one that keeps the model replaceable and the control visible, use it to skip the boilerplate, and keep owning the decisions that make the agent trustworthy.

Related