OpenClaw 接入 Fireworks 官方 Provider 插件:安装、认证、模型目录与 Kimi 思考策略全解析
【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 🦞项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw
本文聚焦 OpenClaw 项目中官方 Fireworks 模型提供方插件(@openclaw/fireworks-provider),完整讲解从插件安装、API Key 认证到模型目录(内置 GLM 5.2 Fast 与 Kimi K2.6 系列)的配置与验证流程,并深入源码剖析"Fireworks 上 Kimi 模型思考能力被强制关闭"这一关键行为的底层实现。读完本文,你将掌握在 OpenClaw 中接入 Fireworks OpenAI 兼容 API、动态解析任意模型 ID、以及为守护进程正确注入密钥的完整实战方案。
Fireworks 插件概览
Fireworks 提供开源权重模型与路由(router)模型,并通过 OpenAI 兼容 API 对外服务。OpenClaw 通过官方插件@openclaw/fireworks-provider接入,当前内置了 Fire Pass 的 GLM 5.2 Fast 路由模型、两款 Kimi 预目录模型,并支持在运行时动态解析任意 Fireworks 模型或路由 ID。
插件核心属性如下(来源:官方文档 与 插件清单):
| 属性 | 值 |
|---|---|
| Provider id | fireworks(别名:fireworks-ai) |
| 包名 | @openclaw/fireworks-provider |
| 认证环境变量 | FIREWORKS_API_KEY |
| 交互式认证标记 | --auth-choice fireworks-api-key |
| 直连 CLI 标记 | --fireworks-api-key <key> |
| API 形态 | OpenAI 兼容(openai-completions) |
| Base URL | https://api.fireworks.ai/inference/v1 |
| 默认模型 | fireworks/accounts/fireworks/routers/glm-5p2-fast |
| 默认别名 | GLM 5.2 Fast |
从插件入口实现 extensions/fireworks/index.ts 可以看到,插件通过defineSingleProviderPluginEntry注册,声明了aliases: ["fireworks-ai"]、docsPath: "/providers/fireworks",并将模型目录配置为discoveryMode: "strict"、allowExplicitBaseUrl: true、liveModelDiscovery: true——即支持实时模型发现,同时允许显式指定 Base URL。插件测试 extensions/fireworks/index.test.ts 中也验证了 provider id、别名与FIREWORKS_API_KEY环境变量的注册关系。
快速开始:三步接入
第一步:安装插件
openclaw plugins install @openclaw/fireworks-provider第二步:配置 Fireworks API Key
有三种方式可选,按需取其一:
# 方式一:交互式 onboarding openclaw onboard --auth-choice fireworks-api-key# 方式二:直接传参(非交互 + 跳过健康检查) openclaw onboard --non-interactive --accept-risk --skip-health \ --auth-choice fireworks-api-key \ --fireworks-api-key "$FIREWORKS_API_KEY"# 方式三:仅设置环境变量 export FIREWORKS_API_KEY=fw-...Onboarding 会把密钥按fireworksprovider 写入你的 auth profiles,并将 Fireworks 当前的 Fire Pass GLM 5.2 Fast 路由模型设为默认模型。--auth-choice fireworks-api-key与--fireworks-api-key <key>的对应关系定义在插件清单的providerAuthChoices中(见 openclaw.plugin.json),该配置声明了appGuidedSecret: true,说明该密钥属于引导式安全凭证。
第三步:验证模型可用性
openclaw models list --provider fireworks列表中应包含GLM 5.2 Fast、Kimi K2.6、Kimi K2.6 Fast三款模型。如果FIREWORKS_API_KEY未解析,openclaw models status --json会在auth.unusableProfiles字段下报告缺失的凭证。
非交互式安装(脚本 / CI 场景)
对于脚本化或 CI 安装,可一次性把所有参数放在命令行上:
openclaw onboard --non-interactive \ --mode local \ --auth-choice fireworks-api-key \ --fireworks-api-key "$FIREWORKS_API_KEY" \ --skip-health \ --accept-risk其中--mode local指定本地运行模式,--skip-health跳过健康检查、--accept-risk接受非交互模式下的风险确认,适合无人值守的自动化流程。
内置模型目录:三个预置模型
Onboarding 配置应用器(extensions/fireworks/onboard.ts)会保存连接设置与别名,但不会把生成的目录行复制进你的配置文件;只有当配置中显式设置models.mode: "replace"时,目录种子(catalog seeding)才会被启用,此时自定义模型行依然保持完整不受影响。
内置目录模型如下:
| 模型引用 | 名称 | 输入 | 上下文 | 最大输出 | 思考(Thinking) |
|---|---|---|---|---|---|
fireworks/accounts/fireworks/routers/glm-5p2-fast | GLM 5.2 Fast | text | 256,000 | 256,000 | 开启(默认) |
fireworks/accounts/fireworks/models/kimi-k2p6 | Kimi K2.6 | text + image | 262,144 | 262,144 | 强制关闭 |
fireworks/accounts/fireworks/routers/kimi-k2p6-turbo | Kimi K2.6 Fast | text + image | 262,144 | 256,000 | 强制关闭 |
这三行的权威来源是插件清单modelCatalog(openclaw.plugin.json),其中还登记了更多细节:
- GLM 5.2 Fast:
reasoning: true,上下文与最大输出均为 256,000;成本参数input: 2.1、output: 6.6、cacheRead: 0.21。 - Kimi K2.6:
reasoning: false,支持文本 + 图片输入;成本参数input: 0.95、output: 4、cacheRead: 0.16。 - Kimi K2.6 Fast:
reasoning: false,上下文 262,144、最大输出 256,000;成本参数input: 2、output: 8、cacheRead: 0.3;并带有兼容性标记unsupportedToolSchemaKeywords: ["not"],提示该模型的工具 schema 不支持not关键字。
模型目录构建逻辑集中在 extensions/fireworks/provider-catalog.ts:它从插件清单读取 provider 配置,导出FIREWORKS_BASE_URL、FIREWORKS_DEFAULT_MODEL_ID、FIREWORKS_DEFAULT_CONTEXT_WINDOW(256,000)与FIREWORKS_DEFAULT_MAX_TOKENS(256,000),供入口与 onboard 逻辑复用;buildFireworksCatalogModels()会以结构化克隆方式返回清单中的模型行,避免外部修改污染清单源数据。
注意:OpenClaw 将所有 Fireworks Kimi 模型固定为
thinking: off,原因是 Kimi 在 Fireworks 平台上若不显式关闭思考,可能把思维链(chain-of-thought)泄漏进可见回复中。若希望保留 Kimi 的推理输出,可将同一模型改经 Moonshot 直接路由;思考模式的跨 provider 切换可参考 思考模式。
自定义 Fireworks 模型 ID
OpenClaw 在运行时接受任何 Fireworks 模型或路由 ID:使用 Fireworks 平台显示的确切 ID,并加上fireworks/前缀即可。动态解析会复用 Fire Pass 模板的 OpenAI 兼容 API,将 GLM 类 ID 标记为纯文本输入,其他动态 ID 则声明为文本 + 图片输入;当 ID 命中 Kimi 模式时自动关闭思考。若模型能力不同,可配置自定义模型条目并声明其支持的输入类型:
{ agents: { defaults: { model: { primary: "fireworks/accounts/fireworks/models/<your-model-id>", }, }, }, }模型 ID 前缀的工作机制
OpenClaw 中每个 Fireworks 模型引用都以fireworks/开头,后接 Fireworks 平台上的确切 ID 或路由路径。例如:
- 路由模型:
fireworks/accounts/fireworks/routers/kimi-k2p6-turbo - 直连模型:
fireworks/accounts/fireworks/models/<model-name>
发起 API 请求时,OpenClaw 会剥离fireworks/前缀,把剩余路径作为 OpenAI 兼容的model字段发给 Fireworks 端点。
这一逻辑在 extensions/fireworks/index.ts 的resolveFireworksDynamicModel中实现:如果模型 ID 命中内置目录(isFireworksCatalogModelId),直接返回undefined走目录行;否则克隆默认模型模板,按是否 Kimi 模型决定reasoning取值,并通过isFireworksGlmModelId(末段匹配/^glm[-_.]/正则)判断输入类型——GLM 为纯文本,其余动态 ID 默认为文本 + 图片。normalizeModelCompat兜底分支会以FIREWORKS_DEFAULT_CONTEXT_WINDOW(256,000)与FIREWORKS_DEFAULT_MAX_TOKENS(256,000)为动态模型补齐上下文与输出上限。
深入原理:为什么 Fireworks 上的 Kimi 思考被强制关闭
流层:请求载荷补丁
Fireworks 以不含独立推理通道的方式服务 Kimi,因此思维链可能出现在可见的content流中。为此,OpenClaw 对每个 Fireworks Kimi 请求发送thinking: { type: "disabled" },并从载荷中剥离reasoning、reasoning_effort、reasoningEffort三个字段。实现位于 extensions/fireworks/stream.ts:wrapFireworksProviderStream仅在 provider 归一化后为fireworks/fireworks-ai、模型 API 为openai-completions且模型 ID 命中 Kimi 判定时生效,通过createPayloadPatchStreamWrapper对流请求载荷打补丁。
策略层:思考等级声明
extensions/fireworks/thinking-policy.ts 为 Kimi 模型 ID 返回固定的思考画像:levels: [{ id: "off" }]、defaultLevel: "off"——即只对外暴露off一个等级。这样手动的/think切换与 provider 策略面(provider-policy surfaces)都会与运行时契约保持一致,避免用户误以为 Kimi 在 Fireworks 上可以开启思考。
判定层:Kimi 模型 ID 正则
extensions/fireworks/model-id.ts 定义了 Kimi 判定正则:
/^kimi-k2(?:p[56]|[.-][56])(?:[-_].+)?$/它匹配kimi-k2p5、kimi-k2p6、kimi-k2.6、kimi-k2-6等末段形态及其带后缀的变体,流层补丁、思考策略与动态模型解析三处共用该判定,保证行为一致。
保留推理的替代路径
如需端到端使用 Kimi 推理能力,可配置 Moonshot provider,将同一模型改经 Moonshot 自有 API 路由,即可获得原生思考输出。跨 provider 的思考等级与推理模型路由方式参见 思考模式 与 模型提供方概念。
守护进程场景下的密钥可用性
如果 Gateway 以托管服务方式运行(launchd、systemd、Docker),Fireworks 密钥必须对该进程可见——仅在交互式 shell 中export是不够的。
警告:仅在交互式 shell 导出的密钥,无法被 launchd 或 systemd 守护进程读取,除非把该环境一并导入。请在
~/.openclaw/.env中设置密钥,或通过env.shellEnv配置,使其对 gateway 进程可读。
OpenClaw 在加载配置时会读取~/.openclaw/.env,因此存放在那里的密钥在每个平台都能被托管 gateway 服务读取到。轮换密钥后,请重启 gateway(或重新执行openclaw doctor --fix)使新密钥生效。
相关文档
- 模型提供方概念:provider、模型引用与故障转移行为的选择
- 思考模式:
/think等级、provider 策略与推理模型路由 - Moonshot provider:经 Moonshot 自有 API 运行带原生思考输出的 Kimi
- 故障排查:通用排障与 FAQ
- Fireworks 插件入口源码 与 插件测试:插件注册、别名、动态模型解析的验证用例
【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 🦞项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考