name: inference-providers
description: "Operate the TaskingAI inference microservice provider/model
catalog, credential validation, chat completion, text embedding, rerank,
provider icons, custom/local providers, proxy safety, and provider
troubleshooting."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
TaskingAI Inference Providers
Use this sub-skill when a task is about TaskingAI's inference microservice: provider and model schema discovery, provider credentials, credential verification, chat completion, text embedding, rerank, provider icons, OpenAI-compatible/custom hosts, local model providers, proxy/URL blacklist behavior, or provider-specific failure diagnosis.
Load this first
- For provider/model selection, credential fields, wildcard schemas, local/custom-host choices, and catalog counts, read references/provider-catalog.md.
- For HTTP route contracts, request/response bodies, validation order, streaming, fallbacks, proxy/custom-header behavior, and icon routes, read references/api-reference.md.
- For source-backed native-test behavior, credential-sensitive checks, and safe skip criteria, read references/native-testing.md.
- For symptoms, likely causes, and recovery steps, especially
PROVIDER_ERROR versus REQUEST_VALIDATION_ERROR, read references/troubleshooting.md.
- To inspect a user-supplied TaskingAI source tree without network calls or credentials, use scripts/inspect_inference_catalog.py.
Source-backed facts to preserve
- The verified inference catalog snapshot contains 35 provider directories.
- Model schema types are exactly
chat_completion, text_embedding, rerank, and wildcard.
- Provider and model metadata are loaded from bundled YAML resources into runtime caches before route handlers use them.
- Static import probes passed in Python 3.10 for
APIRouter, Provider, and DebugChatCompletionModel.
- Credential verification can be schema-only at provider level or can call a default chat, embedding, or rerank model depending on provider metadata.
Quick routing
- Backend object lifecycle, model-instance APIs exposed by the main backend, backend proxy endpoints, authentication, and database/API object semantics belong to
../backend-api/.
- Deployment variables, container startup, service URLs, image tags, port wiring,
TASKINGAI_INFERENCE_URL, global outbound proxy setup, and storage configuration belong to ../deployment-configuration/.
- Plugin tool bundles, plugin vision/tool schemas, plugin execution, and plugin image generation belong to
../plugin-bundles/.
- Stay here for provider catalog semantics, inference route payloads, credentials,
custom_host, Ollama/LM Studio/LocalAI, provider icons, and provider-specific troubleshooting.
Operating workflow
- Classify the requested model capability. Use
chat_completion, text_embedding, rerank, or wildcard; do not assume a wildcard schema has enough information without provider_model_id, model_type, and any required properties.
- Choose the provider path. Use provider selection guidance for hosted providers, hosted OpenAI-compatible routers,
custom_host, and local OpenAI-compatible servers.
- Validate credentials before invocation. Compare the request to the provider
credentials_schema; pass either plaintext credentials or encrypted_credentials, never both. Use credential validation semantics when the user needs encrypted credentials for later reuse.
- Build the inference payload. Use chat completion, text embedding, or rerank contracts. Check model properties and configs before provider calls.
- Handle proxy and URL safety deliberately. Request-level
proxy values must be HTTPS and are rejected if they contain a configured provider URL blacklist entry. custom_host endpoint URLs are checked against the same blacklist before a provider call.
- Diagnose by error class. Treat schema/model/property/proxy failures as request validation first. Treat upstream HTTP/API/auth/quota failures as provider failures. Use troubleshooting before retrying with new credentials.
Hard usability cases covered here
- Choose between
custom_host, Ollama/LM Studio/LocalAI, OpenRouter, and a named hosted provider for an OpenAI-compatible user task while preserving the difference between actual provider model IDs and TaskingAI model schema IDs.
- Diagnose
PROVIDER_ERROR versus REQUEST_VALIDATION_ERROR during credential validation by separating local schema/model/proxy checks from upstream provider responses.