ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenClaw Fireworks 插件:接入 Fireworks 模型提供商的完整实践

OpenClaw Fireworks 插件:接入 Fireworks 模型提供商的完整实践 OpenClaw Fireworks 插件接入 Fireworks 模型提供商的完整实践【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw本文以 OpenClaw 仓库中的 Fireworks 插件参考文档 为主体结合 Fireworks 提供商文档 与插件源码完整讲解openclaw/fireworks-provider插件的分发方式、安装配置步骤、内置模型目录、模型 id 解析规则与 Kimi thinking 强制关闭机制。读完后你可以独立完成 Fireworks 提供商的接入、定制模型 id、排查凭证问题并理解该插件在 OpenClaw 内部的实现原理。插件概览与分发方式Fireworksfireworks.ai通过 OpenAI 兼容 API 提供开源权重模型与路由router模型。OpenClaw 通过独立的官方提供商插件接入它插件的官方定位是Adds Fireworks model provider support to OpenClaw.为 OpenClaw 增加 Fireworks 模型提供商支持按照插件参考文档docs/plugins/reference/fireworks.md的定义其分发与表面Surface信息为属性值包名Packageopenclaw/fireworks-provider安装渠道Install routenpm 或 ClawHubclawhub:openclaw/fireworks-provider提供商 Surfacefireworks带别名fireworks-ai需要注意的一点参考文档头部标注了!-- Generated file. Do not edit by hand. --说明该参考页由pnpm plugins:inventory:gen从插件清单自动生成人工内容只允许写在openclaw-plugin-reference:manual-start与openclaw-plugin-reference:manual-end标记之间。因此插件能力的“事实源头”是插件目录下的清单文件 openclaw.plugin.json而参考文档是其自动投影。插件入口 index.ts 使用defineSingleProviderPluginEntry注册了一个单提供商插件关键注册字段包括id: fireworks别名aliases: [fireworks-ai]catalog: { discoveryMode: strict, allowExplicitBaseUrl: true, liveModelDiscovery: true }即模型目录为严格发现模式、允许显式指定 Base URL、并支持运行时模型发现wrapStreamFn: wrapFireworksProviderStream与resolveThinkingProfile分别负责请求载荷改写与 thinking 策略后文展开resolveDynamicModel运行时接受任意 Fireworks 模型/路由 id 的动态解析钩子。快速开始安装、认证与验证Fireworks 的认证凭据统一使用环境变量FIREWORKS_API_KEY。这一点在插件清单中有双重声明openclaw.plugin.json 中setup.providers声明了envVars: [FIREWORKS_API_KEY]providerAuthChoices则定义了 onboarding 选项fireworks-api-key对应 CLI flag--fireworks-api-key key。第一步安装插件openclaw plugins install openclaw/fireworks-provider第二步设置 Fireworks API key提供三种方式引自 Fireworks 提供商文档# 方式一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_KEYfw-...Onboarding 会把密钥写入fireworks提供商的 auth profiles并将 Fire Pass 的 GLM 5.2 Fast 路由设为默认模型。这一行为在源码 onboard.ts 中可以完整对应applyFireworksConfig通过createDefaultModelsPresetAppliers生成写入primaryModelRef即fireworks/accounts/fireworks/routers/glm-5p2-fast、Base URL、API 类型并注册别名{ modelRef: fireworks/..., alias: GLM 5.2 Fast }。第三步验证模型可用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内置模型目录Built-in Catalog插件清单中内置了 3 个目录模型其核心参数如下数据来自 openclaw.plugin.json 的modelCatalog.providers.fireworks.models模型 ref名称输入上下文窗口最大输出思考Thinking单价$/M tokens入/出fireworks/accounts/fireworks/routers/glm-5p2-fastGLM 5.2 Fasttext256,000256,000开默认2.1 / 6.6fireworks/accounts/fireworks/models/kimi-k2p6Kimi K2.6text image262,144262,144强制关0.95 / 4.0fireworks/accounts/fireworks/routers/kimi-k2p6-turboKimi K2.6 Fasttext image262,144256,000强制关2.0 / 8.0补充两个清单里的细节提供商baseUrl为https://api.fireworks.ai/inference/v1api为openai-completionsOpenAI 兼容defaultModel为accounts/fireworks/routers/glm-5p2-fastKimi K2.6 Fast路由带有兼容项compat.unsupportedToolSchemaKeywords: [not]即该路由的 tool schema 不支持 JSON Schema 的not关键字OpenClaw 在为它构造工具定义时会规避这一关键字discovery配置为fireworks: refreshable配合liveModelDiscovery: true意味着目录可刷新、支持运行时发现新模型。文档同时说明Setup 只保存连接设置与别名不会把生成的目录行复制进你的配置文件若显式设置models.mode: replace则保持目录播种catalog seeding启用、自定义模型行保持完整。这与 onboard.ts 中defaultModels: cfg.models?.mode replace ? buildFireworksCatalogModels() : []的三元判断严格一致。模型 id 前缀规则与动态解析OpenClaw 约定所有 Fireworks 模型 ref 都以fireworks/开头后接 Fireworks 平台上的精确 id 或路由路径例如路由模型fireworks/accounts/fireworks/routers/kimi-k2p6-turbo直接模型fireworks/accounts/fireworks/models/model-name发起 API 请求时OpenClaw 会剥掉fireworks/前缀把剩余路径作为 OpenAI 兼容请求的model字段发给 Fireworks 端点。这个前缀剥离逻辑在 provider-catalog.ts 中可以看到FIREWORKS_DEFAULT_MODEL_ID FIREWORKS_DEFAULT_MODEL_REF.slice(fireworks/.length)目录模型 id 本身不带前缀ref 由前缀 id 组成。任意模型 id 的运行时解析OpenClaw 接受运行时传入的任意 Fireworks 模型或路由 id。动态解析入口是 index.ts 的resolveFireworksDynamicModel其行为可以概括为空 id 直接返回undefined若 id 已在内置目录中isFireworksCatalogModelId命中返回undefined交给目录条目本身处理对未收录的 id克隆默认模型GLM 5.2 Fast 路由作为模板并按 id 特征打补丁若 id 匹配 Kimi 模式isFireworksKimiModelId则reasoning: false输入模态GLM id 标记为[text]仅文本其余动态 id 标记为[text, image]模板克隆失败时兜底为normalizeModelCompat构造的兼容条目openai-completions Fireworks Base URL 目录默认上下文窗口/最大 token 数。其中 GLM 判定函数 isFireworksGlmModelId 取 id 最后一段用/^glm[-_.]/正则匹配Kimi 判定函数 isFireworksKimiModelId 用/^kimi-k2(?:p[56]|[.-][56])(?:[-_].)?$/匹配kimi-k2p5/kimi-k2p6系列及其后缀变体大小写不敏感。自定义模型配置要为其他模型指定不同的能力例如输入模态在 OpenClaw 配置中显式声明自定义模型行即可{ agents: { defaults: { model: { primary: fireworks/accounts/fireworks/models/your-model-id, }, }, }, }Kimi 的 thinking 强制关闭机制这是 Fireworks 插件最核心的实现细节OpenClaw 把所有经 Fireworks 提供的 Kimi 模型固定为thinking: off。原因是 Fireworks 侧的 Kimi 没有独立的 reasoning 通道若不在请求中显式禁用 thinking思维链可能泄漏到可见的content流里。若要端到端使用 Kimi 推理输出官方建议改走 Moonshot 提供商路由同一模型见 Moonshot 文档 与 thinking modes。该机制由三层代码共同保证请求载荷改写stream.ts 的wrapFireworksProviderStream在 provider 为fireworks/fireworks-ai、API 为openai-completions且模型 id 命中 Kimi 模式时用createPayloadPatchStreamWrapper包装流注入payload.thinking { type: disabled }; delete payload.reasoning; delete payload.reasoning_effort; delete payload.reasoningEffort;即发送 Anthropic 风格的 thinking 关闭开关并从载荷中剥离reasoning、reasoning_effort、reasoningEffort三个字段防止任何一层配置把 thinking 重新打开。Thinking 策略对齐thinking-policy.ts 对 Kimi id 返回{ levels: [{ id: off }], defaultLevel: off }非 Kimi id 返回undefined走通用策略。这保证手动/think切换和提供商策略表面都只呈现off一个档位与运行时契约一致。目录层声明清单中两个 Kimi 模型的reasoning均为false与上述运行时行为一致。对应的测试用例位于 stream.test.ts、index.test.ts 与 onboard.test.ts覆盖了载荷改写、动态模型解析与 onboarding 写配置的边界行为可作为行为契约的参考。守护进程场景下的环境变量可见性若 Gateway 以托管服务运行launchd、systemd、Docker 或容器Fireworks 密钥必须对该进程可见而不仅仅是你的交互式 shell。文档给出的明确警告仅在交互式 shell 中export的密钥不会传递到 launchd/systemd 守护进程除非该环境被导入。应将密钥写入~/.openclaw/.env或通过env.shellEnv配置使 gateway 进程可读。OpenClaw 在加载配置时会自动加载~/.openclaw/.env因此存放在那里的密钥可以在所有平台上被托管的 gateway 服务读到。轮换密钥后需要重启 gateway或重新执行openclaw doctor --fix。小结回到参考文档给出的最小事实——包名openclaw/fireworks-provider、ClawHub 安装路由clawhub:openclaw/fireworks-provider、Surfacefireworks——它们在源码中的落点分别是 package.json、openclaw.plugin.json 的providers: [fireworks]与 index.ts 的PROVIDER_ID fireworks。整个插件以“OpenAI 兼容 API 严格目录 运行时动态发现”为骨架用前缀剥离实现任意模型 id 的接入用流包装与 thinking 策略双重保障 Kimi 的思维链不外泄是 OpenClaw 提供商插件体系中一个典型的“清单即事实、钩子即行为”的实现样本。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表