dsh-opencode-go-plus:在 DeepSeek Harness 里接入 OpenCode Go 订阅模型

前言

在 DeepSeek Harness(DSH)里接第三方模型,常见做法是改配置、手填模型表,或装一个 provider 插件。OpenCode Go 走订阅网关,需要正确的会话请求头、实时模型目录,以及和 Harness 各版本设置入口对齐。若目录解析失败或路由冲突,模型会从选择器里消失且往往没有明确提示。

dsh-opencode-go-plus 是面向 DSH 的 OpenCode Go 模型 provider 插件:在 Harness 中订阅 OpenCode Go 模型,支持流式回复、工具调用、图片输入与额度显示;并从网关拉取可用模型目录、展示套餐剩余额度。包说明其是 dsh-opencode-go 的维护分支,针对「模型在网关里存在却不出现在列表」等场景做了修复。当前包版本为 0.4.9(MIT 许可证)。

这是什么

插件通过 DSH 插件机制安装,无需改 DSH 源码。运行时会自动添加 OpenCode Go 所需的会话请求头,从网关获取模型目录;配置入口集中在 设置 → 模型 下的 OpenCode Go(桌面版为可折叠卡片,自 0.3.0 起不再有独立的「设置 → OpenCode Go」分区)。

支持的 Harness 版本(见仓库 README):0.1.6-alpha.1 及以后的 0.1.6 / 0.1.7 系列,以及从 0.2.0-rc.1 起的 0.2 系列(含桌面版与 0.2.1-rc.2)。不同系列使用不同的设置模型,插件在运行时探测并分流。

核心功能

Provider 与会话能力

  • 在 DSH 中作为 OpenCode Go 模型来源,支持流式回复、工具调用、图片输入。
  • 自动附加 Harness User-Agent(attributionHeaders())与 x-opencode-session 等请求头(与上游 dsh-opencode-go 一致)。

实时目录与自动适配

模型列表由内置适配表与网关 /models 实时目录交集,并对未知 ID 做自动适配:

  • 同族匹配:按首词归族,克隆同族模型的协议、参数与容量估计。
  • 全新家族:同族不存在时,按 token 重叠、多数协议与 ID 长度等规则借用全局最接近模型,避免整条丢弃;参数为估计值,可用 modelOverrides 覆盖。
  • 可在 设置 → OpenCode Go → 自动适配新模型 关闭该行为;默认约每 5 分钟重新解析目录(高级设置可调 refreshMinutes)。

每次解析会输出目录统计日志(curated / live listing / adapted / omitted / served),便于排查某个 ID 为何未出现在选择器。

连接状态与用量

  • 桌面版(0.4.2 起):在 OpenCode Go API Key 输入框粘贴密钥后点 保存并检查;可用 刷新状态 重新读凭据、同步路由并检查用量接口。检查使用只读用量与模型目录接口,不发送聊天请求。密钥经 Harness 凭据服务保存,不回显、不写入插件配置或浏览器本地存储。
  • 订阅用量:通过 GET {baseURL}/usage 在插件 usage 面板展示剩余额度;0.4.9 将用量面板改为不透明背景,避免半透明主题下文字与底层干扰。

相对上游 dsh-opencode-go 的修复要点

仓库文档归纳了五处宿主侧改动,均围绕「网关有模型、选择器没有」:

  1. 与基线包同 profile 共存时,避免 model discovery 重复注册导致整棵插件树加载失败;本包不能与 dsh-opencode-go 同时安装,升级前需先卸载旧包。
  2. opencode-go 路由被占用(例如 settings.yaml 里物化的静态模型表)时,改为注册 opencode-go-plus 路由并打 warn,而不是静默放弃整个动态目录。
  3. 全新家族模型不再因找不到同族而被丢弃。
  4. 目录解析结果自检日志。
  5. catalogAdditions 改为可配置(设置 → OpenCode Go),不再硬编码在源码。

安装与启用

插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与许可证。包为预编译产物(仅发布 lib/),engines.node 要求 ^22.19.0 || >=24.0.0。

桌面版(含 0.1.7-rc.2 / 0.2.0-rc.1 / 0.2.1-rc.2)

在 插件 → 添加插件 → Git 仓库 中填写:

https://github.com/HaydenSmith1121/dsh-opencode-go-plus

0.4.1 起无需为本插件单独允许 @google/genai、protobufjs 安装脚本;OpenAI / Anthropic 协议模块已预编译随包分发。若曾卡在「需要允许安装脚本」,应关闭旧安装任务并从上述仓库重新安装,在安装详情中确认版本为 0.4.9 或更新。

Web profile

dsh plugin --profile web add dsh-opencode-go-plus

安装后启动或重启 dsh web,在 设置 → 模型 找到 OpenCode Go 一行,配置 API Key(默认环境变量名 OPENCODE_API_KEY;具体引用位置随 harness 版本在 settings.yaml 或 profile 的 cordis.patch.yml 中,见 README「兼容性」表)。

Headless profile

dsh plugin --profile headless add dsh-opencode-go-plus

示例 patch 与运行方式:

- id: agent-default-model
  config:
    provider: opencode-go
    model: deepseek-v4.1-flash
read -s OPENCODE_API_KEY
export OPENCODE_API_KEY
dsh --profile headless --patch ./headless.patch.yml "你好"

模型 ID 须在当前网关目录中可用。Web 与 Headless 使用不同 profile,需分别安装插件。

典型用法:配置密钥与选模型

登录 OpenCode 官网不会自动连接 Harness。 需在 OpenCode 控制台 确认 Go 订阅并复制 API Key;接入说明见 OpenCode Go 文档。

桌面版步骤:

  1. 打开 设置 → 模型 → OpenCode Go。
  2. 在 OpenCode Go API Key 粘贴密钥,点击 保存并检查(Harness 0.1.7-rc.2 下无需点通用「编辑」)。
  3. 在会话模型选择器中选择 OpenCode Go 下的模型;需要时点击 刷新状态 同步目录与认证。

Web 端:安装插件并重启后,在 设置 → 模型 查看 OpenCode Go 行的 Key 状态(绿点表示已配置),再在会话中选择对应模型。安装插件不会自动更改默认模型。

可选:在设置中维护 catalogAdditions,为网关新 ID 指定同族克隆来源,例如:

llm-opencode-go:
  catalogAdditions:
    - id: deepseek-v4.1-flash
      siblingId: deepseek-v4-flash
      inputSiblingId: deepseek-v4-flash-vision-exp
      name: DeepSeek V4.1 Flash

四条字段须齐全,否则条目会被忽略。

适用场景与注意

适合谁:已在 OpenCode Go 订阅、希望在 DSH(Web、Headless 或桌面版)里用同一套网关模型做智能体开发,并需要动态目录、用量显示与较新 Harness 版本兼容的开发者。

务必注意:

  • 不要与 dsh-opencode-go 同 profile 并存;从上游迁移时先 dsh plugin --profile <profile> remove dsh-opencode-go 再装本包,可参考仓库 examples/migrate-from-fork.patch.yml。
  • 若 opencode-go 路由被 settings.yaml 中 llm-pi-ai.providers.opencode-go 静态表占用,插件会改用 opencode-go-plus 路由;不要在 DSH「设置 → 模型 → opencode-go」里用「获取可用模型 → 添加所选」把目录再次物化进 settings.yaml,否则动态目录问题会复现。
  • 插件请求外网网关与用量接口;密钥与网络策略需自行评估。

DSH 生态强调「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,本文仅作技术介绍。

结尾

dsh-opencode-go-plus 把 OpenCode Go 订阅接到 DeepSeek Harness,在保持与上游协议一致的前提下,修复目录静默丢失、路由冲突与共存加载失败等问题,并把配置收敛到 设置 → 模型。进一步了解可查看社区目录页与 GitHub 仓库 README。

  • 目录页:https://www.skillhub.cn/plugins/DPH-1121/dsh-opencode-go-plus
  • GitHub:https://github.com/DPH-1121/dsh-opencode-go-plus(README 中安装仓库地址为 https://github.com/HaydenSmith1121/dsh-opencode-go-plus)
羽毛球分组比赛记分
小程序二维码

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

小夜