--- summary: "通过 models.providers 配置的提供程序:自定义端点、基本 URL 和本地推理服务器。" read_when: - "您正在通过 models.providers 配置提供程序" - "您将 OpenClaw 指向自定义基础 URL 或代理" - "您正在运行 llama.cpp、LM Studio、Ollama、vLLM 或 SGLang" title: "自定义提供程序和本地运行时" --- ## 通过 `models.providers` 提供者 (custom/base URL) 使用 `models.providers`(或 `models.json`)添加 **custom** 提供程序或 OpenAI/Anthropic-compatible 代理。 下面许多内置的提供商插件已经发布了默认目录。只有在你想覆盖默认基础 URL、请求头或模型列表时,才使用显式的 `models.providers.` 条目。 捆绑和目录已知的路由从拥有的提供商插件中获取其 `compat` 功能。配置 `compat` 块用于自定义 provider/model 或您已验证其端点合同的不同 `api`/`baseUrl` 路由;请参阅 [ 定制提供商能力指南](/gateway/config-tools#custom-provider-capability-declarations)。 Doctor 删除了仅重复目录的遗留值,并留下不同的值供操作员查看。 自定义端点不会继承原始目录路由的首选代码模式层。通过自动代码模式并且无需自定义 `compat.codeMode` 声明,嵌入式运行时保持其正常的工具表面。仅在验证该端点上的代码模式后才设置 `compat.codeMode: "preferred"`。 提供商标准化别名(例如 Anthropic 端点的 `/v1` 后缀)保留其标准目录功能。 Gateway 的模型能力检查也会读取显式的 `models.providers..models[]` 元数据。如果自定义或代理模型接受图像,请在该模型上设置 `input: ["text", "image"]`,这样 WebChat 和 node-origin 附件路径就会将图像作为原生模型输入传递,而不是仅文本的媒体引用。 `agents.defaults.models["provider/model"]` 用于控制 agents 的别名和每个模型的元数据。它既不会限制覆盖,也不会单独注册新的运行时模型。对于自定义提供商模型,还要添加 `models.providers..models[]`,并至少包含匹配的 `id`;当你想要覆盖限制时,请另外使用 `agents.defaults.modelPolicy.allow`。 ### Moonshot AI (Kimi) 在引导流程之前安装 `@openclaw/moonshot-provider`。只有在你需要覆盖基础 URL 或模型元数据时,才添加显式的 `models.providers.moonshot` 条目: - 提供方:`moonshot` - 认证:`MOONSHOT_API_KEY` - 示例模型:`moonshot/kimi-k3` - CLI:`openclaw onboard --auth-choice moonshot-api-key` 或 `openclaw onboard --auth-choice moonshot-api-key-cn` Kimi 模型 ID: [//]: # "moonshot-kimi-k2-model-refs:start" - `moonshot/kimi-k2.6` - `moonshot/kimi-k3` - `moonshot/kimi-k2.7-code` - `moonshot/kimi-k2.7-code-highspeed` - `moonshot/kimi-k2.5` [//]: # "moonshot-kimi-k2-model-refs:end" ```json5 { agents: { defaults: { model: { primary: "moonshot/kimi-k3" } }, }, models: { mode: "merge", providers: { moonshot: { baseUrl: "https://api.moonshot.ai/v1", apiKey: "${MOONSHOT_API_KEY}", api: "openai-completions", models: [{ id: "kimi-k3", name: "Kimi K3" }], }, }, }, } ``` 参见 [Moonshot AI(Kimi + Kimi Coding)](/providers/moonshot) 获取完整设置指南。 ### Kimi 编程 Kimi 编码使用 Moonshot AI 的 Anthropic- 兼容端点: - 提供商:`kimi` - 认证:`KIMI_API_KEY` - Kimi K3:`kimi/k3`(最高 1M,按层级开放)或 `kimi/k3-256k`(256K,较低配额使用) - Kimi 代码:`kimi/kimi-for-coding` - Kimi 代码 HighSpeed: `kimi/kimi-for-coding-highspeed` ```json5 { env: { vars: { KIMI_API_KEY: "sk-..." } }, agents: { defaults: { model: { primary: "kimi/kimi-for-coding" } }, }, } ``` Kimi K3 使用自适应思考。`--thinking minimal|low` 选择低强度, `--thinking medium|high|adaptive` 选择高强度,而 `--thinking xhigh|max` 选择最高强度。目录定价为输入 $3/MTok、输出 $15/MTok,以及缓存读取 $0.30/MTok。旧版 `kimi/kimi-code` 和 `kimi/k2p5` 仍然被接受为兼容模型 id,并会规范化为 Kimi 稳定 API 的模型 id;此前发布的 `kimi/k3[1m]` 引用会规范化为 `kimi/k3`,以兼容现有配置。 ### 火山发动机(Doubao) 火山引擎(Volcano Engine)提供在中国访问 Doubao 等模型的服务。 - 提供商:`volcengine`(编码:`volcengine-plan`) - 认证:`VOLCANO_ENGINE_API_KEY` - 示例模型:`volcengine-plan/ark-code-latest` - CLI: `openclaw onboard --auth-choice volcengine-api-key` ```json5 { agents: { defaults: { model: { primary: "volcengine-plan/ark-code-latest" } }, }, } ``` 注册时默认使用编码界面,但通用的 `volcengine/*` 目录会同时注册。 在 onboarding/configure 模型选择器中,Volcengine 身份验证选择更喜欢 `volcengine/*` 和 `volcengine-plan/*` 行。如果这些模型尚未加载,OpenClaw 会回退到未过滤的目录,而不是显示空的提供者范围选择器。 - `volcengine/doubao-seed-evolving`(Doubao 种子进化) - `volcengine/doubao-seed-2-1-pro-260628`(Doubao 种子 2.1 专业版) - `volcengine/doubao-seed-2-1-turbo-260628`(Doubao 种子 2.1 涡轮) - `volcengine/glm-5-2-260617` (GLM 5.2) - `volcengine/deepseek-v4-pro-260425` (DeepSeek V4 Pro) - `volcengine/deepseek-v4-flash-260425`(DeepSeek V4 闪存) - `volcengine-plan/ark-code-latest`(方舟编码方案) - `volcengine-plan/doubao-seed-2.1-turbo`(Doubao 种子 2.1 涡轮) - `volcengine-plan/glm-5.2` (GLM 5.2) - `volcengine-plan/deepseek-v4-pro` (DeepSeek V4 Pro) - `volcengine-plan/deepseek-v4-flash`(DeepSeek V4 闪存) ### BytePlus(国际版) BytePlus ARK 为国际用户提供与火山引擎相同的模型访问能力。 - 插件:`@openclaw/byteplus-provider` - 提供商:`byteplus`(编程:`byteplus-plan`) - 认证:`BYTEPLUS_API_KEY` - 示例模型:`byteplus-plan/ark-code-latest` - CLI: `openclaw onboard --auth-choice byteplus-api-key` 安装官方插件并重启网关: ```bash openclaw plugins install @openclaw/byteplus-provider openclaw gateway restart ``` ```json5 { agents: { defaults: { model: { primary: "byteplus-plan/ark-code-latest" } }, }, } ``` 注册时默认使用编程界面,但通用的 `byteplus/*` 目录会同时注册。 在 onboarding/configure 模型选择器中,BytePlus 身份验证选择更喜欢 `byteplus/*` 和 `byteplus-plan/*` 行。如果这些模型尚未加载,OpenClaw 会回退到未过滤的目录,而不是显示空的提供者范围选取器。 - `byteplus/dola-seed-2-1-turbo-260628` (Dola Seed 2.1 Turbo) - `byteplus/seed-2-0-code-preview-260328`(种子2.0代码预览) - `byteplus/glm-5-2-260617` (GLM 5.2) - `byteplus/deepseek-v4-pro-260425` (DeepSeek V4 Pro) - `byteplus/deepseek-v4-flash-260425`(DeepSeek V4 闪存) - `byteplus-plan/ark-code-latest`(方舟编码方案) - `byteplus-plan/kimi-k2.5`(Kimi K2.5 编码) ### Synthetic Synthetic 在 `synthetic` 提供程序背后提供 Anthropic- 兼容模型: - 提供商:`synthetic` - 认证:`SYNTHETIC_API_KEY` - 示例模型:`synthetic/hf:MiniMaxAI/MiniMax-M3` - CLI: `openclaw onboard --auth-choice synthetic-api-key` ```json5 { agents: { defaults: { model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M3" } }, }, models: { mode: "merge", providers: { synthetic: { baseUrl: "https://api.synthetic.new/anthropic", apiKey: "${SYNTHETIC_API_KEY}", api: "anthropic-messages", models: [{ id: "hf:MiniMaxAI/MiniMax-M3", name: "MiniMax M3" }], }, }, }, } ``` ### MiniMax MiniMax 通过 `models.providers` 配置,因为它使用自定义端点: - MiniMax OAuth(全球):`--auth-choice minimax-global-oauth` - MiniMax OAuth (CN): `--auth-choice minimax-cn-oauth` - MiniMax API 密钥(全球):`--auth-choice minimax-global-api` - MiniMax API 密钥 (CN): `--auth-choice minimax-cn-api` - Auth:`MINIMAX_API_KEY` 为 `minimax`; `MINIMAX_OAUTH_TOKEN` 或 `MINIMAX_API_KEY` 适用于 `minimax-portal` 请参见 [/providers/minimax](/providers/minimax) 获取设置详情、模型选项和配置片段。 在 MiniMax 的 Anthropic- 兼容流路径上,OpenClaw 默认禁用 M2.x 系列的思考,除非您明确设置;默认情况下,MiniMax-M3(和 M3.x)保留在提供商的 omitted/adaptive 思维路径上。 `/fast on` 将 `MiniMax-M2.7` 重写为 `MiniMax-M2.7-highspeed`。 插件拥有的能力划分: - Text/chat 默认保留在 `minimax/MiniMax-M3` - 图像生成使用 `minimax/image-01` 或 `minimax-portal/image-01` - 图像理解在两种 MiniMax 认证路径上都由插件拥有的 `MiniMax-VL-01` 提供 - Web 搜索停留在提供商 ID `minimax` 上 ### llama.cpp 捆绑的 `llama-cpp` 插件为一个本地文本提供程序提供了两种设置选择: - **托管本地服务器**安装并监督经过验证的llama服务器和本地GGUF文件。 - **E现有的 llama-server** 连接到您操作的服务器并发现其模型。 为任一路径安装一次插件: ```bash openclaw plugins install @openclaw/llama-cpp-provider ``` 两者都使用 `llama-cpp/` 参考。有关设置、发现、身份验证和托管本地嵌入的信息,请参阅 [llama.cpp](/plugins/llama-cpp)。 ### llmman llmman 通过 `models.providers` 配置为 OpenAI- 兼容的本地服务器。它将模型作为 OCI 工件拉取,并通过上游 `llama-server`、`vllm` 或 `mlx-lm` 为它们提供服务,并且可以在单个模型 ID 下将本地模型与托管模型配对: - Provider:`llmman`(自定义;`api: "openai-completions"`) - Auth:不强制执行;设置 `LLMMAN_API_KEY=llmman-local` 并使用 `apiKey: "${LLMMAN_API_KEY}"` - 默认底座URL:`http://127.0.0.1:17434/v1` - 示例模型:`llmman/qwen3.8` - H混合示例:`llmman/llmman.hybrid/qwen3.8,openai/gpt-5.6-luna` ```bash llmman pull qwen3.8 llmman serve ``` ```json5 { agents: { defaults: { model: { primary: "llmman/qwen3.8" } }, }, models: { providers: { llmman: { baseUrl: "http://127.0.0.1:17434/v1", apiKey: "${LLMMAN_API_KEY}", api: "openai-completions", models: [ { id: "qwen3.8", name: "Qwen3.8 (llmman)", reasoning: true, input: ["text", "image"] }, ], }, }, }, } ``` 请参阅 [/providers/llmman](/providers/llmman) 了解设置、混合本地 + 托管路由、愿景和故障排除。 ### LM Studio LM Studio 作为一个内置提供商插件发布,使用原生 API: - 提供商:`lmstudio` - 认证:`LM_API_TOKEN` - 默认推理基础 URL:`http://localhost:1234/v1` 然后设置一个模型(替换为 `http://localhost:1234/api/v1/models` 返回的 ID 之一): ```json5 { agents: { defaults: { model: { primary: "lmstudio/openai/gpt-oss-20b" } }, }, } ``` OpenClaw 使用 LM Studio 的原生 `/api/v1/models` 和 `/api/v1/models/load` 进行发现 + 自动加载,并默认使用 `/v1/chat/completions` 进行推理。如果你希望由 LM Studio 自己管理模型生命周期(JIT 加载、TTL 和自动逐出),请将 `models.providers.lmstudio.params.preload: false`。有关设置和故障排除,请参见 [/providers/lmstudio](/providers/lmstudio)。 ### Ollama Ollama 作为一个内置提供商插件发布,并使用 Ollama 的原生 API: - 提供商:`ollama` - 认证:不需要(本地服务器) - 示例模型:`ollama/llama3.3` - 安装:[https://ollama.com/download](https://ollama.com/download) ```bash # Install Ollama, then pull a model: ollama pull llama3.3 ``` ```json5 { agents: { defaults: { model: { primary: "ollama/llama3.3" } }, }, } ``` 当您选择使用 `OLLAMA_API_KEY` 时,会在 `http://127.0.0.1:11434` 本地检测到 Ollama,并且捆绑的提供程序插件将 Ollama 直接添加到 `openclaw onboard` 和模型选择器中。请参阅 [/providers/ollama](/providers/ollama) 了解入门、cloud/local 模式和自定义配置。 ### vLLM vLLM 作为 local/self-hosted OpenAI- 兼容服务器的捆绑提供商插件提供: - 提供商:`vllm` - 认证:可选(取决于你的服务器) - 默认基础 URL:`http://127.0.0.1:8000/v1` 要在本地启用自动发现(如果你的服务器不强制认证,任何值都可以): ```bash export VLLM_API_KEY="vllm-local" ``` 然后设置一个模型(替换为 `/v1/models` 返回的 ID 之一): ```json5 { agents: { defaults: { model: { primary: "vllm/your-model-id" } }, }, } ``` 详情请参见 [/providers/vllm](/providers/vllm)。 ### SG郎 SGLang 作为快速自托管 OpenAI- 兼容服务器的捆绑提供程序插件提供: - 提供商:`sglang` - 认证:可选(取决于你的服务器) - 默认基础 URL:`http://127.0.0.1:30000/v1` 要在本地启用自动发现(如果你的服务器不强制认证,任何值都可以): ```bash export SGLANG_API_KEY="sglang-local" ``` 然后设置一个模型(替换为 `/v1/models` 返回的 ID 之一): ```json5 { agents: { defaults: { model: { primary: "sglang/your-model-id" } }, }, } ``` 详情请参见 [/providers/sglang](/providers/sglang)。 ### 本地代理(LM Studio、vLLM、LiteLLM 等) 示例(OpenAI- 兼容): ```json5 { agents: { defaults: { model: { primary: "lmstudio/my-local-model" }, models: { "lmstudio/my-local-model": { alias: "Local" } }, }, }, models: { providers: { lmstudio: { baseUrl: "http://localhost:1234/v1", apiKey: "${LM_API_TOKEN}", api: "openai-completions", timeoutSeconds: 300, models: [ { id: "my-local-model", name: "Local Model", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 200000, maxTokens: 8192, }, ], }, }, }, } ``` 对于自定义提供商,`reasoning`、`input`、`cost`、`contextWindow` 和 `maxTokens` 都是可选的。未指定时,OpenClaw 默认: - `reasoning: false` - `input: ["text"]` - `cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }` - `maxTokens`:无固定默认值。对于 OpenAI- 兼容完成,未知输出限制会忽略 `max_tokens` 和 `max_completion_tokens`,从而让提供程序应用其默认值。 当模型的 `maxTokens` 未知时,Anthropic 和 Mistral 请求保留显式请求输出限制。 Anthropic 当没有可用的模型输出能力时,手动思维必须符合该要求限制。 省略的 `contextWindow` 保持未设置状态,因此编写的本机窗口元数据是明确的。当发现和每个模型上下文元数据都不可用时,上下文预算调用者将使用标准 `200000`-token 后备。 建议:设置与 proxy/model 限制相匹配的显式值。 模型选择元数据将功能与 API 和提供它们的端点相关联。配置的路由更改会丢弃先前路由中的元数据,同时将显式 `thinkingLevelMap` 应用于配置的模型。 - 对于非本机端点上的 `api: "openai-completions"`(主机不是 `api.openai.com` 的任何非空 `baseUrl`),OpenClaw 强制 `compat.supportsDeveloperRole: false` 避免针对不受支持的 `developer` 角色出现提供程序 400 错误。 - 当路由支持该角色时,Runtime 通知将按照会话顺序保留为 `developer` 消息,否则标记为 `user` 消息。他们从不添加后来的 `system` 消息,因此严格的聊天模板可以在通知后继续,而无需更改主要提示或存储的历史记录。 - Proxy 风格的 OpenAI- 兼容路由跳过本机 OpenAI-only 请求整形:无 `service_tier`、无响应 `store`、无完成 `store`、无提示缓存提示、无隐藏的 OpenClaw 归因标头。 - 自定义`openai-completions`标记为`reasoning: true`的模型在启用思考时默认发送`reasoning_effort`。如果模型的端点拒绝该字段,则在模型上设置 `compat.supportsReasoningEffort: false`。 `/think off` 默认省略它,让服务器自己的推理默认生效;有关明确的关闭映射和支持的工作级别,请参阅 [ 自定义端点思维 ](/tools/thinking#custom-openai-compatible-endpoints)。 - 对于需要供应商特定字段的 OpenAI- 兼容完成代理,请设置 `agents.defaults.models["provider/model"].params.extra_body`(或 `extraBody`)以将额外的 JSON 合并到出站请求正文中。 - 对于 vLLM 聊天模板控件,设置 `agents.defaults.models["provider/model"].params.chat_template_kwargs`。当会话思考级别关闭时,捆绑的 vLLM 插件会自动发送 `enable_thinking: false` 和 `vllm/nemotron-3-*` 的 `force_nonempty_content: true`。 - 对于慢速本地模型或远程 LAN/tailnet 主机,设置 `models.providers..timeoutSeconds`。这扩展了提供程序模型 HTTP 请求处理,包括连接、标头、正文流和总受保护的获取中止,而不会增加代理运行时的每次尝试超时。初始响应标头等待使用第一个事件预算:云端点为 120 秒,local/self-hosted 端点为 300 秒,除非被提供商超时或较低的尝试上限覆盖。在提供者接受请求后,这不会向本地流添加空闲间隙监管。如果没有明确的提供程序超时,TCP/TLS 连接设置将保持其 10 秒默认值,与较长的流超时无关,包括重新连接池传输时。如果 `agents.defaults.timeoutSeconds` 或特定于运行的超时较低,则也提高该上限;提供者超时无法延长当前模型尝试。每个配置的后备都会获得新的尝试预算。 - Model 提供者 HTTP 调用允许 Surge、Clash 和 sing-box fake-IP DNS 仅针对配置的提供者 `baseUrl` 主机名在 `198.18.0.0/15` 和 `fc00::/7` 中应答。 Custom/local 提供程序端点还信任受保护模型请求的精确配置的 `scheme://host:port` 源,包括环回、LAN 和 tailnet 主机。这不是一个新的配置选项;您配置的 `baseUrl` 仅扩展该源的请求策略。 Fake-IP 主机名允许和确切来源信任是独立的机制。其他私有、环回、链路本地、元数据、本地使用 NAT64 (`64:ff9b:1::/48`) 目标和不同端口仍然需要显式 `models.providers..request.allowPrivateNetwork: true` 选择加入。设置 `models.providers..request.allowPrivateNetwork: false` 以选择退出确切来源信任。 - 如果 `baseUrl` 是 empty/omitted,则 OpenClaw 保留默认的 OpenAI 行为(解析为 `api.openai.com`)。 - 出于安全考虑,即使显式设置了 `compat.supportsDeveloperRole: true`,在非原生 `openai-completions` 端点上也仍会被覆盖。 - 对于非直接端点上的 `api: "anthropic-messages"`(标准 `anthropic` 提供程序以外的任何提供程序,或主机不是公共 `api.anthropic.com` 端点的自定义 `models.providers.anthropic.baseUrl`),OpenClaw 抑制隐式 Anthropic beta 标头,例如`claude-code-20250219`、`interleaved-thinking-2025-05-14` 和 OAuth 标记,因此自定义 Anthropic- 兼容代理不会拒绝不支持的 beta 标志。如果您的代理需要特定的测试版功能,请明确设置 `models.providers..headers["anthropic-beta"]`。