Skip to content

Model Specializations: Tag Models for Smart Routing ​

Tell the router what each model is good at, so a coding request lands on a coding model and a legal question lands on a legal one — using a fixed, platform-wide vocabulary instead of free-text keywords.

Why this exists ​

Smart routing can only prefer a "coding model" if your models say, in a machine-readable way, that they are coding models. Free-text tags don't survive contact with real teams: one admin writes coding, another Code, a third software, and the router treats those as three unrelated things. Specializations fix this with a canonical vocabulary — every model carries codes from one fixed list, and common variants are recognised automatically.

The older free-text Keywords field still exists on each model, labelled legacy. It is not used for routing decisions. Re-tag your models with specializations; the keywords field will be retired once migration is complete.

Tags are a claim, benchmarks are a measurement

With task-aware routing, the model configuration dialog shows what benchmarks and your own data say about each tag, and flags tags that no evidence supports.

The vocabulary ​

Specializations are grouped by category. The list is platform-managed — you pick from it, you don't invent entries:

CategoryCodes
Technicalcoding, debugging, architecture, devops, technical-writing
Cybersecuritycybersecurity, incident-response
Legallegal, contract, compliance
Medicalmedical
Researchresearch, data-analysis, long-context
Businessbusiness, finance
Creativecreative-writing, marketing
Generalgeneral, reasoning, math, summarization, translation, multimodal

Each code has aliases that resolve to it automatically in spreadsheet imports — for example code, programming, software and dev all become coding, and security, infosec and appsec all become cybersecurity. You never need to remember the aliases in the UI: the picker only offers canonical entries.

Tagging a model in the UI ​

  1. Go to Admin → AI Providers and open a model's edit dialog.
  2. Find Specializations under Routing & Configuration.
  3. Tick every domain the model is genuinely good at. Hover a label for its description.
  4. Save. The change is recorded in the audit log (who, when, from → to), because a specialization edit changes where production traffic is routed.

Example — a coding-focused deployment: for a model you bought specifically for your engineering teams, tick coding, debugging and reasoning. When smart routing later handles a request from a coding tool, models tagged coding are preferred over general ones.

Pick honestly, not generously

A model tagged with everything is preferred for nothing. Tag the two to five domains the model demonstrably handles well; leave general for genuine all-rounders.

Tagging models in bulk (spreadsheet) ​

The provider Excel/CSV files have a Specializations (comma separated) column, next to the legacy Keywords column:

csv
..., Keywords (comma separated), Specializations (comma separated), ...
..., "general,coding,creative", "coding,creative-writing", ...

Import behaviour:

  • Aliases are resolved for you. A cell containing Code, security is stored as coding, cybersecurity.
  • Unknown terms are reported, never guessed. A term that matches no code and no alias (say, quantum-alchemy) is dropped from that row, and the import response lists it under specializationWarnings with the affected provider/model. The rest of the sheet imports normally — one typo does not block 200 rows.
  • A blank cell keeps the model's existing specializations. Blank means "no change", exactly like the watermark columns. To clear a model's specializations deliberately, do it in the UI.
  • Re-importing an exported file round-trips the column without loss.

Who can edit what: the curator role ​

Tagging models and rotating provider API keys are now separate permissions:

CapabilityCompany owner / adminCATALOG_CURATOR rolecatalog.models.edit permission
View the model catalogue✓✓✓
Edit specializations, pricing, capability flags✓✓✓
Set or rotate a provider API key✓——
Delete a model configuration✓——
  • CATALOG_CURATOR is a user role for someone whose job is catalogue quality — tagging models, maintaining pricing and capability flags — without any access to provider credentials.
  • catalog.models.edit is an access-profile permission: an admin can grant catalogue editing to, say, a lead engineer through their access profile, without changing their role at all.

API keys are managed through their own endpoint and their own audit trail. If a catalogue edit includes a real API key, it is rejected with a clear error rather than saved — credentials never travel with catalogue edits.

Use cases ​

  • Vibe-coding / IDE traffic: gateway keys used by coding tools route with a preference for coding-tagged, tool-capable models. Tagging your models is what makes that preference mean something.
  • Regulated content: tag your EU-hosted, non-training model legal so contract questions prefer it over a cheaper general model.
  • Delegated curation: give your platform team CATALOG_CURATOR so they keep the catalogue accurate while key custody stays with account admins.