Skip to content

Built-in Providers

GodeX ships with four built-in providers that cover the most popular non-OpenAI LLM platforms. Each provider is a self-contained module that declares its capabilities, translates requests via hooks, and maps responses back into the standard Chat Completions accessors. Adding a new provider follows the same pattern -- implement a ProviderSpec, write hooks for request patching and response normalization, and register it with the Registrar.

At a Glance

FeatureDeepSeekZhipuMiniMaxXiaomi
Spec Namedeepseekzhipuminimaxxiaomi
Default Base URLapi.deepseek.comopen.bigmodel.cn (coding plan)api.minimaxi.com/v1api.xiaomimimo.com/v1
Default Modeldeepseek-v4-proglm-5.1MiniMax-M2.7mimo-v2.5-pro
Reasoning Effortnativebooleannoneboolean
Max Tools128128128128
Response Formatstext, json_objecttext, json_objecttext, json_objecttext, json_object
Streaming UsageYesYesYesYes
Cached TokensYesYesYesYes

Provider Architecture

Every provider follows the same structural pattern: a spec.ts declares capabilities and creates the ProviderSpec, a hooks.ts implements request patching and response/stream accessors, a client.ts creates the ProviderEdge for making HTTP calls, and a protocol/ directory contains provider-specific DTO types.

All providers are registered at startup via createBuiltinRegistrar (src/providers/builtin.ts:49-55), which creates a Registrar and registers each ProviderDefinition.

Tool Capabilities Comparison

Each provider declares which tool types it supports and which ones must be degraded to a simpler form. Degradation means GodeX automatically converts an unsupported tool type into the nearest compatible type before sending it to the provider.

Tool TypeDeepSeekZhipuMiniMaxXiaomi
functionSupportedSupportedSupportedSupported
local_shellDegraded to functionDegraded to functionDegraded to functionDegraded to function
shellDegraded to functionDegraded to functionDegraded to functionDegraded to function
apply_patchDegraded to functionDegraded to functionDegraded to functionDegraded to function
customDegraded to functionDegraded to functionDegraded to functionDegraded to function
tool_searchDegraded to functionDegraded to functionDegraded to functionDegraded to function
namespaceDegraded to functionDegraded to functionDegraded to functionDegraded to function
web_search-Supported--
web_search_preview-Degraded to web_search--
file_search-Degraded to retrieval--
mcp-Supported--

Reasoning Support

Each provider handles reasoning (chain-of-thought) differently. The compatibility plan in the bridge kernel maps the incoming reasoning_effort to the provider-specific representation.

ProviderEffort TypeBehavior
DeepSeeknativeMaps high -> high, xhigh -> max. Adds thinking: {type: "enabled"} to the request.
ZhipubooleanAdds thinking: {type: "enabled", clear_thinking: false} when reasoning content is detected.
MiniMaxnoneStrips reasoning_effort entirely; reasoning is not supported.
XiaomibooleanBridge maps effort to thinking: {type: "enabled"/"disabled"}. Forces thinking: enabled when historical reasoning_content exists in messages. Defaults to thinking: disabled when no reasoning was requested.

DeepSeek's deepSeekPatchRequest handles this mapping in src/providers/deepseek/hooks.ts:113-136, Zhipu's in src/providers/zhipu/hooks.ts:113-134, and Xiaomi's in src/providers/xiaomi/hooks.ts.

Tool Choice Support

ProviderSupported Tool Choice Values
DeepSeekauto, none, required, function
Zhipuauto, none
MiniMaxauto, none, required, function
Xiaomiauto

Provider Definition Registration

Each provider is wrapped in a ProviderDefinition that pairs the provider name with a factory function. The definitions are collected in BUILTIN_PROVIDER_DEFINITIONS and registered at startup (src/providers/builtin.ts:22-41).

The ProviderDefinition interface, defined in src/providers/definition.ts:6-11, requires a name and a create factory function that produces a ProviderEdge from a ProviderRuntimeConfig.

Provider Specs

DeepSeek

The DeepSeek spec targets the standard Chat Completions API at https://api.deepseek.com (src/providers/deepseek/spec.ts:24-54).

PropertyValue
Namedeepseek
Protocolchat_completions
Default Base URLhttps://api.deepseek.com
Default Modeldeepseek-v4-pro
AuthBearer
ReasoningNative effort levels

Zhipu

The Zhipu spec defaults to the coding plan endpoint at https://open.bigmodel.cn/api/coding/paas/v4 (src/providers/zhipu/spec.ts:24-57).

PropertyValue
Namezhipu
Protocolchat_completions
Default Base URLhttps://open.bigmodel.cn/api/coding/paas/v4
Default Modelglm-5.1
AuthBearer
ReasoningBoolean (thinking enabled/disabled)

MiniMax

The MiniMax spec targets https://api.minimaxi.com/v1 (src/providers/minimax/spec.ts:24-54).

PropertyValue
Nameminimax
Protocolchat_completions
Default Base URLhttps://api.minimaxi.com/v1
Default ModelMiniMax-M2.7
AuthBearer
ReasoningNone

Xiaomi

The Xiaomi spec targets the MiMo API at https://api.xiaomimimo.com/v1 (src/providers/xiaomi/spec.ts).

PropertyValue
Namexiaomi
Protocolchat_completions
Default Base URLhttps://api.xiaomimimo.com/v1
Default Modelmimo-v2.5-pro
AuthBearer
ReasoningBoolean (thinking enabled/disabled)
Env VariableMIMO_API_KEY

Next Steps

TopicDescription
ConfigurationHow to configure providers in godex.yaml
Quick StartInstall and make your first call
OverviewArchitecture and design concepts

References