SuperApp architecture / design thesis

The agent should choose a capability.
Not marry a model.

Capability routing plans each step around what must be done—then selects the best available, compatible execution target underneath.

A fleet architecture for every frontier model
CR
The claim

The market is optimizing model selection.
We are designing the execution fabric.

Most systems bind a conversation to one model, add fallback, and call it routing. That leaves the agent trapped inside one model’s strengths, outages, modalities, and blind spots.

Why this is different

One architecture unifies per-step fitness, hard eligibility, disjoint failover, and multi-model panels.

The old dependency

Model-centric routing starts with the wrong noun.

User selection
One model
Loop
Search
Code
Media
Fitness

Every step inherits the same model—even when another is materially better.

Reliability

Fallback is usually provider-shaped, not deployment- or failure-domain-aware.

Perspective

One model’s blind spot remains the system’s blind spot.

The inversion

A task needs capabilities, not models.

agent_loop
llm_with_grounding
code_execution
image_gen
deep_research
Resolve each step
intent+eligibility+policyexecution plan

Target identity becomes an output of routing—not an input to the whole conversation.

The control plane

One map. Every capability. Ordered menus of logical models.

Capability
Typed, closed key

Adding a tool means adding a capability—not inventing another routing stack.

Route
Ordered menu

Logical model references plus hard compatibility requirements and effort policy.

SystemPlan
Inherited floor

Every capability has a safe base route; selections override only what they own.

capability → route → logical models → deployments → eligible set → ranked plan
Two-level identity

Pin the model. Resolve the deployment.

Logical ModelID
openai/gpt-5.6-sol

The stable, user-facing identity: facts, family, modality, context, tools, reasoning.

…sol@usregion:us · quota:a · cred:3
…sol@euregion:eu · quota:b · cred:8
…sol@apregion:ap · quota:c · cred:9
A regional outage changes the deployment—not the user’s choice.
The hard boundary

Eligibility is binary. Ranking cannot rescue an invalid target.

Availability

release gate ∩ target readiness ∩ request policy

Scoped to a concrete deployment—not a vague provider status.

Compatibility
Hosted tools
Modality
Context fit
Attachments
Strict schema
Hard ceiling
available AND compatible—or excluded before scoring.
One source of truth

Every routing surface reads the same eligible set.

Inputs

Capability
Turn footprint
Attachments
Availability snapshot

eligible()

expand + filter + floor + intent

CapabilityAvailable
Resolve (width 1)
ResolveSet (width N)
If these can disagree, the agent can advertise a tool it cannot execute. This design makes disagreement impossible by construction.
Fallback semantics

There are three different stories. Name them correctly.

01
Primary

Pinned logical model has an eligible deployment. The pin is honored.

02
Menu sibling

Pinned model is gone or incompatible; another candidate in the owned route wins.

03
System floor

The whole owned route is empty; the SystemPlan is tried through the same gate.

Selection outcome and route tier stay orthogonal: pin_displaced + menu_sibling can both be true.

Intent contract

Pin, Auto, Legacy are typed intentions—not ranking hints.

Pin

Lock the logical model at the head if any deployment is eligible. Policy may reorder only the tail.

user contract

Auto

No locked head. Policy is free to rank the entire eligible set using task context.

system judgment

Legacy

Preserve declared tier menus and today’s effort semantics while moving onto the new engine.

migration bridge
Ownership boundary

A pin only governs capabilities the selection owns.

Selection-owned
agent_loopgroundingcode_execution

Pin / Auto / Legacy intent applies.

System-owned
image_genvideo_gendeep_research

Inherited route. No user intent. Outcome: system_owned.

This preserves the product promise while freeing the engine underneath.
The resolver boundary

One extensible request. One immutable execution plan.

ResolutionRequest
capability
selection_intent
effort
availability
modalities
prompt_footprint
attachments
needs_schema
budget · deadline
desired_width
resolve
ExecutionPlan
ranked targets
fallback policy
fan-out bounds
synthesis policy
selection outcome
route tier

Invariant: at least one target. Otherwise resolution returns typed Unavailable.

Auditability

Every choice is reconstructable—not merely explainable.

Registry version
Config version
Policy version
Availability hash
Considered models
Rejected + facet
Eligible targets
Ranking scores

“Why did this model answer?” becomes a deterministic query.

The plan records inputs and intermediate sets; runtime outcomes are linked separately by PlanID.

Failure domains

Outages overlap. Failover cannot be a fixed ladder.

region: us
quota: pool-a
credential: key-3
provider: openai

Classify the failure, then choose the eligible target sharing the fewest implicated domains: maximally disjoint.

Contextual failover

The right backup depends on what broke.

Region blip
sol@us → sol@eu

Stay on the pinned model. Change deployment.

Quota exhaustion
pool-a → pool-b

Avoid the implicated quota pool—even inside the same provider.

Provider outage
OpenAI → Gemini

Cross providers because same-provider alternatives share the failed domain.

Preserve intent when possible. Cross the boundary only when the failure demands it.
Multiple perspectives

A capability can become a panel.

Grounding step
Desired width: 3
family A
GPT
family B
Gemini
family C
Grok
Synthesis
agreement + disagreement

A single-model blind spot becomes a visible divergence signal.

Bounded fan-out

Parallelism is granted by the system—not demanded by the caller.

granted width = min(
requested width, capability max, tenant cap, budget allows, distinct eligible families
)
Family-diverse
Shared base weights count once.
Synthesis-reserved
Panel is refused if synthesis cannot fit.
Deliberate
High-stakes and ambiguous—not default.
Coherent degradation

Fan-out failure semantics are part of the architecture.

N
Independent legs

Parallel calls with per-leg budget shares.

≥2
Quorum

Synthesize only when perspectives can be reconciled.

1
Degraded

Return directly; no fake synthesis from one source.

0
Recovery

Reserved budget, failed-target exclusion, then typed runtime failure.

Diversity-preserving failover: if a replacement duplicates another leg’s family, drop the leg instead.

Migration without drama

Change the engine in three reviewable phases.

01
Plumbing, behavior-preserving. Registry, capabilities, target availability, compatibility gate, resolver boundary, audit record. Width stays 1; declared order stays policy.
02
Registry and plans become truth. Delete derived adapters; author logical models and deployments once; wire real readiness and request policy.
03
Task-aware policy and fan-out, gated. Only after the cross-provider history adapter and evals prove safe per capability.
The architecture moat

The model is a replaceable target.
The capability fabric is the product.

Once every frontier model is available, advantage shifts from access to orchestration: hard eligibility, stable intent, deployment-aware resilience, family-diverse perspectives, typed multimodal dispatch, and auditable decisions—per step.

best availablecompatiblereproducible