Skip to content
AM

AI model preferences

AI model preferences let eligible tenants choose the default model for the AI COO reasoning lane and manage bring-your-own-key provider credentials from the same Portal settings panel.

What this is

The settings page lives in Portal at /settings under AI Models. The UI renders AiModelSettings, which loads:

  • GET /api/model-negotiation/preferences for eligibility, effective model, saved selection, catalog, and BYOK state.
  • GET /api/byok/keys for safe provider-key metadata.
  • GET /api/model-negotiation/settings-summary for usage, configured-key count, and redacted activity.

The customer-facing preference applies to the Reasoning lane. In the current task catalog, AI COO chat, model-factory work, and workflow analysis/synthesis use the Reasoning lane; code-mode plan/run use the Frontier lane; reconciliation bank-line classification uses the Reflex lane.

Eligibility

Custom model preferences require:

  • An active or trialing Scale or Enterprise subscription.
  • A signed-in human user.
  • Owner or admin membership for the tenant.
  • A model from the customer preference catalog.
  • No externally managed reasoning-lane override from InBlack support.

If the tenant is ineligible, the UI shows that custom models require an upgrade. If the lane is managed externally, the UI is read-only and asks the operator to contact InBlack support.

Walkthrough

Open Portal Settings, then select AI Models in the settings rail.

The page shows:

  • Effective model - the reasoning model currently used after defaults, eligibility, and overrides are applied.
  • Key source - platform-managed or customer key.
  • 30-day model calls - usage summary from the settings-summary endpoint.
  • Configured keys - count of configured provider keys.
  • Default reasoning model - the selectable customer catalog.
  • Provider keys - add, replace, and remove provider keys.
  • Usage and Activity - recent usage split and redacted audit activity.

Pick a model. Select a catalog entry, then click Save selection. The page sends PUT /api/model-negotiation/preferences with { "model": { "provider": "...", "model_id": "..." } }. The API rejects models outside the customer preference catalog.

Reset to default. Click Reset to InBlack default. The page sends DELETE /api/model-negotiation/preferences, which clears a customer-managed reasoning-lane override.

Provider keys. Add, replace, or remove provider keys from the same page. The UI supports Anthropic, OpenAI, Google, xAI, Moonshot, and Qwen provider keys. The backend BYOK normalizer also recognizes DeepSeek, but the current tenant-facing settings UI does not render a DeepSeek row.

Provider keys are sent once over a credentialed request, validated, stored in encrypted secret storage, and never returned to the browser. The UI only displays safe metadata such as provider, masked tail, validation status, validation time, and last-used time.

Customer model catalog

The current customer preference catalog is:

LabelProviderModel ID
Claude Sonnet 4.6cloudflare-proxiedanthropic/claude-sonnet-4.6
Claude Opus 4.7cloudflare-proxiedanthropic/claude-opus-4.7
GPT-5.5cloudflare-proxiedopenai/gpt-5.5
Gemini 3.1 Procloudflare-proxiedgoogle/gemini-3.1-pro-preview
Kimi K2.6cloudflare-hosted@cf/moonshotai/kimi-k2.6
Qwen3-30B-A3B-fp8cloudflare-hosted@cf/qwen/qwen3-30b-a3b-fp8

The API marks a saved selection as stale if it no longer belongs to this allowlist.

What this affects

The customer preference affects the Reasoning lane when the tenant is eligible and the saved selection is not stale. It does not override every model call in the product:

  • AI COO chat, model-factory work, and workflow analysis/synthesis are Reasoning-lane tasks.
  • Code-mode plan and run are Frontier-lane tasks.
  • Reconciliation bank-line classification is a Reflex-lane task.
  • Safety, compliance, and protected routing may still use InBlack-managed model paths.

Programmatic access

  • REST (portal-api): GET, PUT, and DELETE /api/model-negotiation/preferences.
  • REST (portal-api): GET /api/model-negotiation/settings-summary.
  • REST (portal-api): GET and POST /api/byok/keys; DELETE /api/byok/keys/{provider}.
  • Headers/auth: requests are credentialed and include X-Tenant-ID when the Portal client has an active tenant.

The current AI COO MCP catalog does not expose model-preference administration tools. Model preference administration is a Portal API/UI surface, not an MCP tool surface.