DeepSeek Harness 插件:OpenCode Go 模型同步

前言

DeepSeek Harness(DSH)设置页内置的「获取可用模型」按钮对 catalog 里的 provider 不发网络请求,它直接返回打包在 pi-ai npm 包里的静态快照(OpenCode Go 通常是 19 个模型)。服务端的模型列表变动频繁(上新、下线、暂不可用),静态快照永远滞后。要获取真实的可用模型列表,需要走真实路径:GET /models 拉全集 → 逐个实测 → 写回 settings.yaml。

插件介绍

dsh-opencode-models 是 DeepSeek Harness(DSH)的一个插件。在设置页新增一栏「OpenCode Go 模型同步」,一键拉取 OpenCode Go 服务端的全部模型、逐个实测可用性与视觉能力,并把可用模型写回 llm-pi-ai 的模型列表。

  • 维护者:Retr67
  • 许可证:MIT
  • 技术特点:零构建、零运行时依赖

安装与启用

使用 npx 安装:

npx -y @deepseek-ai/dsh plugin --profile web add https://github.com/Retr67/dsh-opencode-models

安装后重启 dsh web 并刷新页面。

使用步骤

  1. 打开 dsh 设置,找到 OpenCode Go 模型同步;
  2. 点击 「更新最新 OpenCode Go 模型列表」;
  3. 等待进度完成(约 1 分钟:拉列表 + 全部模型两轮探测)。页面会显示新增、保留、移除以及服务端拒绝的模型。

核心功能与策略

插件对每个模型发两类微型真实请求(max_tokens: 1,并发 6)来判定状态:

  • 文本 ping:200 → 可用;400/401 → 明确拒绝(不进列表);403 → 需数据政策 opt-in;5xx → 暂时故障(保留);网络错误 → 无法判定(保留)。
  • 图像 ping:发送 1x1 PNG,200 → 标注 input: [text, image];否则纯文本。

写回 settings.yaml 时有以下保护策略:

  1. 无变化不写:列表与当前配置一致时不触碰文件。
  2. 大量失败中止:超过一半模型”无法判定”(网络层异常)时放弃本次写回,绝不清空列表。
  3. 保留手工元数据:已有条目的 name / contextWindow / maxTokens 原样保留。
  4. 新条目不写死规格:新模型只写 id / name(+ 实测的视觉、思考档位),contextWindow 与 maxTokens 交给 dsh 自己从内置的 pi-ai catalog 解析真实规格。

上下文窗口与最大输出来源

模型条目没有声明 contextWindow / maxTokens 时,插件按以下顺序解析:

  1. 内置 pi-ai catalog 里该模型的真实条目(例如 kimi-k3 → 上下文 1048576、输出 131072)。
  2. catalog 不认识时,回落到路由的 defaultContextWindow / defaultMaxTokens(dsh 默认 262144 / 32768)。

由此推论:不要手填猜的值,一旦条目里写了 contextWindow,它就永久覆盖 catalog 的真实规格。

配置与兼容性

默认目标 provider 是 opencode-go。如需调整,在 profile 的 cordis.patch.yml 里按 entry id 覆盖:

# ~/.dsh/profiles/web/cordis.patch.yml
- id: opencode-models
  config:
    provider: opencode-go
    concurrency: 6
    timeoutMs: 25000
  • 兼容性:dsh ≥ 0.1.0-rc.7(在 0.1.2-alpha.x 上开发验证)。
  • 思考强度:同步的模型带 reasoningEfforts 声明,WebUI 出现思考强度选择器(关闭 / Minimal / Low / Medium / High / Max)。手动设为 false 可禁用。

结尾

本插件通过真实探测填补了静态快照的缺口,能自动补齐上新模型、移除下线模型,并标注视觉能力。所有探测请求会携带该 provider 路由配置里的 headers,部分聚合网关(如 OpenCode Go)要求 x-opencode-session 请求头,请确保配置正确。

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

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

小夜