An SDK is the same doorway with the plumbing done for your language — and the one place a model's memory can quietly mislead you.
I wanted a specific feature — multi-block prompt caching — from the Anthropic SDK. One of my review models (Gemini) flatly told me the SDK didn't support it. I almost built an awkward workaround around a limitation that wasn't real.
"A confident model told me a tool couldn't do something. I almost took it at face value and built around a wall that wasn't there."
"An SDK is software that ships and updates. A model's training can lag behind the version you actually have installed. The rule we locked in: verify any 'the SDK can't do X' claim against the installed SDK source first — don't trust memory about a moving target."
An SDK (Software Development Kit) is a library that wraps an API in friendly functions for your language. Instead of hand-building a raw HTTP request, you call client.messages.create(...) and the SDK handles auth, retries, and the message format for you. It saves you boilerplate and bakes in the provider's best practices. The catch: an SDK is versioned software that keeps changing — and a model's memory of it can be out of date.
no raw HTTPAuth, retries, the request shape — handled. You call a function, not a hand-built web request.
baked inThe provider encodes the right way to call it — streaming, error handling — so you inherit it for free.
versioned, updatesNew versions add features. A model trained months ago may not know what your installed version can do.
The model: the API is the appliance's wiring in the wall; the SDK is the wall socket and a labelled plug for your exact device. You don't splice wires — you plug in. But the catalogue you memorized last year might list an old socket. When a model says "this plug doesn't exist," go look at the wall you actually have, not the old catalogue. Verify against the installed version, not the model's memory.
It sounds authoritative. You're about to build a workaround. What's the right first move?
Same rule as always: answer it right, or the module isn't done.
An SDK is the API with the wiring done — and it's versioned software that moves. When a model says a tool can't do something, check the installed version, not the model's memory.
A real SDK initialization snippet — install, create the client with a key from an env var, make one call — alongside the workaround you'd have hand-built with raw HTTP, so you can see exactly what the SDK does for you. Plus the one-line rule: verify "the SDK can't do X" against the installed version before you build around it.