title: Providers and models description: Separate provider definitions, saved instances, inference models, local subsystems, and character assets.
Providers and models
A provider definition describes an integration. A saved provider instance contains configuration. An inference model is selected through that instance.
A display model is a different resource. It supplies the visible character, not the language-model response. See character-and-audio.
Definitions are not saved accounts
packages/provider-inference owns runtime-neutral definitions, configuration schemas, and provider construction. The package supports Node.js and browser environments.
packages/stage-ui/src/stores/providers/config.ts owns saved provider records. packages/stage-ui/src/stores/providers/provider.ts owns executable instances and inference-specific state.
The Consciousness module selects a provider and model for generation. Its configured state requires both identifiers. A saved identifier is not proof of network access or valid credentials.
flowchart TD Definition[Provider definition] --> Instance[Configured provider instance] Instance --> Catalog[Available model catalog] Catalog --> Selected[Selected inference model] Selected --> Request[Actual generation request] Endpoint[Reachable endpoint and credentials] --> Request Request --> Outcome[Response or real error] Artwork[Display model] --> Renderer[Character renderer]
Remote and local mean different things
| Provider path | Source-backed requirement | Important limit |
|---|---|---|
| User-configured remote provider | Endpoint, selected model, and credentials required by that service | Responses requests can go directly to that endpoint with the user’s key |
| Ollama | A separate Ollama server, with default URL http://localhost:11434/v1/ | Selecting Ollama does not install a server or model weights |
| Browser Web Speech API | Browser SpeechRecognition or webkitSpeechRecognition support | No API key does not establish offline processing |
| Kokoro TTS | A supported local model and its inference backend | The source includes WASM and WebGPU model variants |
| Apple Speech | Desktop Electron runtime on macOS plus native availability | The provider is not a generic browser or Linux feature |
In a browser, localhost refers to the browser’s machine. It does not automatically refer to the machine that serves the public showcase.
A remote endpoint must also permit the browser request. Endpoint reachability, browser policy, credentials, and model availability remain separate requirements.
Generation protocol is provider policy
The upstream provider guide documents two generation protocols: Chat Completions and Responses. OpenAI defaults to Responses. OpenAI Compatible defaults to Chat Completions.
Saved protocol choices take precedence. A custom endpoint must support the selected protocol. An OpenAI-compatible label does not establish support for every OpenAI API.
User-configured Responses requests use the configured endpoint and the user’s key. They do not universally require AIRI backend changes or Flux billing.
Account-backed official services have a separate authentication and gateway boundary. See services-and-integrations rather than applying those requirements to every provider.
Search has more than one path
The stage web-search module uses Tavily and requires its enabled setting plus a non-empty API key.
OpenAI also has an opt-in hosted search path through Responses. That path uses the configured OpenAI key and does not require a Tavily key.
Neither path is proof that search is enabled in a particular session. Model support and the selected endpoint still matter.
Configuration and privacy
The provider configuration store uses localStorage and supports remote provider operations. This source design is not an encrypted-secret-storage guarantee.
Use a trusted application origin for credentials. Treat endpoint URLs, headers, exported configuration, and browser storage as sensitive. Avoid real secrets in screenshots or public examples.
Read operations for diagnostics and workflows for a minimal real-request procedure.
Source context
All links use the revision in provenance.
packages/provider-inference/README.md, lines 1–70: ownership, protocols, direct requests, and hosted search.packages/stage-ui/src/stores/providers/config.ts, lines 45–108: saved records and remote operations.packages/provider-inference/src/providers/local/ollama/index.ts, lines 13–19: external server URL.packages/provider-inference/src/providers/local/browser-web-speech-api/index.ts, lines 16–44: browser capability check.packages/stage-ui/src/workers/kokoro/constants.ts, lines 9–71: WASM and WebGPU variants.packages/stage-ui/src/libs/providers/providers/apple-speech/index.ts, lines 82–99: native availability boundary.packages/stage-ui/src/stores/modules/web-search.ts, lines 8–34: Tavily module gate.
Navigation: index · modules · capability-boundaries