前言¶
DeepSeek Harness(DSH)的主 GUI 通常固定在一个端口上,若你希望给同事或自己一套「办事大厅」式界面,又不想在页面里硬编码模型列表、权限档位或会话数据,就需要一个只负责展示与编排、业务全部向宿主实时索取的前端壳层。下面介绍社区插件 dsh-gov-workbench(维护者 zbzbhshs):它在插件自有端口拉起政务门户风格 WebUI,浏览器请求经插件层转发,同进程直调宿主 API 网关,对接会话、设置与 Agent 预设等能力。
这是什么¶
dsh-gov-workbench 是分类为「客户端」的 DSH Cordis 插件。包名 dsh-gov-workbench,入口 lib/index.js(ESM),通过 cordis.patch.yml 装配进 profile bundle。默认在 http://127.0.0.1:3091/ 提供界面;事项、模型、权限与统计口径均来自宿主,页面不做业务预设。
真机侧(资料记载:dsh 0.2.0-rc.2、Node v24.18.1、Windows desktop profile)已验证:插件挂载成功,3091 正常监听;/plugin/status 报 hostAvailable: true;session.list 返回真实会话;agentPreset.list 含 standard, ptc, minimal, cordis, computer-use, redteam;settings.describe 驱动系统配置页动态表单;六栏目可切换。仓库内另有 138 项基于 mock ctx 的自动化测试。
界面六栏目:工作台首页、事项办理、卷宗档案、运行轨迹、系统配置、规章制度(README 中有各栏说明与截图路径,截图由演示数据生成,非本机真实内容)。
架构要点¶
插件跑在 dsh 主进程内,在默认 3091 端口起 node:http 服务(绑回环),public/ 静态页通过 HTTP/SSE 访问;lib/host.js 绑定 ctx.typertGateway(0.2.0+)或旧版 ctx.apiProxy,同进程直调、不经网络二次跳转,浏览器只与 3091 同源,避免 CORS 与把宿主令牌暴露给浏览器。页面侧使用 session.list 这类 wire 写法,由插件映射到宿主真实 namespace。
主要模块(README):index.js(Cordis 主体)、host.js(网关与参数投影)、bridge.js(/api/* RPC 与卷宗导出)、security.js(来源/令牌准入)、transport.js / sse.js(HTTP 信封与 SSE)、static.js(静态托管)、config.js(配置与令牌)。
安装与启用¶
前置条件¶
| 项 | 要求 |
|---|---|
| dsh | 集成面以 0.2.0-rc.2 为准(lib/host.js 会做能力探测,其它版本也可能运行) |
| Node | ≥ 22.19(package.json 的 engines) |
| 端口 | 3091 空闲(刻意避开主 GUI 3080 与原版 gov-portal 3081) |
| profile | CLI 不能用 --profile desktop(由 Electron 独占);测试请用 web 或自建 profile,下文记为 <PROFILE> |
确认版本:
dsh --version # 期望 0.2.0-rc.2(与资料对齐时)
node --version # 期望 v22.19.0 或更高
把源码放到目标机¶
工程无运行时依赖、无需构建。README 推荐将目录打包 zip 拷到测试机解压,得到绝对路径 <PLUGIN_DIR>(例如 ~/plugins/dsh-gov-workbench/package.json 存在即可)。若使用 github: 源安装,目标机 PATH 中需有 git(pnpm 会调用 git ls-remote);否则可用本地路径安装。
安装命令(来自 README)¶
推荐联调时使用 link: 软链到源码目录:
dsh plugin --profile <PROFILE> add "link:<PLUGIN_DIR>"
示例(macOS / Linux):
dsh plugin --profile web add "link:/home/user/plugins/dsh-gov-workbench"
示例(Windows):
dsh plugin --profile web add "link:C:\plugins\dsh-gov-workbench"
其它写法(README 表格):
| 场景 | 命令 |
|---|---|
| 拷贝到 profile store、与源码解耦 | dsh plugin --profile web add "file:<PLUGIN_DIR>" |
| 在 profile 目录附近相对路径 | dsh plugin --profile web add "../dsh-gov-workbench" |
| 已发布到 registry | dsh plugin --profile web add dsh-gov-workbench |
安装前确认 echo $DSH_HOME 指向本机 dsh home。包在 package.json 中声明了 dsh.bundle.patch 指向 ./cordis.patch.yml,安装后会 reconcile 进 profile 的 bundle 栈;未声明 dsh.bundle 的包只会作为普通依赖并告警。
安装完成后重启对应 profile 的 dsh 进程,浏览器访问 http://127.0.0.1:3091/ 检查六栏目与 /plugin/status。
典型用法¶
- 浏览与办理:在「事项办理」中通过 wire API(如
session.prompt)提交对话;资料记载真机上session.projections的asOfSeq会随回合增长,宿主可自动生成会话标题。 - 卷宗与轨迹:「卷宗档案」支持会话索引、检索与 JSONL 导出;「运行轨迹」展示事件流水并可按字级输出过滤。
- 系统配置:「系统配置」由
settings.describe的 schema 动态生成表单(真机验证 24 个宿主命名空间可渲染且可写)。 - 联调:使用
link:安装时,改插件源码后重启 dsh 即可生效。
审批/提问弹窗的 respond 回环与 sessionStats 统计口径的逐项核对,README §8 列为已知限制,使用前可查阅仓库 docs/。
适用场景与注意¶
适合:需要在 DSH 宿主旁挂一套政务门户式 Web 工作台、且希望会话、Agent 预设、设置项与宿主保持一致的开发者或内网演示环境。
注意:
- 插件与 dsh 同一进程、同一权限运行;安装前应阅读 GitHub 源码 与 MIT 许可证(
package.json1.0.0),自行评估安全与合规。 - 社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本包是社区贡献的客户端层之一。
- 勿将 README 截图中的演示标题、路径当作本机数据;生产使用前在目标 profile 与 dsh 版本上复现 README 第三节的验证步骤。
结尾¶
dsh-gov-workbench 用独立端口 3091 提供政务门户界面,把展示与 RPC 编排留在插件侧,把会话、模型与配置留给宿主网关。若要查看分类与简介,可打开目录页;若要安装细节、架构图与测试说明,以 GitHub README 为准。
- 目录页:https://www.skillhub.cn/plugins/zbzbhshs/dsh-gov-workbench
- GitHub:https://github.com/zbzbhshs/dsh-gov-workbench