Where
skills/workflow/SKILL.md (version 1.10) on main:
- Line 154, the DurableAgent example:
model: "anthropic/claude-sonnet-4-5"
- Line 94, the Prefer Step Functions example:
model: openai("gpt-4")
The problem
Neither ID is served by the AI Gateway.
anthropic/claude-sonnet-4-5 is malformed rather than merely dated. The Gateway spells the minor version with a dot, so the model that exists is anthropic/claude-sonnet-4.5. The hyphenated form has no entry at all, so copying the DurableAgent example verbatim produces a call that fails on an unknown model rather than one that runs on something old.
openai/gpt-4 has been retired. The gpt-4 family on the Gateway is now gpt-4-turbo, gpt-4.1, gpt-4o and their variants.
Verified against the live list (348 models):
$ curl -s https://ai-gateway.vercel.sh/v1/models | jq -r '.data[].id'
anthropic/claude-sonnet-4-5 served: false
anthropic/claude-sonnet-4.5 served: true
anthropic/claude-sonnet-5 served: true
openai/gpt-4 served: false
openai/gpt-5 served: true
Why it is worth fixing
This ships as an agent skill, so the examples are copied into generated code close to verbatim, and a malformed model ID fails at the first call rather than degrading quietly. It is also the kind of value a reader is least likely to question, since it looks like a plausible current model.
Worth noting that the sibling use-ai-sdk skill in vercel/ai handles this well: it tells the reader never to use model IDs from memory and gives the curl to fetch the live list. This skill has no equivalent guard, so its hard-coded IDs carry more weight than they should.
Suggested fix
Either pin the examples to IDs that currently resolve (anthropic/claude-sonnet-4.5 or anthropic/claude-sonnet-5, and one of the current gpt-4.x/gpt-5 entries), or make them obviously placeholders and add the one-line pointer to https://ai-gateway.vercel.sh/v1/models that the AI SDK skill already carries. The second ages better, since any pinned ID drifts again on the next release.
Happy to open a PR if that is easier.
Where
skills/workflow/SKILL.md(version1.10) onmain:model: "anthropic/claude-sonnet-4-5"model: openai("gpt-4")The problem
Neither ID is served by the AI Gateway.
anthropic/claude-sonnet-4-5is malformed rather than merely dated. The Gateway spells the minor version with a dot, so the model that exists isanthropic/claude-sonnet-4.5. The hyphenated form has no entry at all, so copying the DurableAgent example verbatim produces a call that fails on an unknown model rather than one that runs on something old.openai/gpt-4has been retired. Thegpt-4family on the Gateway is nowgpt-4-turbo,gpt-4.1,gpt-4oand their variants.Verified against the live list (348 models):
Why it is worth fixing
This ships as an agent skill, so the examples are copied into generated code close to verbatim, and a malformed model ID fails at the first call rather than degrading quietly. It is also the kind of value a reader is least likely to question, since it looks like a plausible current model.
Worth noting that the sibling
use-ai-sdkskill invercel/aihandles this well: it tells the reader never to use model IDs from memory and gives thecurlto fetch the live list. This skill has no equivalent guard, so its hard-coded IDs carry more weight than they should.Suggested fix
Either pin the examples to IDs that currently resolve (
anthropic/claude-sonnet-4.5oranthropic/claude-sonnet-5, and one of the currentgpt-4.x/gpt-5entries), or make them obviously placeholders and add the one-line pointer tohttps://ai-gateway.vercel.sh/v1/modelsthat the AI SDK skill already carries. The second ages better, since any pinned ID drifts again on the next release.Happy to open a PR if that is easier.