dsh-pylon-workbuddy:把 workbuddy2api 网关接进 DSH 的模型推理插件

前言

在 DeepSeek Harness(dsh)里用 WorkBuddy 能力,常见路径是自建 workbuddy2api 网关,再手写 llm-pi-ai.providers.workbuddy:进程要单独常驻,模型元数据要从网关抄进配置,登录脚本在 Windows 上往往还要 bash 和 python3。下面介绍社区插件 dsh-pylon-workbuddy(维护者 rumilhz):它只做进程生命周期和模型目录自动化,协议适配、账号池、熔断等留在 Go 网关侧;自托管,不包一层上游 API。

这是什么

dsh-pylon-workbuddy 是 dsh 的 Cordis 插件(npm 包名 dsh-pylon-workbuddy,家族前缀 dsh-pylon-)。装上之后:

  • dsh 启动时自动拉起网关子进程,退出时回收;若 127.0.0.1 上已有健康网关则复用,不重复拉起、也不杀他人进程。
  • 首次启动读取网关 GET /v1/models,把上下文窗口、输出上限、输入模态、思考档位等写入「设置 → 模型」里可编辑的 workbuddy provider;此后仅在你删空该 provider 时才会整份重建。
  • 提供 7 条斜杠命令完成安装、状态、provider 同步与账号登录。

SkillHub 分类为「模型推理」;GitHub 仓库 rumilhz/dsh-pylon-workbuddy 当前 release 版本为 0.4.0(以 package.json 为准)。

和手工接网关相比

问题 手工接法 本插件
模型元数据 每个模型的 contextWindow / maxTokens / reasoningEfforts / input 手抄;网关增删模型要改文件 首次读 /v1/models,按实测写入 provider
进程管理 需另行常驻 wb2a-server 子进程生命周期绑定 dsh
获取二进制 装 Go → clone → build /wb2api-setup 下载并校验 SHA256
账号登录 上游脚本依赖 bash + python3 插件内 OAuth,纯 Node
分发 配置只在本机 从本仓库 GitHub Release 装 tarball

provider 写在 profile 的 llm-pi-ai 条目下,聊天模型选择器、子代理路由与「设置 → 模型 → 供应商」读的是同一份;你在模型页删掉的模型不会自动被补回(除非你用重建命令,见下文)。

核心功能

进程与 provider

默认 baseURL 为 http://127.0.0.1:7863/v1,apiKeyEnv 为 WORKBUDDY2API_API_KEY。插件把网关字段映射到 dsh 的 LlmResolvedModelInfo(例如 context_length → context.contextWindow,supports_images → inputModalities),无需内置静态模型表。

管理命令

README 列出的 7 条命令:

  • /wb2api-setup:下载网关、准备目录、引导登录、启动并同步模型(一条命令完成初始化,不需要本机 Go 或 python3/bash)。
  • /wb2api-status、/wb2api-start、/wb2api-restart:状态与进程控制。
  • /wb2api-login、/wb2api-account:登录与账号。
  • /wb2api-provider:只读对比网关与本地 provider 差异;--rebuild 只增不删;--rebuild --reset 以网关目录整份覆盖(会覆盖你在模型页的筛选)。

请求序列化约束

插件保证工具结果为 role:"tool",且用户消息在轮内内容与顺序不变,以免破坏上游按对话轮聚合 RequestID 的行为(细节见仓库 docs/turn-level-aggregation.md)。

前置条件

  1. 全局安装 dsh:
npm i -g @deepseek-ai/dsh

插件在 dsh 0.2.0-rc.2 上验证;package.json 声明的 peer 兼容区间为 >=0.1.2-rc.1 <0.2.0-0 || >=0.2.0-rc.1 <0.3.0-0。

  1. 一个 WorkBuddy 账号(国内版与国际版体系独立,选你有的即可)。

  2. 网关二进制由 /wb2api-setup 自动获取;上游延续仓库为 HanawaBanana/workbuddy2api(原 Sliverkiss 仓库已删)。

安装与启用

不要执行 dsh plugin add dsh-workbuddy2api:npm 上该旧名已被他人占用,与本仓库无关。本插件未在 npm 发布,请从 rumilhz/dsh-pylon-workbuddy 的 GitHub Release 安装。

推荐方式(Release tarball URL,示例版本 0.4.0):

dsh plugin --profile web add https://github.com/rumilhz/dsh-pylon-workbuddy/releases/download/v0.4.0/dsh-pylon-workbuddy-0.4.0.tgz

也可先下载 dsh-pylon-workbuddy-<版本>.tgz,再:

dsh plugin --profile web add file:/绝对路径/dsh-pylon-workbuddy-0.4.0.tgz

dsh plugin add 只改磁盘上的 node_modules 与 dsh.profile.bundles,正在运行的 dsh 不会重新加载插件列表。装完后请重启 dsh,再在对话中执行:

/wb2api-setup

首次可指定区域:/wb2api-setup cn 或 /wb2api-setup global。步骤会依次汇报:定位或下载可执行文件(SHA256)→ 生成 config.json 与随机 api_key(仅监听 127.0.0.1)→ 登录 → 启动网关并同步模型。

典型用法

日常推理:在 dsh 聊天或子代理里选择「设置 → 模型」中 workbuddy 下的模型即可,路由与页面编辑共用同一 provider。

网关侧新增模型后,本地目录不会自动跟进。先看差异:

/wb2api-provider

只把网关新增的模型补进配置(不复活你已删的 id):

/wb2api-provider --rebuild

需要与网关目录完全对齐、或 provider 是手写/状态文件丢失时:

/wb2api-provider --rebuild --reset

后者会覆盖你在模型页的筛选;设置卡片上的「完全重建」走的就是这条命令。插件在 <dsh home>/.wb2api/state.json 记录曾提供过的模型 id;写 provider 前会在 profile 外备份 patch,写后读回核对,失败则回滚。

适用场景与注意

适合谁:已在用或打算用 workbuddy2api 自托管网关、希望在 dsh 里统一选模型、少维护进程和 JSON 的开发者。

权限与安全:插件以当前 dsh 进程权限运行,会下载并执行网关二进制、写 profile 与本地状态;安装前请阅读仓库源码与 LICENSE,确认许可证与行为可接受。

已知行为:模型目录默认只在首次创建时从网关同步;之后以你在「设置 → 模型」中的编辑为准。想看网关后来多了哪些模型,用只读的 /wb2api-provider。

生态说明:DSH 社区插件目录(如 SkillHub 本插件页)为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-pylon-workbuddy 把 workbuddy2api 的进程托管和 /v1/models 到可编辑 provider 的落地合成一条安装与初始化路径,适合在 dsh 里做自托管 WorkBuddy 推理。更多信息见 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye