The chat model your agent uses is the single biggest knob for reply speed. A 200ms time-to-first-token (TTFT) feels instant; a 1.5s TTFT feels broken. Most "the bot is slow" complaints from buyers trace back to picking a heavyweight model when a fast one would have done.
Super-admin → Settings → System → AI providers. Each provider (Cloudflare, OpenAI, OpenRouter) ships a dropdown of curated models with a speed badge, a cost tier, and an estimated TTFT. The estimate comes from each vendor's published latency dashboard as of the catalogue's last update; the real number on your install can vary by ±30% depending on your region.
Next to each model dropdown is a Test connection button. Click it and the server runs a one-token chat against the configured provider and reports the actual TTFT your install sees. The measurement is cached for 24 hours so reloading the page does not burn API budget. Click again to refresh.
If the probe fails — bad key, model deprecated, provider down — the button shows the error inline so you can fix it without leaving the page.
| Provider | Pick | Why |
|---|---|---|
| Cloudflare Workers AI | @cf/meta/llama-3.3-70b-instruct-fp8-fast |
Fastest 70B on Cloudflare. Free for most installs. Tool-calling reliable. |
| OpenAI | gpt-4o-mini |
10× cheaper than GPT-4o, ~3× faster TTFT. Quality good enough for sales-bot use. |
| OpenRouter | meta-llama/llama-3.3-70b-instruct:free |
Free tier; rate-limited but enough for low-volume sites. |
A single-Cloudflare install no longer dies when its chat model is
slow, cold-starting, or returns a 5xx. The app keeps a
second Cloudflare chat model on standby and switches
to it automatically for that turn — no second provider key required.
By default the primary is the 70B model and the fallback is the fast
8B model (@cf/meta/llama-3.1-8b-instruct), so a slow
heavyweight degrades to a quick lighter answer instead of an error.
CLOUDFLARE_CHAT_MODEL_FALLBACK to any other Workers
AI chat slug, or to an empty value to turn the in-provider
fallback off. A fallback equal to the primary is ignored (a
same-model retry buys nothing).
Each switch is recorded as a provider failover event in the Widget Monitor, so a primary model that fails over constantly is visible — that's your signal to make the fallback the primary, or to size up the account.
The catalogue (App\Services\Llm\ModelCatalog) is
hand-curated. We surface models that:
chat/completions endpoint.If your model is not in the dropdown, the picker still lets you paste a custom ID — the "Custom" entry pins at the top and falls back to the original free-text input. The Test connection button works against custom models too.