AI-Readiness Scorecard
ai · v7.0.30 · @ai-sdk/openai

The Vercel AI SDK is 90% ready for AI coding agents.

Claude Opus 4.8 has largely caught up to the modern AI SDK — 9 of 10 tasks compile clean, including the renamed maxOutputTokens. The one thing it still gets wrong is tool wiring: it reaches for the old parameters key and the removed maxSteps option from the v4 era.

90/100
Agent-readiness
9 compile clean 1 fails type-check
Model: claude-opus-4-8 Tasks: 10 Method: tsc against real installed package Run: 2026-07-17
Prisma 7
80
3 setup APIs still on v6 →
Vercel AI SDK 7
90
1 gap — the tool API
The gap

The one thing the agent gets wrong

Real code the model generated, verified by the TypeScript compiler against the installed ai v7. It fails on two v4-era patterns at once.

Defining & calling a toolTS2353 · TS7031
Agent wrote (AI SDK v4)
const getWeather = tool({
  parameters: z.object({ city: z.string() }),
  execute: async ({ city }) => `...`,
})

await generateText({
  model, prompt,
  tools: { getWeather },
  maxSteps: 5,
})
AI SDK v7
import { stepCountIs } from "ai"

const getWeather = tool({
  inputSchema: z.object({ city: z.string() }),
  execute: async ({ city }) => `...`,
})

await generateText({
  model, prompt,
  tools: { getWeather },
  stopWhen: stepCountIs(5),
})
error TS2353: 'maxSteps' does not exist in type '...CallSettings...'.
error TS7031: Binding element 'city' implicitly has an 'any' type.
Two renames the model missed: parametersinputSchema (which is why city loses its type and errors), and maxStepsstopWhen: stepCountIs(n). Both changed when the AI SDK reworked tools; the model still defaults to the old shape.
Mostly caught up

What it gets right — 9 of 10

Modern AI SDK usage is solid.

Text generation, streaming, structured output, embeddings, and messages all compile clean — including the renamed maxOutputTokens (the classic v4 → v5 gotcha the model has now learned). The residual gap is narrow and specific to the tool API.

generateText streamText generateObject (zod) embed system prompt messages array temperature maxOutputTokens
Read the two scores together

Readiness tracks the drift window

The score isn't about how good the model is — it's about how recently your SDK changed. The AI SDK's big renames landed in mid-2025, so today's models have mostly absorbed them: 90/100, one residual tool gap. Prisma 7 shipped its breaking changes far more recently, and the same model hasn't caught up: 80/100.

That's the whole point. Right after a major, the gap is wide; as models retrain, it narrows. It re-opens on your next major and shifts on every model release — a moving number worth watching, which is exactly what SDKProof tracks.

No opinions — just the compiler

How this was measured

10 realistic AI SDK tasks → generated by claude-opus-4-8 → each solution written into a project with the real installed ai v7.0.30 (+ @ai-sdk/openai, zod) and type-checked with tsc --noEmit.
A task passes only if it compiles clean. The prompts name the functions but never the option names — so this measures what the model reaches for, not what it's told. Failures are the compiler's own diagnostics. Reproducible: pinned package versions, pinned model.

Is your SDK ready for AI agents?

Right after a major release, agents keep shipping your old API. SDKProof scores it, tracks it across model releases, and tells you exactly what to fix.

See it on GitHub →
early project · scorecards are independent analysis