Engine Table
|| Mode | Engine ID | Description | ||------|-----------|-------------| || fast / auto |theo-1-flash | Fast, lightweight completions |
|| think | theo-1-reason | Deep reasoning and analysis |
|| code | theo-1-code | Production-quality code generation |
|| image | theo-1-create | Image generation |
|| video | theo-1-motion | Video generation |
|| research | theo-1-research | Multi-step web research and synthesis |
|| roast | theo-1-edge | Unfiltered humor |
|| genui | theo-1-genui | Generative UI components |
|| domain analysis | theo-1-analyze | Domain-specific analysis (business, operations, etc.) |
|| data extraction | theo-1-extract | Document OCR and structured data extraction |
Theo has access to 300+ models and automatically selects the best one for each engine.
Automatic Failover
Every engine has a built-in failover mechanism. If the primary model is unavailable or performing below quality thresholds, Theo automatically routes to a backup — you never see a broken response. Failover is transparent and logged in the audit trail.Engine IDs in Responses
API responses always use Theo-branded engine identifiers:Skill Engine Preferences
Skills can recommend a preferred engine via theenginePreference field in their manifest. When a skill’s preferred engine differs from the mode default, Theo uses the skill’s preference if available.
Per-Customer Override Stage (Routing Studio)
Between the skill exclusive override and the global intent classifier, the routing engine consults the caller’s bound Routing Studio preference — a customer-authored bundle of keyword rules, few-shot examples, and per-mode confidence-floor overrides. Preferences let your domain win on ambiguous prompts without retraining the global classifier. The order, first match wins:- Agentic locks (
insurance_*,data_extraction) — never promoted. - Attachments → vision.
- Skill exclusive override (intensity-100 skill with a
modelPreference). - Routing Studio rule. Customer-authored rule fast-path.
- Intent classifier (with customer few-shot examples + per-mode confidence floor).
- Stealth family preservation.
- Conversation hint (for
autocallers). - Requested mode.
routing block carries a customer_preference field with the preference id, name, the rule id that matched (if any), and the count of few-shot examples injected into the classifier:
theo.routingPreferences.* and theo.keys.setRoutingPreference().
Routing Receipts in the Playground
Every completion already includes a structuredrouting block on both the SSE meta and done events:
requested → resolved line, a Promoted chip when the routing engine overrode the caller’s mode, the engine’s explanation, and a click-to-expand panel that surfaces classifier confidence, skill overrides, locked families, and the image sub-engine. A four-dot pipeline (CRL → Skill → Route → Dispatch) highlights the stage that drove the decision.
This is the same data your own apps receive over the wire — point your SDK at the meta event’s routing field to render the same affordance in your product.
