DeepSeek Harness 插件:OpenRouter 免费模型面板

DSH 的生态理念是「一切皆插件」。在使用 llm-pi-ai 适配器时,其 models 列表直接替换路由的 catalog,且该 catalog 不会自我刷新。这意味着若想使用 OpenRouter 的免费模型,通常需要手动维护 settings.yaml。

dsh-openrouter-free 插件旨在填补这一自动化缺口。它通过 GUI 提供免费模型清单,支持一键切换并自动适配推理档位,免去手动配置的麻烦。

核心功能

免费清单面板
GUI 会话视图新增「免费模型」标签页。这里实时列出 OpenRouter 全部免费模型(包含名称、ID、上下文窗口及图片/推理支持情况)。插件内置 10 分钟内存缓存,支持手动强刷。

一键切换
点击列表中的任意行,插件会将该模型 ID 写入 llm-pi-ai.providers.openrouter.models,同时通过原生 sessionController.selectModel() 更新当前会话的模型选择,并同步更新 agent-default-model。这种会话级 + 全局双写的机制能确保切换立即生效,无需重启。

推理档自动预校验
切换模型时,插件会从高到低尝试该模型支持的档位(low/medium/high)。若模型不支持推理,会自动移除 reasoningEffort 参数,避免因参数不匹配导致请求失败。

凭据面板
内置 OpenRouter API Key 设置入口。若检测到密钥缺失,会直接提示补填。

全部装进选择器
执行「全部装进选择器」操作后,所有免费模型会被写入路由。之后用户既可通过本插件切换,也可直接使用 DSH 自带的原生模型选择器。

安全保留手工条目
插件在同步或切换模型时,会保留所有非免费的手工条目(例如 stealth/ox-alpha 等精调条目)。「全部装进选择器」操作也仅刷新免费条目。

安装

本插件需手动复制源码并注册 bundle。

# 复制源码到 profile 的 node_modules 目录
Copy-Item -Recurse -Force . "C:\Users\73618\.dsh\profiles\web\node_modules\dsh-openrouter-free"
// 编辑 profile 的 package.json,在 dsh.profile.bundles 中追加 "dsh-openrouter-free"
// 示例片段
"dsh.profile.bundles": [
  "dsh-openrouter-free"
]

安装完成后需要重启 DSH(host 改动需重启;client 改动硬刷新即可)。

典型用法

插件提供 HTTP API 接口 POST /__orfree/api,支持以下操作:

方法 参数说明 说明
free.list({refresh}) refresh (可选) 获取免费清单。缓存 10 分钟,传入 refresh: true 可强刷。
current() 无 获取当前 agent-default-model 与已装入的模型 ID 列表。
model.use({id}) id (必填) 安装单个免费模型并设为当前对话模型。
sync.all() 无 将所有免费模型装入 openrouter 路由。
free.remove({id}) id (必填) 移除某个免费模型(当前选中模型拒绝操作)。

前置条件与注意事项

前置条件
本机 settings.yaml 中必须已配置 llm-pi-ai.providers.openrouter 路由(baseURL: https://openrouter.ai/api/v1)。同时,环境变量 OPENROUTER_API_KEY 必须存在,即使拉取清单本身是公开 API,使用免费模型进行对话仍需密钥。

注意事项
* 插件运行在当前 DSH 进程权限下,安装前建议检查源码与许可证(MIT)。
* settings.yaml 的更新在下一次请求生效,无需重启 DSH。
* DSH 社区目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系,本插件为社区维护项目。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜