Skip to main content

Providers And Models

Use this page when the base CLI path already makes sense and you need to choose the right provider lane before editing config in detail. Loong treats provider and model choice as operator-visible configuration, not hidden runtime magic. This page is the chooser. The exact built-in provider contract lives in Provider Guides, while Provider Recipes keeps a smaller set of representative rollout patterns. Volcengine and BytePlus stay near the top because they are a common first-run path, but they are not the only provider families surfaced here. If you want the shared public provider-profile shape before the recipes become provider-specific, start with Configuration Patterns. If you already know the provider choice and delivery surface together, go straight to Common Setups and the dedicated playbook that matches the rollout shape.

Choose A Provider Lane

If you need…Start hereWhy
a common hosted first run with a short reviewed pathVolcengine or BytePlusthe main hosted fast path stays short without hiding the broader provider map
a direct hosted provider your team already usesOpenAI, Anthropic, Gemini, DeepSeek, MiniMax, Mistral, Cohere, xAI, Z.ai, Zhipu, Qwen, Kimi, Groq, Fireworks, Together, Perplexity, Qianfan, Cerebras, NVIDIA, SambaNova, Novita, SiliconFlow, StepFun, or Venicebuilt-in families stay explicit instead of being forced through custom
a separate coding lane for coding quota or billingVolcengine Coding, BytePlus Coding, Kimi Coding, Step Plan, or Bailian Codingcoding traffic stays separate from the general hosted lane
one proxy or compatibility endpoint in front of upstream modelsgateway or custom endpoint recipesroute ownership stays visible instead of being mistaken for a first-party provider
a local or self-hosted model serverOllama, LM Studio, llama.cpp, vLLM, or SGLangthe server boundary and model inventory stay explicit
several reviewed provider profiles in one configmulti-profile provider recipescost, quota, latency, or region decisions stay operator-visible

Already Know The Whole Rollout?

If the provider choice is already tied to the delivery surface, skip this page and jump straight to the matching playbook.
If you already know you want…Go here
Volcengine plus Feishu or LarkVolcengine Plus Feishu Or Lark
Volcengine plus WeComWeCom Rollout
BytePlus Coding plus TelegramBytePlus Coding Plus Telegram
a local or self-hosted model plus outbound deliveryLocal Model Plus Outbound Delivery

Start With The Supported Path

loong onboard
loong list-models
onboard is the supported first-run path. It should discover what it can, help you resolve credentials, and leave you with a provider profile that the rest of the runtime actually uses. Use list-models after credentials are healthy when you want the current catalog from the active provider.

Reading Rule

  • Use this page to choose the provider lane.
  • Use Configuration Patterns when you want the shared active_provider plus providers.<id> shape before the provider-specific walkthroughs.
  • Use Provider Guides once you know the lane and need the exact built-in contract.
  • Use Provider Recipes when you want representative rollout patterns on top of that contract.
  • Use Common Setups when the provider choice only makes sense together with the delivery surface.

How Model Selection Works

ModeWhat it meansWhen to use it
Explicit modelprovider.model = "..." pins one model namewhen you want deterministic behavior or already know the exact model
Auto discoveryprovider.model = "auto" asks the runtime to discover usable models from the provider catalogwhen you want a clean first-run path and the provider exposes a model catalog
Preferred fallback listpreferred_models = ["...", "..."] defines an explicit operator fallback orderwhen catalog discovery is unstable or you want a reviewed fallback without inventing a hidden default
  • preferred_models is only an operator-configured fallback list.
  • It is not a secret provider-owned runtime default.
  • When the config already pins an explicit model, preferred_models does not override it.

Reviewed Onboarding Defaults

A small reviewed subset currently has an explicit onboarding fallback when the saved config still uses model = "auto" and model discovery is unavailable.
ProviderReviewed onboarding default
DeepSeekdeepseek-chat
MiniMaxMiniMax-M2.7
For other providers, Loong prefers to keep auto or ask the operator for an explicit model instead of silently inventing one.

Built-In Provider Map

You do not need to memorize every built-in provider kind to get started. Start with the lane chooser above, then use this section as the broader public map. A practical public grouping, inferred from the built-in provider kinds, is:

Hosted Families At A Glance

FamilyCurrent built-in kindsUse it when…
platform-first hostedVolcengine, BytePlusyou want a short first-run hosted lane that stays explicit in the docs
direct hosted generalOpenAI, Anthropic, Gemini, DeepSeek, MiniMax, Mistral, Cohere, xAI, Z.ai, Zhipu, Qwen, Kimi, Groq, Fireworks, Together, Perplexity, Qianfan, Cerebras, NVIDIA, SambaNova, Novita, SiliconFlow, StepFun, Veniceyour team already has a named hosted provider and you want that family to remain visible
coding-specialized hostedVolcengine Coding, BytePlus Coding, Kimi Coding, Step Plan, Bailian Codingcoding work, quota, or pricing should stay on an explicit lane
gateway and platform routingOpenRouter, Cloudflare AI Gateway, Vercel AI Gateway, Bedrock, Customa gateway, proxy, or managed route sits between Loong and the upstream models
local and self-hostedOllama, LM Studio, llama.cpp, vLLM, SGLangthe model server boundary should stay operator-owned

Platform-First Hosted Providers

  • Volcengine
  • Volcengine Coding
  • BytePlus
  • BytePlus Coding

Direct Hosted Providers

  • OpenAI
  • Anthropic
  • Gemini
  • DeepSeek
  • MiniMax
  • Mistral
  • Cohere
  • xAI
  • Z.ai
  • Zhipu
  • Qwen
  • Kimi
  • Groq
  • Fireworks
  • Together
  • Perplexity
  • Qianfan
  • Cerebras
  • NVIDIA
  • SambaNova
  • Novita
  • SiliconFlow
  • StepFun
  • Venice

Coding-Specialized Hosted Providers

  • Kimi Coding
  • Step Plan
  • Bailian Coding

Gateway And Compatibility Providers

  • Cloudflare AI Gateway
  • Vercel AI Gateway
  • OpenRouter
  • Bedrock
  • Custom OpenAI-compatible endpoints

Local And Self-Hosted Providers

  • Ollama
  • LM Studio
  • llama.cpp
  • vLLM
  • SGLang
The exact active set still depends on the build, the configured profile, and whether credentials resolve on the current machine.

Minimal Config Shape

The first-run path should normally write this for you, but the public config shape looks like this:
active_provider = "volcengine"

[providers.volcengine]
kind = "volcengine"
api_key = { env = "ARK_API_KEY" }
model = "auto"
The important part is that the runtime uses the same provider surface after onboarding that it uses during normal operation. There is no separate marketing-only provider layer. Here api_key = { env = "ARK_API_KEY" } explicitly means “read from the ARK_API_KEY environment variable”. Writing api_key = "ARK_API_KEY" would instead treat ARK_API_KEY as the literal key value, which is why the docs do not use that form for env-backed secrets. The same profile shape also works for OpenAI, Anthropic, Gemini, DeepSeek, MiniMax, BytePlus, and other built-in hosted families by swapping the provider kind, the default credential env, and the reviewed model choice.

Continue Reading

  • Continue to Provider Guides for the full built-in provider matrix.
  • Continue to Provider Recipes for step-by-step hosted, coding-lane, gateway, local, and multi-profile examples.
  • Go to First Run if you still need the shortest path to a useful answer.
  • Go to Common Setups if the provider choice is already tied to Feishu / Lark, WeCom, Telegram, local outbound delivery, or gateway ownership.
  • Go to Channels if you want the current delivery-surface model.
  • Go to Tools And Memory if you want the broader governed-capability story.