diff --git a/docs/src/ai/use-a-gateway.md b/docs/src/ai/use-a-gateway.md index 909d4029f0a..65e62ff3158 100644 --- a/docs/src/ai/use-a-gateway.md +++ b/docs/src/ai/use-a-gateway.md @@ -252,6 +252,48 @@ Add models that are not yet built into Zed with `available_models`. Use the Bedr `name` is sent to Bedrock as the model ID. Use the full ID, including a geo prefix or ARN when the model requires one (for example `us.anthropic.claude-sonnet-4-7` or `us.xai.grok-4.6`). Set `supports_tools` and `supports_images` for models that support those features. Set `thinking` to `true` to enable thinking, or to an object with `"adaptive": true`, optional `"has_xhigh": true`, and optional `budget_tokens`. Leave `default_temperature` unset for models that reject the temperature field, such as xAI and MoonshotAI models. +### Bedrock Custom Endpoints {#bedrock-custom-endpoints} + +To send Bedrock Converse requests to a proxy or gateway instead of AWS, set `endpoint_url`: + +```json [settings] +{ + "language_models": { + "bedrock": { + "endpoint_url": "https://gateway.example.com/bedrock", + "region": "us-east-1", + "authentication_method": "api_key" + } + } +} +``` + +[Mantle models](#bedrock-mantle-models), including the built-in GPT-5.6, GPT-5.5, GPT-5.4, and Grok 4.3 models and any models in `mantle_available_models`, are called through a different service with a different request shape, so they ignore `endpoint_url` and go to AWS. + +If your gateway serves one of those models over the Converse API, add it as a [custom Bedrock model](#bedrock-custom-models) so Zed calls it through `endpoint_url`. Use the model ID your gateway expects as `name`: + +```json [settings] +{ + "language_models": { + "bedrock": { + "endpoint_url": "https://gateway.example.com/bedrock", + "available_models": [ + { + "name": "us.openai.gpt-5.6-luna", + "display_name": "GPT-5.6 Luna (Gateway)", + "max_tokens": 1000000, + "max_output_tokens": 128000, + "supports_tools": true, + "supports_images": true + } + ] + } + } +} +``` + +Don't use an ID that a Mantle model already uses as `name`, whether it's built in (such as `gpt-5.6-luna`) or listed in `mantle_available_models`. A Mantle model with the same ID replaces the custom model, so requests go to AWS instead of your gateway. + ### Bedrock Mantle Models {#bedrock-mantle-models} Some models, such as the GPT-5.6 family (Sol, Terra, and Luna), GPT-5.5, GPT-5.4, and Grok 4.3, aren't available through Bedrock's Converse API and are only reachable through `bedrock-mantle`, AWS's OpenAI-compatible inference endpoint. Zed routes these models through `bedrock-mantle` automatically; they appear alongside the rest of the Bedrock models in the model picker once you're authenticated, with no extra configuration required.