OpenClaw Baseten Provider 插件实战接入 Inkling 与 Baseten 托管模型 API【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw本篇围绕 OpenClaw 官方的 Baseten Provider 插件展开先讲清它是什么、装什么、配什么再结合插件源码剖析模型目录的实时发现与离线回退机制、按模型定制的 thinking推理力度控制实现以及流式请求载荷的补丁逻辑。读完后你可以独立完成openclaw/baseten-provider的安装与配置并理解它如何在认证发现成功/失败两种状态下保持模型选择可用。插件定位与基本属性插件的 READMEextensions/baseten/README.md一句话定义了它的身份Official OpenClaw provider plugin for Baseten Model APIs, including Thinking Machines Labs Inkling—— 即把 Baseten 托管的 OpenAI 兼容 Model APIs含 Thinking Machines Lab 的 Inkling 模型作为一个标准 provider 接入 OpenClaw。结合插件清单 openclaw.plugin.json 与 package.json关键属性如下属性值Provider idbasetennpm 包名openclaw/baseten-provider安装来源npm 或 ClawHubclawhub:openclaw/baseten-provider默认走 npm认证环境变量BASETEN_API_KEYOnboarding 选项--auth-choice baseten-api-key直接 CLI 参数--baseten-api-key keyAPI 协议OpenAI 兼容openai-completions支持流式 usage 上报Base URLhttps://inference.baseten.co/v1默认模型thinkingmachines/inkling完整 refbaseten/thinkingmachines/inkling插件激活activation.onStartup: false、enabledByDefault: true即默认启用但不随网关启动即加载版本约束当前包版本2026.9.3要求宿主minHostVersion: 2026.7.2、pluginApi: 2026.9.3从源码结构看插件入口 index.ts 通过defineSingleProviderPluginEntry组装了四个核心部件catalog模型目录、resolveDynamicModel未知模型的动态解析、wrapStreamFn请求载荷补丁、resolveThinkingProfilethinking 等级以及由buildProviderReplayFamilyHooks生成的历史回放钩子family: openai-compatibledropReasoningFromHistory: false分别对应后文的几个小节。安装插件README 给出的安装方式就是全部核心操作openclaw plugins install openclaw/baseten-provider openclaw gateway restart安装后必须重启 gateway 才会加载新插件。插件的自动加载配置在清单的activation字段中onStartup: false意味着它不会在网关启动瞬间强制加载而是按 provider 需求惰性激活enabledByDefault: true保证安装后无需额外开关。认证与 OnboardingBaseten 的 Basic 计划无月费Model API 调用按用量计费在 Baseten 控制台的 API key 设置页app.baseten.co/settings/api_keys创建密钥后即可接入。OpenClaw 提供了三种等价的认证配置路径详见 docs/providers/baseten.md# 方式一交互式 onboarding openclaw onboard --auth-choice baseten-api-key # 方式二非交互式直接传入密钥 openclaw onboard --non-interactive --accept-risk --skip-health \ --auth-choice baseten-api-key \ --baseten-api-key $BASETEN_API_KEY # 方式三仅设置环境变量 export BASETEN_API_KEY...Onboarding 的行为由 onboard.ts 实现。它基于createModelCatalogPresetAppliers构造了两个应用函数applyBasetenConfig写入 Baseten provider 完整预设 ——providerId: baseten、api: openai-completions、baseUrl: https://inference.baseten.co/v1、完整静态模型目录并注册别名Inkling指向默认模型 refapplyBasetenSetupConfig认证应用路径只有当用户显式配置了models.mode: replace时才附带内置目录否则不复制目录到配置因为 replace 模式禁用了隐式发现需要目录兜底。换言之onboarding 只保存连接设置不会把生成的模型目录灌进你的配置已有的 model 行保持不变——后续模型列表以实时发现结果为准。模型目录实时发现与离线回退这是插件设计中最有含金量的一环核心逻辑在 index.ts 的catalog.run先通过ctx.resolveProviderAuth(baseten)解析apiKey与discoveryApiKey无可用密钥返回buildStaticBasetenProvider()静态目录离线模式有可用密钥调用buildOpenAICompatibleLiveProviderCatalog以discoveryMode: strict请求 Baseten 的GET /v1/models发现超时10_000ms、结果 TTL5 * 60 * 1000ms5 分钟缓存并用projectBasetenLiveModels把返回行投影成 OpenClaw 模型行。投影规则定义在 models.ts 的projectLiveModel中值得逐条理解丢弃object ! model或缺少id的行按id去重context_length/max_completion_tokens用readPositiveInteger校验必须是安全整数且 0无效时回退到静态目录值再回退到默认值DEFAULT_CONTEXT_WINDOW 128_000、DEFAULT_MAX_TOKENS 8_192pricing.prompt/pricing.completion/pricing.input_cache_read经readPerTokenPrice换算成每百万 token 价格* 1_000_000并保留 9 位小数取不到时回退静态目录价若响应带supported_features数组则据vision决定输入模态[text,image]或[text]、据reasoning/reasoning_effort决定推理能力标记否则沿用静态目录的 fallback 值。这意味着Baseten 独立于 OpenClaw 发布节奏增删改模型时插件会刷新模型 id、上下文/输出上限、输入模态与计价同时保留模型级的传输策略applyLiveReasoningEffortCompat只调整supportsReasoningEffort相关字段。当前清单中内置的静态回退目录openclaw.plugin.json 的modelCatalog.providers.baseten.models包含 9 个模型模型 id名称输入上下文最大输出推理deepseek-ai/DeepSeek-V4-ProDeepSeek V4 Protext262k262k✓zai-org/GLM-4.7GLM 4.7text200k200k✓zai-org/GLM-5.2GLM 5.2text524k262k✓zai-org/GLM-5.2-FastGLM 5.2 Fasttext524k262k✓thinkingmachines/inklingInklingtext, image1.048M32k✓moonshotai/Kimi-K2.6Kimi K2.6text, image262k262k✓moonshotai/Kimi-K2.7-CodeKimi K2.7 Codetext, image262k262k✓nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55BNemotron Ultratext202k202k✓openai/gpt-oss-120bGPT OSS 120Btext128k128k✓官方文档 docs/providers/baseten.md 的Bundled fallback catalog表格还列出了zai-org/GLM-5、zai-org/GLM-5.1、moonshotai/Kimi-K2.5、nvidia/Nemotron-120B-A12B等历史版本条目说明静态目录随版本演进会有增减以认证后实时目录为权威。此外还有一个前向兼容设计resolveBasetenDynamicModelmodels.ts允许使用尚不在内置目录中的模型 id—— 只要 id 不在静态目录里就按openai-completions Baseten Base URL 构造一个默认 128k/8192 的兜底定义配合isModernModelRef: () true直接放行。验证目录是否生效openclaw models list --provider baseten有可用认证时插件会请求GET /v1/models并列出账户启用的全部模型无认证则停留在离线回退目录。Thinking推理力度的模型级映射Baseten 上的模型对思考开关的接口并不统一插件在 models.ts 中按模型 id 分了三类Chat-template 思考模型CHAT_TEMPLATE_THINKING_MODEL_IDSGLM-4.7 / GLM-5.2 / GLM-5.2-Fast、Kimi K2.6 / K2.7-Code、Nemotron-3-Ultra —— 通过 Baseten 的chat_template_args.enable_thinking控制默认关闭GLM 5.2 系额外暴露none / high / max三档其中adaptive映射到max完整 reasoning_effort 模型DeepSeek-V4-Pro、GPT OSS 120B支持none到max全档位而默认模型Inkling支持none / minimal / low / medium / high / xhigh无maxadaptive映射到xhigh。用户可见的 thinking 等级由 thinking.ts 的resolveBasetenThinkingProfile决定GLM 5.2 系返回off / high / max三档 profile默认off其余 chat-template 思考模型返回二值 profile{ off, low(显示为 on) }默认off其他模型返回undefined即走 OpenClaw 默认 reasoning_effort 通道。请求侧的落地逻辑在 stream.ts 的createBasetenThinkingWrapper它用createPayloadPatchStreamWrapper在发出请求前打补丁仅对provider baseten且api openai-completions的模型生效DeepSeek V4 特例其推理默认开启只有显式off才移除必要的回放元数据因此统一走normalizeOpenAICompatibleReasoningReplaystripAssistantMessagesOnly: true、replaceNullReasoningContent: true其他 chat-template 思考模型在不覆盖调用方已有参数的前提下把enable_thinking: thinkingLevel ! off合并进payload.chat_template_args。配置示例对 Inkling 的日常使用最简配置只需指定主模型{ agents: { defaults: { model: { primary: baseten/thinkingmachines/inkling }, }, }, }会话内切换模型可用/model baseten/thinkingmachines/inkling -s。Inkling 支持文本图像输入、工具调用、结构化工具 schema、可配置推理力度上下文窗口 1.048M token、最大输出 32k token。若要显式固定 provider例如锁定 Base URL 或密钥来源可参考 docs/providers/baseten.md 的 Manual config 写法{ env: { vars: { BASETEN_API_KEY: ... } }, agents: { defaults: { model: { primary: baseten/thinkingmachines/inkling }, }, }, models: { mode: merge, providers: { baseten: { baseUrl: https://inference.baseten.co/v1, apiKey: ${BASETEN_API_KEY}, api: openai-completions, models: [ { id: thinkingmachines/inkling, name: Inkling, reasoning: true, input: [text, image], contextWindow: 1048000, maxTokens: 32000, }, ], }, }, }, }注意两点适用前提其一models.mode: replace会禁用隐式发现此时 onboarding 会自动附带内置静态目录兜底其二若 gateway 以守护进程方式运行launchd、systemd、Docker必须保证BASETEN_API_KEY对该进程可见—— 仅在交互 shell 中 export 的密钥对已运行的受管服务不可见。相关源码与文档索引内容路径插件 README安装入口extensions/baseten/README.md插件清单provider 声明、静态目录、认证选项extensions/baseten/openclaw.plugin.json插件入口catalog 组装、动态模型解析extensions/baseten/index.ts模型目录、投影与兼容元数据extensions/baseten/models.tsthinking 等级 profileextensions/baseten/thinking.ts请求载荷补丁enable_thinking / 推理回放extensions/baseten/stream.tsOnboarding 配置应用extensions/baseten/onboard.ts包元信息版本、分发渠道、宿主约束extensions/baseten/package.json官方配置文档步骤、模型表、手工配置docs/providers/baseten.md插件参考页自动生成docs/plugins/reference/baseten.md【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考