feat(core): regenerate model registry and docs from models.dev
PR Checklist
Please check if your PR fulfills the following requirements:
- The commit message follows our guidelines: https://voltagent.dev/docs/community/contributing/#commit-convention
Bugs / Features
- Related issue(s) linked
- Tests for the changes have been added
- Docs have been added / updated
- Changesets have been added https://voltagent.dev/docs/community/contributing/#creating-a-changeset
What is the current behavior?
The bundled registry and the provider pages under website/models-docs/ were last generated from models.dev in #955 and only hand-edited since. Providers added to models.dev after that, such as empiriolabs, have no registry entry, no model ID autocomplete and no docs page.
What is the new behavior?
Both generators re-run against current models.dev data, in the order the docs script expects (core generator, then generate-model-docs.js, then biome check --write on the three generated files).
| before | after | |
|---|---|---|
| providers in the registry | 80 | 230 |
models (as counted in overview.md) | 2193 | 7990 |
| provider docs pages | 80 | 236 |
empiriolabs now has a registry entry, 58 model IDs and a docs page.
Six providers are no longer on models.dev at all: firmware, github-models, iflowcn, kimi-for-coding, llama, v0. Runtime refresh only adds providers (registerProviderConfig skips IDs that are already registered), so dropping them from the generated file would make github-models/... and friends stop resolving for anyone using them today. They are kept in EXTRA_PROVIDER_REGISTRY with their current config, and model-provider-registry-legacy.spec.ts checks they are still listed and that github-models/openai/gpt-4o resolves against https://models.github.ai/inference. Their docs pages are left as they are, since the docs script never deletes pages.
Six existing providers moved on models.dev to packages that @voltagent/core neither depends on nor has an adapter for: openrouter (@openrouter/ai-sdk-provider), venice, gitlab, sap-ai-core, cloudflare-ai-gateway and google-vertex-anthropic. A seventh, cloudflare-workers-ai, moved to @ai-sdk/openai-compatible, which core does support, but its URL now carries a literal ${CLOUDFLARE_ACCOUNT_ID} that core does not expand. Taking those entries as generated would make openrouter/... and the other five fail to load, so all seven keep their current config in EXTRA_PROVIDER_REGISTRY and their docs pages show that config. The legacy spec now also resolves openrouter/... and venice/... through the OpenAI-compatible adapter. Both cases fail without the pinned entries (Cannot find package '@openrouter/ai-sdk-provider').
The docs script picks the first model alphabetically for the quick start, which landed on an embedding model for nearai, a speech model for evroc and a Claude model for google-vertex. Those three now have entries in preferredModelByProvider.
website/models-docs/providers/minimax.md and minimax-cn.md are left unchanged. The docs script reads only the generated file, so it would have rewritten them to the models.dev config (@ai-sdk/anthropic at /anthropic/v1), which contradicts the hand override in EXTRA_PROVIDER_REGISTRY that #1374 added.
fixes #1476
Notes for reviewers
The generators filter status: deprecated models, so 1430 model IDs leave the type union. They lose autocomplete and their docs listing, but ModelRouterModelId still accepts any string, so nothing fails to compile or resolve. Two cases worth knowing about.
- All four
perplexitymodels are marked deprecated on models.dev, so that provider page now says no models are listed. The provider itself is still registered. - Some hand-written references now point at IDs that are no longer in the union, for example the
create-voltagent-appdefaultsgoogle/gemini-2.0-flashandgroq/llama-3.3-70b-versatile, andopenai/gpt-3.5-turbo/openai/gpt-4inwebsite/docs/agents/. Changing template defaults felt like your call, so I left them alone. Happy to follow up.
This also picks up nearai and edenai from models.dev, which overlaps with #1291 and #1386.
The issue also suggests running both scripts on a schedule. That is not part of this PR.
Checks run locally, all green: pnpm lint:ci (5 pre-existing warnings, none in touched files), pnpm sp lint, lerna run build --scope @voltagent/core --include-dependencies, lerna run test --scope @voltagent/core (111 files, 1404 passed, 2 skipped), tsc --noEmit, publint, and the e2e suite (2 passed). The new spec fails with the six entries removed and passes with them in.
Summary by CodeRabbit
-
New Features
- Expanded model-provider support to more than 230 providers and 7,990 models, with updated availability across the catalog.
- Retained support for select providers not listed in the current catalog, including providers whose adapters are available through existing configurations.
-
Documentation
- Added setup guides, quick-start examples, configuration details, and model catalogs for many providers.
- Refreshed existing provider guides with updated examples, links, settings, and model lists.