From 6006df2a9331cad651a6700bf433f6a2ff02a35b Mon Sep 17 00:00:00 2001 From: Charlie Gleason Date: Wed, 21 Oct 2026 17:49:48 -0700 Subject: [PATCH 1/6] [AI Gateway] Document model aliases for launch --- .../docs/ai-gateway/features/index.mdx | 6 + .../ai-gateway/features/model-aliases.mdx | 154 ++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 src/content/docs/ai-gateway/features/model-aliases.mdx diff --git a/src/content/docs/ai-gateway/features/index.mdx b/src/content/docs/ai-gateway/features/index.mdx index a60e4fa342a..aca255341a8 100644 --- a/src/content/docs/ai-gateway/features/index.mdx +++ b/src/content/docs/ai-gateway/features/index.mdx @@ -69,6 +69,12 @@ Automatically route each request to the most cost-effective model that can handl + + +Give a group of models a stable name, set routing preferences, and change model choices without updating your application. + + + Create sophisticated request routing flows without code changes. Route requests based on user segments, geography, content analysis, or A/B testing requirements through a visual interface. diff --git a/src/content/docs/ai-gateway/features/model-aliases.mdx b/src/content/docs/ai-gateway/features/model-aliases.mdx new file mode 100644 index 00000000000..33a2735bf12 --- /dev/null +++ b/src/content/docs/ai-gateway/features/model-aliases.mdx @@ -0,0 +1,154 @@ +--- +title: Model aliases +description: Give a group of models a stable name, configure routing preferences, and update model choices without changing application code. +pcx_content_type: how-to +sidebar: + order: 6 +products: + - ai-gateway +--- + +import { DashButton, Steps } from "~/components"; + +A model alias gives one or more models a name such as `custom/support-fast`. Your application calls that name instead of a specific model. You can change the models and routing preferences on your gateway without updating your application. + +Aliases belong to individual gateways. A `custom/support-fast` alias on one gateway does not configure the same name on another gateway. + +Use an alias for a list of models with shared routing preferences. For conditional branches, percentage splits, or limits within a routing flow, use [dynamic routing](/ai-gateway/features/dynamic-routing/). + +## Before you start + +- [Create a gateway](/ai-gateway/get-started/) and turn on [authentication](/ai-gateway/configuration/authentication/). +- Configure [Unified Billing](/ai-gateway/features/unified-billing/) or [store provider keys](/ai-gateway/configuration/bring-your-own-keys/) for the models you want to use. +- To call the REST API, create a [Cloudflare API token](/fundamentals/api/get-started/create-token/) with **Account** > **Workers AI** > **Read** permission. This differs from the AI Gateway permissions used to manage aliases. + +Not every catalog model is available as an alias target. Targets must be available to alias routing and support the protocol format you use. + +## Create an alias + + + +1. In the Cloudflare dashboard, go to **AI** > **AI Gateway**. + + + +2. Select your gateway, then go to **Routing**. +3. Select **Create alias**. +4. In **Alias name**, enter a name such as `support-fast`. The dashboard adds the `custom/` prefix. +5. In **Models**, select a model. To add fallbacks, select **Add model** and choose additional models. Drag the models to set their preferred order. +6. (Optional) In **Routing**, turn on **Custom routing** and configure the [routing preferences](#routing-preferences). +7. Select **Create alias**. + + + +The alias appears in the Routing list with its `custom/` prefix. Select its name to edit the models or routing preferences, then select **Save alias**. Renaming an alias changes the name your application must request. + +Configuration changes can take time to reach requests served from different locations. A request may use a cached alias configuration while it refreshes. + +## Routing preferences + +Turn on **Custom routing** to set defaults for this alias. + +| Setting | Value | Behavior | +| ---------------- | ------------------------------- | ------------------------------------------------------------------------ | +| **Algorithm** | _Preferred order_ (`preferred`) | Prefer eligible models in their configured order. | +| **Algorithm** | _Smart routing_ (`smart`) | Rank eligible models for each request using the optimization preference. | +| **Optimize for** | _Cost_ (`cost`) | Favor cost efficiency when using smart routing. | +| **Optimize for** | _Best quality_ (`best`) | Favor the router's quality ranking when using smart routing. | + +The optimization preference applies to smart routing. Smart routing requires access to that feature. If smart routing is unavailable or cannot produce a ranking, the gateway retains the configured candidate order. + +Routing options follow this precedence, separately for the algorithm and optimization preference: + +1. Options supplied with the request. +2. Options saved on the alias. +3. Gateway defaults. + +When **Custom routing** is off, the alias inherits gateway defaults. To explicitly prefer the configured model order, turn on **Custom routing** and select _Preferred order_. + +Only models and providers that support the request format and pass gateway checks are eligible. A failed attempt can fall back to another eligible model or provider. This does not bypass authentication, billing, or gateway policies. + +## Call an alias + +Use the [REST API](/ai-gateway/usage/rest-api/) with `custom/` as the model. Include the `cf-aig-gateway-id` header to select the gateway where you created the alias. + +Set `CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN` to your account ID and API token. Replace `my-gateway` with your gateway ID and `custom/support-fast` with your alias. + +```bash +curl "https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run" \ + --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ + --header "Content-Type: application/json" \ + --header "cf-aig-gateway-id: my-gateway" \ + --data '{ + "model": "custom/support-fast", + "input": { + "messages": [ + { "role": "user", "content": "Reply with a short greeting." } + ] + } + }' +``` + +The request uses the alias configuration on `my-gateway`. Use an input format supported by the models you select. An alias does not make model-specific input formats interchangeable. + +To override the alias's routing preferences for one request, add `options.routing` alongside `model` and `input`: + +```json +{ + "model": "custom/support-fast", + "input": { + "messages": [{ "role": "user", "content": "Reply with a short greeting." }] + }, + "options": { + "routing": { + "algorithm": "preferred" + } + } +} +``` + +## Configure an alias through the API + +Alias configuration uses `/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/model_aliases` under the Cloudflare API's `/client/v4` prefix. These operations require AI Gateway permissions, rather than the Workers AI permission used for inference. + +| Method | Path suffix | Operation | +| -------- | --------------------------- | ----------------- | +| `GET` | `/model_aliases` | List aliases. | +| `POST` | `/model_aliases` | Create an alias. | +| `GET` | `/model_aliases/{alias_id}` | Get an alias. | +| `PUT` | `/model_aliases/{alias_id}` | Replace an alias. | +| `DELETE` | `/model_aliases/{alias_id}` | Delete an alias. | + +For `POST` and `PUT`, provide an alias name without `custom/`, a list of catalog models, and optional routing preferences: + +```json +{ + "name": "support-fast", + "models": [ + { "model": "openai/gpt-4.1-nano", "providers": ["openai"] }, + { "model": "anthropic/claude-sonnet-4.6", "providers": ["anthropic"] } + ], + "routing": { + "algorithm": "preferred" + } +} +``` + +Each model's optional `providers` list restricts its providers and sets their preferred order. Omit `providers` to allow the gateway's registered providers for that model. Provider restrictions are configured through the API; the dashboard editor selects models only. + +`PUT` replaces the whole configuration. Include every model and provider restriction you want to keep. Omitting `routing`, or setting it to `null` or `{}`, clears the alias's routing preferences. + +## Limits and errors + +- Each gateway supports up to 100 aliases. +- An alias must contain between 1 and 50 model entries. +- Names must be unique within the gateway and contain 1–64 characters. Use lowercase letters and numbers, optionally separated by a single `.`, `_`, or `-`. For example, `support-fast` is valid; `Support Fast`, `support--fast`, and `support-` are not. +- An alias cannot reference another `custom/` alias. +- Models must support a shared protocol format for the request. Native-only model formats are not available through aliases. +- Aliases do not support x402 payments. + +| Response | Meaning | Action | +| ------------------------------------------------------ | ---------------------------------------------------------------------------- | ------------------------------------------------------------ | +| `404` with `Model not found` | The selected gateway has no alias with that name. | Check the alias name, `custom/` prefix, and gateway ID. | +| `400` with `has no available models` | None of the alias's targets resolve to available protocol-compatible models. | Check the exact catalog model IDs and provider restrictions. | +| `503` with `Model aliases are temporarily unavailable` | The gateway cannot read the alias configuration. | Retry the request. | From 20ad9c50323eff9c5f6a1367f9384b1457af3f52 Mon Sep 17 00:00:00 2001 From: Charlie Gleason Date: Wed, 21 Oct 2026 18:20:31 -0700 Subject: [PATCH 2/6] [AI Gateway] Clarify model alias routing defaults --- .../docs/ai-gateway/features/model-aliases.mdx | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/content/docs/ai-gateway/features/model-aliases.mdx b/src/content/docs/ai-gateway/features/model-aliases.mdx index 33a2735bf12..2f633511c01 100644 --- a/src/content/docs/ai-gateway/features/model-aliases.mdx +++ b/src/content/docs/ai-gateway/features/model-aliases.mdx @@ -47,7 +47,7 @@ Configuration changes can take time to reach requests served from different loca ## Routing preferences -Turn on **Custom routing** to set defaults for this alias. +Turn on **Custom routing** to save routing preferences for this alias. | Setting | Value | Behavior | | ---------------- | ------------------------------- | ------------------------------------------------------------------------ | @@ -56,15 +56,9 @@ Turn on **Custom routing** to set defaults for this alias. | **Optimize for** | _Cost_ (`cost`) | Favor cost efficiency when using smart routing. | | **Optimize for** | _Best quality_ (`best`) | Favor the router's quality ranking when using smart routing. | -The optimization preference applies to smart routing. Smart routing requires access to that feature. If smart routing is unavailable or cannot produce a ranking, the gateway retains the configured candidate order. +The optimization preference applies to smart routing. If smart routing cannot rank the models, the gateway uses the model order you configured. -Routing options follow this precedence, separately for the algorithm and optimization preference: - -1. Options supplied with the request. -2. Options saved on the alias. -3. Gateway defaults. - -When **Custom routing** is off, the alias inherits gateway defaults. To explicitly prefer the configured model order, turn on **Custom routing** and select _Preferred order_. +When **Custom routing** is off, the gateway uses the model order you configured. Routing options supplied with a request override the alias's saved preferences. Only models and providers that support the request format and pass gateway checks are eligible. A failed attempt can fall back to another eligible model or provider. This does not bypass authentication, billing, or gateway policies. From 3e8f187e8674e3c78e817d57b55aabc74d19ae36 Mon Sep 17 00:00:00 2001 From: Charlie Gleason Date: Thu, 22 Oct 2026 15:16:25 -0700 Subject: [PATCH 3/6] [AI Gateway] Group routing documentation --- public/__redirects | 4 +++ .../changelog/agents/2026-10-21-createai.mdx | 2 +- ...9-ai-dashboard-experience-improvements.mdx | 2 +- ...026-04-02-auto-retry-upstream-failures.mdx | 2 +- src/content/docs/agents/models/ai-sdk.mdx | 4 +-- src/content/docs/agents/models/index.mdx | 2 +- src/content/docs/agents/models/pi-ai.mdx | 4 +-- .../configuration/bring-your-own-keys.mdx | 2 +- .../configuration/custom-providers.mdx | 2 +- .../configuration/manage-gateway.mdx | 2 +- .../configuration/request-handling.mdx | 2 +- .../docs/ai-gateway/features/index.mdx | 23 ++++++----------- .../{ => routing}/dynamic-routing/index.mdx | 8 +++--- .../dynamic-routing/json-configuration.mdx | 0 .../{ => routing}/dynamic-routing/usage.mdx | 3 +-- .../ai-gateway/features/routing/index.mdx | 25 +++++++++++++++++++ .../features/{ => routing}/model-aliases.mdx | 4 +-- .../docs/ai-gateway/features/spend-limits.mdx | 2 +- src/content/docs/ai-gateway/get-started.mdx | 2 +- src/content/docs/ai-gateway/index.mdx | 4 +-- .../docs/ai-gateway/integrations/pi-ai.mdx | 2 +- .../ai-gateway/integrations/vercel-ai-sdk.mdx | 6 ++--- .../ai-gateway/reference/troubleshooting.mdx | 2 +- .../docs/ai-gateway/usage/chat-completion.mdx | 2 +- .../docs/ai-gateway/usage/universal.mdx | 2 +- .../usage/worker-binding-methods.mdx | 2 +- 26 files changed, 68 insertions(+), 47 deletions(-) rename src/content/docs/ai-gateway/features/{ => routing}/dynamic-routing/index.mdx (94%) rename src/content/docs/ai-gateway/features/{ => routing}/dynamic-routing/json-configuration.mdx (100%) rename src/content/docs/ai-gateway/features/{ => routing}/dynamic-routing/usage.mdx (98%) create mode 100644 src/content/docs/ai-gateway/features/routing/index.mdx rename src/content/docs/ai-gateway/features/{ => routing}/model-aliases.mdx (98%) diff --git a/public/__redirects b/public/__redirects index ea7b53a8412..71d1f67221a 100644 --- a/public/__redirects +++ b/public/__redirects @@ -369,6 +369,10 @@ /ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-site-owner/monitor-metrics/ /ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-site-owner/monitor-activity/ 301 # AI Gateway +/ai-gateway/features/model-aliases/ /ai-gateway/features/routing/model-aliases/ 301 +/ai-gateway/features/dynamic-routing/ /ai-gateway/features/routing/dynamic-routing/ 301 +/ai-gateway/features/dynamic-routing/json-configuration/ /ai-gateway/features/routing/dynamic-routing/json-configuration/ 301 +/ai-gateway/features/dynamic-routing/usage/ /ai-gateway/features/routing/dynamic-routing/usage/ 301 /ai-gateway/get-started/configuring-settings/ /ai-gateway/get-started/ 301 /ai-gateway/get-started/connecting-applications/ /ai-gateway/get-started/ 301 /ai-gateway/get-started/creating-gateway/ /ai-gateway/get-started/ 301 diff --git a/src/content/changelog/agents/2026-10-21-createai.mdx b/src/content/changelog/agents/2026-10-21-createai.mdx index 2f968c40a8c..864841d95a3 100644 --- a/src/content/changelog/agents/2026-10-21-createai.mdx +++ b/src/content/changelog/agents/2026-10-21-createai.mdx @@ -44,7 +44,7 @@ export default { With `createAI` you get: -- **Every model by id.** Workers AI `@cf/` ids, any model in the [AI Gateway catalog](/ai/models/), and [dynamic routes](/ai-gateway/features/dynamic-routing/) as `dynamic/`. +- **Every model by id.** Workers AI `@cf/` ids, any model in the [AI Gateway catalog](/ai/models/), and [dynamic routes](/ai-gateway/features/routing/dynamic-routing/) as `dynamic/`. - **Vendor model objects.** Pass a model from the vendor's own package, such as `ai(anthropic("claude-opus-5-5"))`. It goes unchanged to AI Gateway's [provider-native endpoint](/ai-gateway/usage/providers/). - **The binding, or an account id and API token.** Use a gateway in another account, or call from outside a Worker. - **Gateway options, fallback, and BYOK.** Caching, logging, metadata, retries, `byokAlias`, `zdr`, and `vendorKey`. diff --git a/src/content/changelog/ai-gateway/2026-02-19-ai-dashboard-experience-improvements.mdx b/src/content/changelog/ai-gateway/2026-02-19-ai-dashboard-experience-improvements.mdx index d31ce0ef601..2b9c6aad16a 100644 --- a/src/content/changelog/ai-gateway/2026-02-19-ai-dashboard-experience-improvements.mdx +++ b/src/content/changelog/ai-gateway/2026-02-19-ai-dashboard-experience-improvements.mdx @@ -27,7 +27,7 @@ We've also combined the previously separate code example sections into one view **Dynamic Routing** -- The [route builder](/ai-gateway/features/dynamic-routing/) is now more performant and responsive. +- The [route builder](/ai-gateway/features/routing/dynamic-routing/) is now more performant and responsive. - You can now copy route names to your clipboard with a single click. - Code examples use the [Universal Endpoint](/ai-gateway/usage/universal/) format, making it easier to integrate routes into your application. diff --git a/src/content/changelog/ai-gateway/2026-04-02-auto-retry-upstream-failures.mdx b/src/content/changelog/ai-gateway/2026-04-02-auto-retry-upstream-failures.mdx index ca3e8fae885..6f03ba49b0d 100644 --- a/src/content/changelog/ai-gateway/2026-04-02-auto-retry-upstream-failures.mdx +++ b/src/content/changelog/ai-gateway/2026-04-02-auto-retry-upstream-failures.mdx @@ -12,6 +12,6 @@ You can configure the retry count (up to 5 attempts), the delay between retries ![Retry Requests settings in the AI Gateway dashboard](~/assets/images/ai-gateway/auto-retry-changelog.png) -This is particularly useful when you do not control the client making the request and cannot implement retry logic on the caller side. For more complex failover scenarios — such as failing across different providers — use [Dynamic Routing](/ai-gateway/features/dynamic-routing/). +This is particularly useful when you do not control the client making the request and cannot implement retry logic on the caller side. For more complex failover scenarios — such as failing across different providers — use [Dynamic Routing](/ai-gateway/features/routing/dynamic-routing/). For more information, refer to [Manage gateways](/ai-gateway/configuration/manage-gateway/#retry-requests). diff --git a/src/content/docs/agents/models/ai-sdk.mdx b/src/content/docs/agents/models/ai-sdk.mdx index 3b2b54ae5c2..b78b7696a97 100644 --- a/src/content/docs/agents/models/ai-sdk.mdx +++ b/src/content/docs/agents/models/ai-sdk.mdx @@ -145,7 +145,7 @@ Unified Billing requires [authentication](/ai-gateway/configuration/authenticati ## Call a dynamic route -An [AI Gateway dynamic route](/ai-gateway/features/dynamic-routing/) is named `dynamic/`. The route you configured on the gateway picks the model, and can apply conditions, percentages, rate and budget limits, and its own fallbacks: +An [AI Gateway dynamic route](/ai-gateway/features/routing/dynamic-routing/) is named `dynamic/`. The route you configured on the gateway picks the model, and can apply conditions, percentages, rate and budget limits, and its own fallbacks: ```ts const ai = createAI({ binding: env.AI, id: "my-gateway" }); @@ -571,7 +571,7 @@ A string can be a Workers AI id, a catalog id, or a dynamic route. - [pi-ai provider](/agents/models/pi-ai/) - [Model catalog](/ai/models/) -- [Dynamic routing](/ai-gateway/features/dynamic-routing/) +- [Dynamic routes](/ai-gateway/features/routing/dynamic-routing/) - [AI Gateway provider-native endpoints](/ai-gateway/usage/providers/) - [AI Gateway Worker binding methods](/ai-gateway/usage/worker-binding-methods/) - [Unified Billing](/ai-gateway/features/unified-billing/) diff --git a/src/content/docs/agents/models/index.mdx b/src/content/docs/agents/models/index.mdx index 62e6bf1159d..af15075327b 100644 --- a/src/content/docs/agents/models/index.mdx +++ b/src/content/docs/agents/models/index.mdx @@ -41,7 +41,7 @@ ai(anthropic("claude-opus-5-5")); // the vendor's own model object - **A Workers AI model** is a `@cf/` id. It runs through `env.AI.run()`. A compatibility layer turns each model's response into the standard OpenAI chat completions shape. - **An AI Gateway catalog model** is an `/` id from the [model catalog](/ai/models/), such as `anthropic/claude-opus-5.5` or `openai/gpt-5.5`. It also runs through `env.AI.run()`, which sends it to AI Gateway. The gateway picks a provider and bills the call. Use the catalog's spelling, not the vendor's: `anthropic/claude-opus-5.5`, not `claude-opus-5-5`. -- **A [dynamic route](/ai-gateway/features/dynamic-routing/)** is `dynamic/`. The route you configured on the gateway picks the model. +- **A [dynamic route](/ai-gateway/features/routing/dynamic-routing/)** is `dynamic/`. The route you configured on the gateway picks the model. - **A model object** comes from the vendor's provider package, such as `anthropic("claude-opus-5-5")`. The vendor's code builds the request and parses the response. The provider sends that request unchanged through the binding to AI Gateway's [provider-native endpoint](/ai-gateway/usage/providers/) for that vendor. The providers do not use the deprecated [Universal Endpoint](/ai-gateway/usage/universal/). diff --git a/src/content/docs/agents/models/pi-ai.mdx b/src/content/docs/agents/models/pi-ai.mdx index cf3e1488024..22b754ab42e 100644 --- a/src/content/docs/agents/models/pi-ai.mdx +++ b/src/content/docs/agents/models/pi-ai.mdx @@ -123,7 +123,7 @@ ai(getBuiltinModel("anthropic", "claude-opus-5-5")); Any other string throws a `TypeError`. The provider does not guess what a prefix means. -A [dynamic route](/ai-gateway/features/dynamic-routing/) runs on `env.AI.run()` under the gateway you created it on, so set that gateway's `id`. The route picks the model and answers in the chat completions format. It takes the same metadata defaults and overrides as a Workers AI id. +A [dynamic route](/ai-gateway/features/routing/dynamic-routing/) runs on `env.AI.run()` under the gateway you created it on, so set that gateway's `id`. The route picks the model and answers in the chat completions format. It takes the same metadata defaults and overrides as a Workers AI id. A catalog id uses the AI Gateway catalog's spelling, `anthropic/claude-opus-5.5`. Pi AI's own list spells Claude ids the way Anthropic does (`claude-opus-5-5`), so the provider lists them under the catalog spelling. A model object from a vendor registry keeps the vendor's spelling. @@ -264,5 +264,5 @@ const result = await ai.generateImages(images, { - [AI SDK provider](/agents/models/ai-sdk/) - [Pi harness](/agents/harnesses/pi/) - [Model catalog](/ai/models/) -- [Dynamic routing](/ai-gateway/features/dynamic-routing/) +- [Dynamic routes](/ai-gateway/features/routing/dynamic-routing/) - [Pi AI](https://github.com/earendil-works/pi/tree/main/packages/ai) diff --git a/src/content/docs/ai-gateway/configuration/bring-your-own-keys.mdx b/src/content/docs/ai-gateway/configuration/bring-your-own-keys.mdx index 16737152a80..55ce847b0fd 100644 --- a/src/content/docs/ai-gateway/configuration/bring-your-own-keys.mdx +++ b/src/content/docs/ai-gateway/configuration/bring-your-own-keys.mdx @@ -19,7 +19,7 @@ The keys are stored securely with [Secrets Store](/secrets-store/) and allows fo - Secure storage and limit exposure - Easier key rotation -- Rate limit, budget limit and other restrictions with [Dynamic Routes](/ai-gateway/features/dynamic-routing/) +- Rate limit, budget limit and other restrictions with [dynamic routes](/ai-gateway/features/routing/dynamic-routing/) ## Setting up BYOK diff --git a/src/content/docs/ai-gateway/configuration/custom-providers.mdx b/src/content/docs/ai-gateway/configuration/custom-providers.mdx index 83f7bfa98e6..a21e7b10c13 100644 --- a/src/content/docs/ai-gateway/configuration/custom-providers.mdx +++ b/src/content/docs/ai-gateway/configuration/custom-providers.mdx @@ -663,6 +663,6 @@ If you receive a 404 from the upstream provider, the most common cause is an inc - [Get started with AI Gateway](/ai-gateway/get-started/) - [Configure authentication](/ai-gateway/configuration/authentication/) - [BYOK (Store Keys)](/ai-gateway/configuration/bring-your-own-keys/) -- [Dynamic routing](/ai-gateway/features/dynamic-routing/) +- [Dynamic routes](/ai-gateway/features/routing/dynamic-routing/) - [Caching](/ai-gateway/features/caching/) - [Rate limiting](/ai-gateway/features/rate-limiting/) diff --git a/src/content/docs/ai-gateway/configuration/manage-gateway.mdx b/src/content/docs/ai-gateway/configuration/manage-gateway.mdx index 1fb47e307c1..e9b750ae5e6 100644 --- a/src/content/docs/ai-gateway/configuration/manage-gateway.mdx +++ b/src/content/docs/ai-gateway/configuration/manage-gateway.mdx @@ -89,7 +89,7 @@ To configure retry settings: These gateway-level defaults apply to all requests routed through the gateway. Per-request headers can override these defaults — refer to [Request handling](/ai-gateway/configuration/request-handling/#request-retries) for details. -For more complex failover scenarios where you need to fail across different providers, refer to [Dynamic Routing](/ai-gateway/features/dynamic-routing/). +For more complex failover scenarios where you need to fail across different providers, refer to [dynamic routes](/ai-gateway/features/routing/dynamic-routing/). ## Delete gateway diff --git a/src/content/docs/ai-gateway/configuration/request-handling.mdx b/src/content/docs/ai-gateway/configuration/request-handling.mdx index 47126a9f0a8..2c1948ad4c3 100644 --- a/src/content/docs/ai-gateway/configuration/request-handling.mdx +++ b/src/content/docs/ai-gateway/configuration/request-handling.mdx @@ -10,7 +10,7 @@ products: :::note -[Dynamic Routing](/ai-gateway/features/dynamic-routing/) also offers timeouts and retries per model, along with conditional routing, rate limiting, and budget limiting through a visual interface. This page documents request-handling configuration available through per-request `cf-aig-*` headers that work with any provider endpoint. You can also configure retries at the [gateway level](/ai-gateway/configuration/manage-gateway/#retry-requests). +[Dynamic routes](/ai-gateway/features/routing/dynamic-routing/) also offer timeouts and retries per model, along with conditional routing, rate limiting, and budget limiting through a visual interface. This page documents request-handling configuration available through per-request `cf-aig-*` headers that work with any provider endpoint. You can also configure retries at the [gateway level](/ai-gateway/configuration/manage-gateway/#retry-requests). ::: diff --git a/src/content/docs/ai-gateway/features/index.mdx b/src/content/docs/ai-gateway/features/index.mdx index aca255341a8..8251050c9c3 100644 --- a/src/content/docs/ai-gateway/features/index.mdx +++ b/src/content/docs/ai-gateway/features/index.mdx @@ -1,6 +1,6 @@ --- title: Features -description: Explore AI Gateway features including caching, rate limiting, guardrails, dynamic routing, and data loss prevention. +description: Explore AI Gateway features including caching, rate limiting, guardrails, routing, and data loss prevention. pcx_content_type: overview order: 1 sidebar: @@ -69,23 +69,16 @@ Automatically route each request to the most cost-effective model that can handl - + -Give a group of models a stable name, set routing preferences, and change model choices without updating your application. - - - - - -Create sophisticated request routing flows without code changes. Route requests based on user segments, geography, content analysis, or A/B testing requirements through a visual interface. +Choose models without changing application code. Use model aliases for shared model choices and routing preferences, or dynamic routes for conditional flows. **Key benefits:** -- Visual flow-based configuration -- User-based and geographic routing -- A/B testing and fractional traffic splitting -- Context-aware routing based on request content -- Dynamic rate limiting with automatic fallbacks +- Stable model names with configurable model order or smart routing +- Conditional routing and percentage-based traffic splits +- Rate and budget limits within dynamic routes +- Fallbacks when a model is unavailable @@ -217,7 +210,7 @@ Override default pricing with your negotiated rates or custom cost models. Apply ## Getting Started with Features 1. **Start with the basics**: Enable [Caching](/ai-gateway/features/caching/) and [Analytics](/ai-gateway/observability/analytics/) for immediate benefits -2. **Add reliability**: Configure Fallbacks and Rate Limiting using [Dynamic routing](/ai-gateway/features/dynamic-routing/) +2. **Add reliability**: Configure Fallbacks and Rate Limiting using [dynamic routes](/ai-gateway/features/routing/dynamic-routing/) 3. **Enhance security**: Implement [Guardrails](/ai-gateway/features/guardrails/), [DLP](/ai-gateway/features/dlp/), and [Authentication](/ai-gateway/configuration/authentication/) --- diff --git a/src/content/docs/ai-gateway/features/dynamic-routing/index.mdx b/src/content/docs/ai-gateway/features/routing/dynamic-routing/index.mdx similarity index 94% rename from src/content/docs/ai-gateway/features/dynamic-routing/index.mdx rename to src/content/docs/ai-gateway/features/routing/dynamic-routing/index.mdx index c2e8d215885..bd27e5e31ba 100644 --- a/src/content/docs/ai-gateway/features/dynamic-routing/index.mdx +++ b/src/content/docs/ai-gateway/features/routing/dynamic-routing/index.mdx @@ -1,10 +1,10 @@ --- -title: Dynamic routing +title: Dynamic routes description: Route AI Gateway requests based on conditions, quotas, and fallbacks using a visual interface or JSON configuration. pcx_content_type: navigation order: 1 sidebar: - order: 6 + order: 2 group: badge: Beta products: @@ -48,7 +48,7 @@ Ensure your gateway has [authentication](/ai-gateway/configuration/authenticatio ::: 1. Create a route. - - Go to **(Select your gateway)** > **Dynamic Routes** > **Add Route**, and name it (for example, `support`). + - Select your gateway, go to **Routing**, then select **Create dynamic route**. Name the route (for example, `support`). - Open **Editor**. 2. Define conditionals, limits and other settings. - You can use [Custom Metadata](/ai-gateway/observability/custom-metadata/) in your conditionals. @@ -60,7 +60,7 @@ Ensure your gateway has [authentication](/ai-gateway/configuration/authenticatio - Click **Save** to save the state. You can always roll back to earlier versions from **Versions**. - Deploy the version to make it live. 5. Call the route from your code. - - Use the route name in place of the model, for example, `dynamic/support`. See [Using a dynamic route](/ai-gateway/features/dynamic-routing/usage/) for examples. + - Use the route name in place of the model, for example, `dynamic/support`. See [Using a dynamic route](/ai-gateway/features/routing/dynamic-routing/usage/) for examples. :::note diff --git a/src/content/docs/ai-gateway/features/dynamic-routing/json-configuration.mdx b/src/content/docs/ai-gateway/features/routing/dynamic-routing/json-configuration.mdx similarity index 100% rename from src/content/docs/ai-gateway/features/dynamic-routing/json-configuration.mdx rename to src/content/docs/ai-gateway/features/routing/dynamic-routing/json-configuration.mdx diff --git a/src/content/docs/ai-gateway/features/dynamic-routing/usage.mdx b/src/content/docs/ai-gateway/features/routing/dynamic-routing/usage.mdx similarity index 98% rename from src/content/docs/ai-gateway/features/dynamic-routing/usage.mdx rename to src/content/docs/ai-gateway/features/routing/dynamic-routing/usage.mdx index 3b199e79645..0009920ee03 100644 --- a/src/content/docs/ai-gateway/features/dynamic-routing/usage.mdx +++ b/src/content/docs/ai-gateway/features/routing/dynamic-routing/usage.mdx @@ -117,8 +117,7 @@ export default { ## Response Metadata -The response from a dynamic route is the same as the response from a model. There is additional metadata used to notify the model and provider used, you can check the following headers +The response from a dynamic route is the same as the response from a model. There is additional metadata used to notify the model and provider used, you can check the following headers - `cf-aig-model` - The model used - `cf-aig-provider` - The slug of provider used - diff --git a/src/content/docs/ai-gateway/features/routing/index.mdx b/src/content/docs/ai-gateway/features/routing/index.mdx new file mode 100644 index 00000000000..d9c5521d5ee --- /dev/null +++ b/src/content/docs/ai-gateway/features/routing/index.mdx @@ -0,0 +1,25 @@ +--- +title: Routing +description: Choose how AI Gateway selects models with model aliases and dynamic routes, without changing application code. +pcx_content_type: navigation +sidebar: + order: 6 +products: + - ai-gateway +--- + +import { Feature } from "~/components"; + +Routing lets you configure how AI Gateway selects models. In the dashboard, select your gateway, then go to **Routing** to manage model aliases and dynamic routes. + + + +Give one or more models a stable name such as `custom/support-fast`. Use an alias to configure model order or smart routing preferences without updating your application. + + + + + +Build a routing flow with conditional branches, percentage splits, rate limits, and budget limits. Use a dynamic route when requests need to follow different paths based on rules you define. + + diff --git a/src/content/docs/ai-gateway/features/model-aliases.mdx b/src/content/docs/ai-gateway/features/routing/model-aliases.mdx similarity index 98% rename from src/content/docs/ai-gateway/features/model-aliases.mdx rename to src/content/docs/ai-gateway/features/routing/model-aliases.mdx index 2f633511c01..b6e09665257 100644 --- a/src/content/docs/ai-gateway/features/model-aliases.mdx +++ b/src/content/docs/ai-gateway/features/routing/model-aliases.mdx @@ -3,7 +3,7 @@ title: Model aliases description: Give a group of models a stable name, configure routing preferences, and update model choices without changing application code. pcx_content_type: how-to sidebar: - order: 6 + order: 1 products: - ai-gateway --- @@ -14,7 +14,7 @@ A model alias gives one or more models a name such as `custom/support-fast`. You Aliases belong to individual gateways. A `custom/support-fast` alias on one gateway does not configure the same name on another gateway. -Use an alias for a list of models with shared routing preferences. For conditional branches, percentage splits, or limits within a routing flow, use [dynamic routing](/ai-gateway/features/dynamic-routing/). +Use an alias for a list of models with shared routing preferences. For conditional branches, percentage splits, or limits within a routing flow, use [dynamic routes](/ai-gateway/features/routing/dynamic-routing/). ## Before you start diff --git a/src/content/docs/ai-gateway/features/spend-limits.mdx b/src/content/docs/ai-gateway/features/spend-limits.mdx index 7709c050f98..58f8cecc8ce 100644 --- a/src/content/docs/ai-gateway/features/spend-limits.mdx +++ b/src/content/docs/ai-gateway/features/spend-limits.mdx @@ -101,7 +101,7 @@ If your gateway is not behind Access, pass your own user identifier as [custom m When a spend limit is exceeded, AI Gateway returns a `429 Too Many Requests` response. You have two options: - **Block requests** (default) - The request is rejected until the budget window resets. -- **Fall back to a cheaper model** - Create a [Dynamic Route](/ai-gateway/features/dynamic-routing/) with a primary model and a fallback (for example, `anthropic/claude-opus-4.7` with a fallback to `@cf/moonshotai/kimi-k2.6`). Then set a spend limit on the primary model using this feature. When the primary model's budget is exceeded, AI Gateway automatically routes requests to the fallback model instead of blocking them. +- **Fall back to a cheaper model** - Create a [dynamic route](/ai-gateway/features/routing/dynamic-routing/) with a primary model and a fallback (for example, `anthropic/claude-opus-4.7` with a fallback to `@cf/moonshotai/kimi-k2.6`). Then set a spend limit on the primary model using this feature. When the primary model's budget is exceeded, AI Gateway automatically routes requests to the fallback model instead of blocking them. ## Monitoring spend diff --git a/src/content/docs/ai-gateway/get-started.mdx b/src/content/docs/ai-gateway/get-started.mdx index 971fdd6f7f7..3deb0ee7e2e 100644 --- a/src/content/docs/ai-gateway/get-started.mdx +++ b/src/content/docs/ai-gateway/get-started.mdx @@ -112,5 +112,5 @@ https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/{provider} ## Next steps - Learn more about [caching](/ai-gateway/features/caching/) for faster requests and cost savings and [rate limiting](/ai-gateway/features/rate-limiting/) to control how your application scales. -- Explore how to specify model or provider [fallbacks, ratelimits, A/B tests](/ai-gateway/features/dynamic-routing/) for resiliency. +- Explore how to specify model or provider [fallbacks, ratelimits, A/B tests](/ai-gateway/features/routing/dynamic-routing/) for resiliency. - Learn how to use low-cost, open source models on [Workers AI](/ai-gateway/usage/providers/workersai/) - our AI inference service. diff --git a/src/content/docs/ai-gateway/index.mdx b/src/content/docs/ai-gateway/index.mdx index eccaab06f46..4469f21de9c 100644 --- a/src/content/docs/ai-gateway/index.mdx +++ b/src/content/docs/ai-gateway/index.mdx @@ -66,9 +66,9 @@ Control how your application scales by limiting the number of requests your appl - + -Improve resilience by defining request retry and model fallbacks in case of an error. +Choose models and fallbacks with model aliases, or build conditional flows with dynamic routes. diff --git a/src/content/docs/ai-gateway/integrations/pi-ai.mdx b/src/content/docs/ai-gateway/integrations/pi-ai.mdx index 6e310a6adc2..1e9ef9bab63 100644 --- a/src/content/docs/ai-gateway/integrations/pi-ai.mdx +++ b/src/content/docs/ai-gateway/integrations/pi-ai.mdx @@ -14,7 +14,7 @@ import { WranglerConfig, } from "~/components"; -To call AI Gateway from [Pi AI](https://github.com/earendil-works/pi/tree/main/packages/ai), use `createAI` from `agents/models/pi-ai`. It calls models from the [model catalog](/ai/models/), [dynamic routes](/ai-gateway/features/dynamic-routing/), and Pi AI's own model objects through your gateway. This page covers the AI Gateway features. For the full reference, refer to [Pi AI](/agents/models/pi-ai/). +To call AI Gateway from [Pi AI](https://github.com/earendil-works/pi/tree/main/packages/ai), use `createAI` from `agents/models/pi-ai`. It calls models from the [model catalog](/ai/models/), [dynamic routes](/ai-gateway/features/routing/dynamic-routing/), and Pi AI's own model objects through your gateway. This page covers the AI Gateway features. For the full reference, refer to [Pi AI](/agents/models/pi-ai/). ## Installation diff --git a/src/content/docs/ai-gateway/integrations/vercel-ai-sdk.mdx b/src/content/docs/ai-gateway/integrations/vercel-ai-sdk.mdx index 2bbf8f94357..cbbe3591b22 100644 --- a/src/content/docs/ai-gateway/integrations/vercel-ai-sdk.mdx +++ b/src/content/docs/ai-gateway/integrations/vercel-ai-sdk.mdx @@ -14,7 +14,7 @@ import { WranglerConfig, } from "~/components"; -To call AI Gateway from the [AI SDK](https://ai-sdk.dev/), use `createAI` from `agents/models/ai-sdk`. It calls models from the [model catalog](/ai/models/), [dynamic routes](/ai-gateway/features/dynamic-routing/), and a vendor's own AI SDK models through your gateway. This page covers the AI Gateway features. For the full reference, refer to [AI SDK](/agents/models/ai-sdk/). +To call AI Gateway from the [AI SDK](https://ai-sdk.dev/), use `createAI` from `agents/models/ai-sdk`. It calls models from the [model catalog](/ai/models/), [dynamic routes](/ai-gateway/features/routing/dynamic-routing/), and a vendor's own AI SDK models through your gateway. This page covers the AI Gateway features. For the full reference, refer to [AI SDK](/agents/models/ai-sdk/). The `ai-gateway-provider` package is deprecated. Use `createAI` instead. @@ -64,7 +64,7 @@ export default { -Use the catalog's spelling of the id, such as `anthropic/claude-opus-5.5` or `openai/gpt-5.5`. `id` sets the gateway and defaults to `default`. A [dynamic route](/ai-gateway/features/dynamic-routing/) on that gateway is `dynamic/`, for example `ai("dynamic/support")`. +Use the catalog's spelling of the id, such as `anthropic/claude-opus-5.5` or `openai/gpt-5.5`. `id` sets the gateway and defaults to `default`. A [dynamic route](/ai-gateway/features/routing/dynamic-routing/) on that gateway is `dynamic/`, for example `ai("dynamic/support")`. ## Call a vendor's model object @@ -133,5 +133,5 @@ The call forms and options are the same. [Create an API token](/fundamentals/api - [AI SDK provider reference](/agents/models/ai-sdk/) - [Model catalog](/ai/models/) -- [Dynamic routing](/ai-gateway/features/dynamic-routing/) +- [Dynamic routes](/ai-gateway/features/routing/dynamic-routing/) - [Unified Billing](/ai-gateway/features/unified-billing/) diff --git a/src/content/docs/ai-gateway/reference/troubleshooting.mdx b/src/content/docs/ai-gateway/reference/troubleshooting.mdx index 917efdb1de7..4d16c3042bb 100644 --- a/src/content/docs/ai-gateway/reference/troubleshooting.mdx +++ b/src/content/docs/ai-gateway/reference/troubleshooting.mdx @@ -41,7 +41,7 @@ For troubleshooting Data Loss Prevention issues such as DLP not triggering or un ### Requests timing out - Check if the upstream provider is experiencing issues -- Consider implementing [dynamic routing](/ai-gateway/features/dynamic-routing/) with fallbacks for transient failures +- Consider implementing [dynamic routes](/ai-gateway/features/routing/dynamic-routing/) with fallbacks for transient failures - Review your [rate limiting](/ai-gateway/features/rate-limiting/) configuration ### Requests returning errors from the provider diff --git a/src/content/docs/ai-gateway/usage/chat-completion.mdx b/src/content/docs/ai-gateway/usage/chat-completion.mdx index 927f18bdf1d..1a62c912e87 100644 --- a/src/content/docs/ai-gateway/usage/chat-completion.mdx +++ b/src/content/docs/ai-gateway/usage/chat-completion.mdx @@ -23,7 +23,7 @@ For standard single-model chat completions, this endpoint is deprecated. Use the ::: :::note[Dynamic routing] -[Dynamic routes](/ai-gateway/features/dynamic-routing/) (`dynamic/{route}`) can be invoked through this `/compat/chat/completions` endpoint, and existing integrations continue to work. For new integrations, use the [REST API](/ai-gateway/usage/rest-api/) at `/ai/v1/chat/completions` or the [AI binding](/ai-gateway/usage/worker-binding-methods/) instead. See [Using a dynamic route](/ai-gateway/features/dynamic-routing/usage/) for examples. +[Dynamic routes](/ai-gateway/features/routing/dynamic-routing/) (`dynamic/{route}`) can be invoked through this `/compat/chat/completions` endpoint, and existing integrations continue to work. For new integrations, use the [REST API](/ai-gateway/usage/rest-api/) at `/ai/v1/chat/completions` or the [AI binding](/ai-gateway/usage/worker-binding-methods/) instead. See [Using a dynamic route](/ai-gateway/features/routing/dynamic-routing/usage/) for examples. ::: Cloudflare's AI Gateway offers an OpenAI-compatible `/chat/completions` endpoint, enabling integration with multiple AI providers using a single URL. This feature simplifies the integration process, allowing for seamless switching between different models without significant code modifications. diff --git a/src/content/docs/ai-gateway/usage/universal.mdx b/src/content/docs/ai-gateway/usage/universal.mdx index b099e2ec0fa..088869c15d7 100644 --- a/src/content/docs/ai-gateway/usage/universal.mdx +++ b/src/content/docs/ai-gateway/usage/universal.mdx @@ -13,7 +13,7 @@ import { Render, Badge, WranglerConfig } from "~/components"; :::caution[Deprecated] -The Universal Endpoint is deprecated. Use the [OpenAI-compatible endpoint](/ai-gateway/usage/chat-completion/) for new integrations, and [Dynamic Routing](/ai-gateway/features/dynamic-routing/) for fallbacks, retries, and conditional routing. The Universal Endpoint will continue to work for existing integrations. +The Universal Endpoint is deprecated. Use the [OpenAI-compatible endpoint](/ai-gateway/usage/chat-completion/) for new integrations, and [dynamic routes](/ai-gateway/features/routing/dynamic-routing/) for fallbacks, retries, and conditional routing. The Universal Endpoint will continue to work for existing integrations. ::: diff --git a/src/content/docs/ai-gateway/usage/worker-binding-methods.mdx b/src/content/docs/ai-gateway/usage/worker-binding-methods.mdx index 0ccb07ec687..74ffba9d0a8 100644 --- a/src/content/docs/ai-gateway/usage/worker-binding-methods.mdx +++ b/src/content/docs/ai-gateway/usage/worker-binding-methods.mdx @@ -96,7 +96,7 @@ Browse available models in the [model catalog](/ai/models/). **Dynamic route:** -Pass a [dynamic route](/ai-gateway/features/dynamic-routing/) as the model in the form `dynamic/{route}`. Set `gateway.id` to the gateway that owns the route — routes are not shared across gateways. Dynamic routes accept the OpenAI chat completions request shape only. +Pass a [dynamic route](/ai-gateway/features/routing/dynamic-routing/) as the model in the form `dynamic/{route}`. Set `gateway.id` to the gateway that owns the route — routes are not shared across gateways. Dynamic routes accept the OpenAI chat completions request shape only. From 66449bfda06184fabfcd5599f281a018f289b36d Mon Sep 17 00:00:00 2001 From: Charlie Gleason Date: Thu, 22 Oct 2026 16:06:05 -0700 Subject: [PATCH 4/6] [AI Gateway] Mark model aliases as Beta --- .../docs/ai-gateway/features/routing/dynamic-routing/usage.mdx | 2 +- src/content/docs/ai-gateway/features/routing/index.mdx | 2 +- src/content/docs/ai-gateway/features/routing/model-aliases.mdx | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/content/docs/ai-gateway/features/routing/dynamic-routing/usage.mdx b/src/content/docs/ai-gateway/features/routing/dynamic-routing/usage.mdx index 0009920ee03..75be8cf2a8a 100644 --- a/src/content/docs/ai-gateway/features/routing/dynamic-routing/usage.mdx +++ b/src/content/docs/ai-gateway/features/routing/dynamic-routing/usage.mdx @@ -117,7 +117,7 @@ export default { ## Response Metadata -The response from a dynamic route is the same as the response from a model. There is additional metadata used to notify the model and provider used, you can check the following headers +The response from a dynamic route is the same as the response from a model. There is additional metadata used to notify the model and provider used, you can check the following headers: - `cf-aig-model` - The model used - `cf-aig-provider` - The slug of provider used diff --git a/src/content/docs/ai-gateway/features/routing/index.mdx b/src/content/docs/ai-gateway/features/routing/index.mdx index d9c5521d5ee..ab6597ad664 100644 --- a/src/content/docs/ai-gateway/features/routing/index.mdx +++ b/src/content/docs/ai-gateway/features/routing/index.mdx @@ -12,7 +12,7 @@ import { Feature } from "~/components"; Routing lets you configure how AI Gateway selects models. In the dashboard, select your gateway, then go to **Routing** to manage model aliases and dynamic routes. - + Give one or more models a stable name such as `custom/support-fast`. Use an alias to configure model order or smart routing preferences without updating your application. diff --git a/src/content/docs/ai-gateway/features/routing/model-aliases.mdx b/src/content/docs/ai-gateway/features/routing/model-aliases.mdx index b6e09665257..ae6d936002f 100644 --- a/src/content/docs/ai-gateway/features/routing/model-aliases.mdx +++ b/src/content/docs/ai-gateway/features/routing/model-aliases.mdx @@ -4,6 +4,7 @@ description: Give a group of models a stable name, configure routing preferences pcx_content_type: how-to sidebar: order: 1 + badge: Beta products: - ai-gateway --- From f722c12c7bb8c29e82ecb3ac8ae32fed9596d07d Mon Sep 17 00:00:00 2001 From: Charlie Gleason Date: Thu, 22 Oct 2026 17:10:59 -0700 Subject: [PATCH 5/6] [AI Gateway] Announce model aliases Beta --- .../ai-gateway/2026-10-22-model-aliases.mdx | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx diff --git a/src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx b/src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx new file mode 100644 index 00000000000..6c0d1861df7 --- /dev/null +++ b/src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx @@ -0,0 +1,24 @@ +--- +title: Model aliases in AI Gateway (Beta) +description: Give models a stable name and update routing preferences in AI Gateway without changing application code. +date: 2026-10-22 +--- + +AI Gateway now supports model aliases in Beta. An alias gives one or more models a stable name, such as `custom/support-fast`. You can update the models without changing your application code. + +Keep models in a preferred order for fallbacks. Or use smart routing to rank models by cost or quality. Create and manage aliases on your gateway's **Routing** page, alongside dynamic routes. + +To call an alias through the [REST API](/ai-gateway/usage/rest-api/), use its name as the `model`. For example, send this body to `/accounts/{account_id}/ai/run`: + +```json +{ + "model": "custom/support-fast", + "input": { + "messages": [{ "role": "user", "content": "Reply with a short greeting." }] + } +} +``` + +Include the `cf-aig-gateway-id` header to select the gateway where you created the alias. Aliases are scoped to individual gateways. + +For setup instructions and routing options, refer to [Model aliases](/ai-gateway/features/routing/model-aliases/). From 096a4dc6ac1d225789a98a5b0eb3ac6f4229960e Mon Sep 17 00:00:00 2001 From: Charlie Gleason Date: Thu, 22 Oct 2026 17:35:58 -0700 Subject: [PATCH 6/6] [AI Gateway] Lowercase beta in changelog prose --- src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx b/src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx index 6c0d1861df7..76f51ceece3 100644 --- a/src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx +++ b/src/content/changelog/ai-gateway/2026-10-22-model-aliases.mdx @@ -4,7 +4,7 @@ description: Give models a stable name and update routing preferences in AI Gate date: 2026-10-22 --- -AI Gateway now supports model aliases in Beta. An alias gives one or more models a stable name, such as `custom/support-fast`. You can update the models without changing your application code. +AI Gateway now supports model aliases in beta. An alias gives one or more models a stable name, such as `custom/support-fast`. You can update the models without changing your application code. Keep models in a preferred order for fallbacks. Or use smart routing to rank models by cost or quality. Create and manage aliases on your gateway's **Routing** page, alongside dynamic routes.