dsh-workbuddy2api-connect:把 WorkBuddy2API 网关模型目录同步进 DSH

前言

在 DeepSeek Harness(DSH)里接 WorkBuddy2API 这类 OpenAI 兼容网关时,常见做法是手写 cordis.patch.yml 里的 provider 路由。@deepseek-ai/dsh-llm-pi-ai 能配 id、name、contextWindow、maxTokens,但思考档位(reasoningEfforts)往往要手工补;设置界面也不提供档位控件,维护成本高。网关增删模型后,通常还要改配置并重启 DSH 才生效。

下面介绍社区插件 dsh-workbuddy2api-connect(维护者 che246,分类:工作流):从网关 GET /v1/models 拉取模型名、思考档位、最大上下文、最大输出与图像能力,映射后注册进 DSH,并提供可视面板增删路由、改分组名称 / URL / Key,保存即热重注册,无需手写完整路由表,也无需为改路由而重启。

这是什么

dsh-workbuddy2api-connect 是 DSH 的 bundle 插件,把 WorkBuddy2API 网关的模型目录自动同步进宿主,并注入浏览器端配置卡片。数据流大致如下:

WorkBuddy2API 网关  GET /v1/models
        │  id / name / reasoning_supported_efforts / context_length / max_output_tokens / supports_images
        ▼
dsh-workbuddy2api-connect   (拉表 → 映射 → 注册 provider;界面负责增删路由)
        ▼
DSH  @deepseek-ai/dsh-llm-pi-ai  →  模型选择器里的一个分组(模型 + 推理等级 + 上下文窗口)

插件以当前 DSH 进程权限运行;安装前建议自行查看源码与许可证。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

自动同步模型表

插件按配置的路由请求网关 OpenAI 兼容地址下的 /v1/models,把返回字段装配成 DSH provider 可用的模型列表,包括:

  • 模型 id / 显示名
  • 思考档位(reasoning_supported_efforts)
  • 最大上下文(context_length)
  • 最大输出(max_output_tokens)
  • 是否支持图像(supports_images)

cordis.patch.yml 层可配置刷新周期、超时等,例如:

- id: llm-workbuddy2api
  name: dsh-workbuddy2api-connect
  config:
    refreshMinutes: 30          # 模型表刷新周期(分钟)
    timeoutMs: 20000            # 单次模型表请求上限
    showRate: true              # 模型名后附带积分倍率(仅显示)
    maxTokensCap: 0             # 输出上限钳制(0 = 不钳制)

路由的「种子」可写在同一文件的 config.routes 里;仅当 $DSH_HOME/.workbuddy2api-connect.json 不存在时,会一次性写入该 JSON。之后以界面保存或手工编辑 JSON 为准,避免两处配置互相覆盖。

可视面板:路由与凭据

装好并重启 DSH 后,打开左侧栏 「插件」,在本插件配置区(DSH 0.2.0 的 plugins.bundle.config,按包名 dsh-workbuddy2api-connect 分发)操作。

每条路由一张卡片,三个输入加状态行:

字段 说明
分组名称 模型选择器里显示的分组名(如 work2api-CN)
URL 网关 OpenAI 兼容基地址(如 http://192.168.1.201:7863/v1)
Key 网关 API Key;只写不回显,已保存时留空表示不改

路由 id(= provider 名)与凭据名由分组名称自动派生(中文等非 ASCII 名称会退化为 wb2api 等规则,详见 README)。路由 id 只在新建时派生,改分组名称只改显示名,不会把已有会话里的 {provider, model} 指空。

底部按钮:保存并生效(写入 + 热重注册 + 重拉模型表)、立即刷新模型表、重新读取。状态行会汇总模型数量、上下文范围、思考档与最近刷新时间;拉取失败时原样展示网关错误(如 HTTP 401 invalid_api_key)。

密钥写入 DSH 凭据库(ctx.credentials refs,即 ~/.dsh/.credentials.yaml);插件配置文件里只有凭据名,无明文 Key。

模型选择(启用 / 排除)

每张路由卡可折叠 「模型选择(启用 N / 共 M)」:

  • 勾选表示启用;未勾选进入 exclude,不会注册进 DSH
  • 支持全选 / 全不选与关键字过滤
  • 新建路由时可点 「拉取模型(按当前 URL / Key 去网关取)」(POST /probe,不落盘),就地列出清单;常见网络与鉴权错误会写在卡片上

设计采用「排除」而非固定白名单:网关新增模型时默认可用,不会因过期白名单挡住新模型。

显示开关:工作详情「完全展开」

卡片顶部可切换 DSH 的 ui-chat.transcriptView(默认 standard;开启为 verbose,轮次不折叠、命令与思考全部摊开)。与 设置 → 通用 → 工作详情 同步,立即生效,无需重启。headless 宿主无设置服务时开关会禁用,不影响网关同步。

安装与启用

装完或升级后需重启一次 DSH(boot 时注册 provider 与客户端卡片);此后改路由、模型表变化一般不再需要重启。

Web / TUI

dsh plugin --profile web add https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.5.0/dsh-workbuddy2api-connect-0.5.0.tgz

桌面版(推荐手工改配置再 install)

README 说明:dsh plugin add 可能重写 dsh.profile.bundles 并挤掉其它第三方 bundle;推荐把 Release 附件放进本地目录,改 package.json 的 dependencies 与 dsh.profile.bundles,再执行 dsh plugin --profile desktop install。

copy dsh-workbuddy2api-connect-0.5.0.tgz "$env:USERPROFILE\.dsh\local-plugins\"

编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json:在 dependencies 增加指向该 tgz 的 file: 依赖,并在 dsh.profile.bundles 追加 "dsh-workbuddy2api-connect",然后:

cd "$env:USERPROFILE\.dsh\profiles\desktop"
$dsh = "D:\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"
& $dsh plugin --profile desktop install

若使用 dsh plugin --profile desktop add "<附件路径>",装完后请核对 dsh.profile.bundles 是否仍包含其它插件。

从源码打包

npm pack

再按桌面版或 Web / TUI 方式安装生成的 .tgz。

典型用法

  1. 按上文方式安装插件并重启 DSH。
  2. 打开 插件 页,新增或编辑路由:填写分组名称、网关 …/v1 基地址与 Key,可先 拉取模型 确认清单与错误提示。
  3. 在 模型选择 中勾选要暴露给 DSH 的模型,点 保存并生效。
  4. 在模型选择器中选择对应分组下的模型与推理等级,正常发起对话。

首次启动若仅有 cordis.patch.yml 中的种子路由(如默认 work2api-AI / work2api-CN),会写入 ~/.dsh/.workbuddy2api-connect.json;也可在 profile 的 cordis.patch.yml 覆盖同名 id 调整种子,再以界面为准维护。

适用场景与注意

适合谁:已在用或计划用 WorkBuddy2API 网关、希望在 DSH 里自动对齐模型目录与思考档、并希望通过界面管理多路网关的开发者。

兼容性:README 记录 DSH 更新后插件「消失」的常见原因是 profile 的 dsh.profile.bundles 被重置,或预发布版本的 peer 判定问题;插件已不再声明 @deepseek-ai/dsh-* peer。可用仓库内 node tools/check-compat.mjs、node tools/dump-profile.mjs 自检。

安全与权限:插件读取网关 URL、写入凭据引用并以 DSH 进程身份访问网络;安装前请审阅 GitHub 仓库 源码。Node 引擎要求见 package.json:^22.19.0 || >=24.0.0。

结尾

dsh-workbuddy2api-connect 把「网关 /v1/models → DSH provider」这条链路自动化,并用面板承担路由与模型启停,减少手写 cordis.patch.yml 与反复重启。更多信息见 SkillHub 目录页 与 GitHub README。

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

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

Xiaoye