Platform models are what users pick in chat. Each one has a name, vendor, kind, availability, capabilities, and one or more upstream sources.
Where to find it#
Open the admin console and select Models. The toolbar has search, Status, Protocol, and Vendor filters, sorting, bulk actions, Groups, Order, and Create. The Automatic circuit breaker switch controls circuit state visibility.
| Column | Meaning |
|---|---|
| Platform model | Model name with icon and an availability badge. |
| Type | Model kinds. |
| Protocol | Protocols from the bound sources. |
| Vendor | Technical vendor. |
| Sources | Active {active} / {total}. |
| Status | Enabled or Disabled. |
| Availability | Platform-wide or Internal tasks. |
| Updated at | Last update time. |
Expand a row to see its upstream sources inline: upstream model, kind, protocol, vendor, upstream, and source status. The source menu allows test, circuit settings, enable or disable, circuit open or reset, and delete.
Create a platform model#
- Click Create.
- Enter the Platform model name and choose a Vendor.
- Optionally pick a Display group or keep Follow vendor.
- Set Status and Kind.
- Optionally set an Icon, Description, System prompt, Availability, and Permission groups.
- Expand Capabilities to set the context window and capability JSON.
- Expand Bind source to add upstream sources now, or leave it empty to create the platform model only.
- Click Save.
On create, each source row needs an upstream, an upstream model, a protocol, priority, weight, and status. Priority and weight must be positive integers, and duplicate source bindings are rejected. If a source binding fails, the model is still created and the toast reports how many bindings failed.
Edit a platform model#
Open Edit from the row menu. The sheet is the same as create, plus Upstream sources, which lists the bound sources, and Metadata with ID and timestamps.
| Field | Notes |
|---|---|
| Platform model | Required. The user-facing model name. |
| Vendor | Technical vendor used for grouping and routing. |
| Display group | Optional grouping in the model picker. |
| Status | Enabled or Disabled. |
| Kind | Chat, Audio, Image generation, Image editing, Video generation, Video extension. |
| Icon | Built-in icon, uploaded PNG, JPEG, or WebP up to 1 MiB, or an http(s) image URL. |
| Description | Shown in admin search and model details. |
| System prompt | Default behavior for chat tasks. Merged into the user prompt when the model does not support native system prompts. |
| Availability | Platform-wide for user-facing models, Internal tasks for background tasks. |
| Permission groups | Manually add the model to groups. Automatic rules stay managed by permission groups. |
| Capabilities | Context window, default options, option controls, and native tools. |
A model with no matching permission group is hidden from users. The sheet warns This model does not match any permission group and is hidden from users.
Manage upstream sources and routing#
Open Sources from the row menu to manage routes. Each source is one upstream model bound to the platform model.
- Bind source adds a new route. Choose an upstream, an upstream model, a protocol, priority, weight, and status.
- Change a source's Protocol inline. The change saves immediately.
- Edit Priority and Weight and commit with Enter or by leaving the field. Both must be positive integers.
- Enable or disable a source with the status switch.
- Use Circuit settings to set the source failure threshold, circuit duration, and rolling window.
0inherits the parent model fallback, then the system default. - Delete a source to stop routing to it.
Priority routes to the smallest value first. Weight splits traffic among sources with the same priority.
| Source state | Meaning |
|---|---|
| Circuit open | The source or its upstream is circuit-open. The tooltip shows the scope and expected recovery. |
| Platform model is disabled | The parent model is disabled. |
| Upstream is disabled | The upstream is disabled. |
| Upstream model is disabled | The model is no longer listed by the upstream. |
Configure capabilities#
Expand Capabilities in the edit sheet. It controls the context window and the capability JSON.
- Context window accepts Auto detect or a custom value from 4,096 to 16,000,000. Presets are 64K, 128K, 256K, 500K, and 1M. The sheet shows the effective value.
- Image streaming calls appears only when a bound route uses an image protocol.
- Visual config (Recommended) opens a dialog with Parameters and Official tools tabs.
- Advanced JSON exposes the raw capabilities JSON with a guide.
Parameters#
The Parameters tab edits defaultOptions, optionControls, and lockedOptionPaths.
| Column | Meaning |
|---|---|
| Parameter | Option path, for example reasoning.effort. |
| Default value | Parsed as a JSON value, for example 0.7, true, null, "high", or an object. |
| Locked | Locks the parameter for users. Locked parameters need a default. |
| Label | Display label. |
| Description | Help text. |
| Type | text, select, number, or boolean. |
| Options | Comma-separated values for select. |
Default values become the model's default request parameters. Option controls only decide how the chat parameters dialog renders controls; the option policy still decides what is passed through. Duplicate paths, missing paths, missing types, select controls without options, and locked parameters without defaults are rejected.
For OpenAI routes, the same dialog shows OpenAI cache settings: enable policy (Auto, Enabled, Disabled), cache mode (Implicit, Explicit (GPT-5.6+)), and cache TTL.
Official tools#
The Official tools tab controls which provider-hosted tools the model may use. Only tools enabled here can enter conversation settings.
- Toggle a built-in tool and set Default on to add it to the model's default request options.
- Configure expands a custom tool with Tool key, Applicable protocols, Type, Payload JSON, and Default on.
- A tool whose protocols do not match the current routes is marked May not apply.
When users hand-write options.tools, only administrator-allowed official tools are preserved. Unknown tools and MCP or function tools are not injected through JSON.
Reuse a template#
Reuse template copies capabilities from a protocol template or from an existing model with the same protocol and kind. Applying a template replaces the current defaults, controls, and native tools.
Manage groups and order#
- Groups manages technical vendors and display groups. A vendor has a stable Key (lowercase letters, numbers, underscores, or hyphens; it cannot change after creation), a Name, and an Icon. A display group has a name, an icon, and a member list. Deleting a vendor requires moving its models first; deleting a display group returns its models to their technical vendor.
- Order sets the order of display groups and models in the model picker. Drag groups and models to reorder, then Save. Models without a display group stay grouped by vendor.
Test a model#
- Test all in the row menu tests every source of a platform model.
- Test on a source tests that single route.
The result dialog shows Available, Error, Timeout, or Unsupported, with the upstream, protocol, endpoint, status code, latency, and request and response debug details. From a source result you can click Delete this model to remove that route.
Run tests after adding upstreams, changing routes, rotating credentials, changing protocols, or editing capabilities.
Bulk actions#
Select models with the checkboxes, then apply Type, Display group, Protocol, Context window, Vendor, or Status, or click Delete.
- Protocol changes apply only to models with upstream sources. If none of the selected models have sources, the action reports that.
- Context window must be 4,096 to 16,000,000 and must be larger than the model's output token limit.
- Deleting models removes their bindings from all upstreams.
Troubleshooting#
| What you see | What to check |
|---|---|
| Failed to load models | Refresh. If the session expired, sign in again. |
| A model is missing from chat | It is disabled, internal, has no source, matches no permission group, or all sources are unavailable. |
| Source binding failed | Confirm the upstream and upstream model are active and the protocol matches. |
| Priority must be greater than 0 / Weight must be greater than 0 | Enter positive integers. |
| Model test times out or errors | Check the upstream, credentials, protocol, and timeouts. |
| Context window rejected | Use a value from 4,096 to 16,000,000 that is larger than the output limit. |