dsh-plugin-strata:在 DSH 里统一管理本地 strata 与 strata-hop

前言

在 DeepSeek Harness(DSH)里接本地推理栈,常见做法是单独配 provider、自己盯模型切换和冷启动。本地 strata 若再叠一层 strata-hop 路由器(默认 127.0.0.1:8080),选模型、预热、看加载进度、改 run-config,往往要在终端、hop 配置和 Web 界面之间来回跳。Agent 侧若要查状态或调参,还得自己拼 HTTP。

youshanlian 维护的 dsh-plugin-strata 把「接入 DSH」「控制 hop」「状态可见」「调参」收进一个 bundle:对推理只读(不发 prompt、不耗 token),写操作限于预热、配置与聊天默认值。下面按安装前置、能力、配置与用法说明。

这是什么

dsh-plugin-strata 是 DSH 的社区插件(MIT,当前 package 版本 1.2.1),定位是 dsh × 本地 strata 的一体化控制面。装上后,在 dsh 里选中 strata 模型时路由器会替你预热,冷启动的约 20–30 秒发生在「选中」一刻,而不是第一次提问时;Web GUI 顶部有状态芯片,输入区旁有「调参」面板;同时提供 strata_hop、strata_status、strata_params 等工具供 agent 操作本机 hop。

仓库与目录:

插件以当前 dsh 进程权限运行;安装前请自行查看源码与许可证。

核心功能

资料与 README 归纳的能力如下(合并自原先可独立安装的若干功能):

1. strata 接入 DSH

Bundle 自带 cordis.patch.yml,默认写入 provider strata(baseURL: http://127.0.0.1:8080/v1,模型 id 需与 hop 配置键一致)。

2. 模型切换路由控制(strata_hop)

工具 strata_hop 管理本机 127.0.0.1:8080 的 strata-hop,支持 status / models / warm / logs。路由器参考实现位于插件包内 router/strata-hop.py(含 /warm、/loaded 等端点)与 router/strata-hop.service。

3. 切换状态监控

默认在 127.0.0.1:8756 提供状态服务(GET /events),Web GUI 顶部状态芯片展示当前加载模型、切换中/空闲、加载进度(悬停可看详情);工具 strata_status 读取实时状态。开启 warmOnSelection(默认 true)时,GUI 选中 strata 模型即 POST /warm 预热。

4. 运行配置调参(run-config)

工具 strata_params 与 GUI「调参」面板:编辑当前加载模型在 hop 维护的 profile 中的 strata run-config(如 sampling.temperature / top_p / top_k / min_p、思考预算、显存预留、MTP、别名表等,与 serve 端可编辑键一致,约 16 项)。保存写入的是下次启动用的配置;要点「重启生效」(或 action: restart)约 25 秒重新拉起同一模型,不发 prompt。

5. 聊天设置(全应用共享默认值)

同一面板第二块:strata 各应用共享的采样与思考档位默认值(经 monitor 代理 GET/POST /settings)。保存即生效、持久化,无需重启;请求里显式带的参数优先于共享默认。

对推理的边界

插件从不向模型发 prompt、不消耗 token;真正切模型仍由 dsh 模型选择器触发。写路径包括:幂等 warm、run-config 调参、聊天设置,以及显式「重启生效」(hop 卸载后 force 再 warm)。

前置条件(系统侧,一次性)

安装插件前,本机应已部署并运行 strata + strata-hop。README 给出的典型路径:

strata-hop:  ~/.local/share/strata-hop/strata-hop.py  (插件 router/ 内有同款源码)
配置:        ~/.config/strata/strata-hop.json         (示例见 router/strata-hop.example.json)
密钥:        ~/.config/strata/strata-hop.env          (STRATA_API_KEY)
systemd:     ~/.config/systemd/user/strata-hop.service(插件 router/ 内有同款 unit)

模型 id 必须与 hop 配置一致;换机器时注意 Linux + systemd 用户会话对日志与单元状态的依赖(README「换到别的机器」一节有进一步说明)。

安装与启用

实测说明见于 dsh 0.2.1-rc.2;bundle 会注册进 profile 的 dsh.profile.bundles,并默认启用 cordis.patch.yml 中的插件行与 provider strata。

已有 dsh CLI 时,对指定 profile(示例为 web)执行:

dsh plugin --profile web add github:youshanlian/dsh-plugin-strata

装好后重启该 profile 的 dsh,即可看到顶部状态芯片与「调参」面板。

未安装 dsh CLI,或希望连引导与校验一起执行,使用仓库根目录 install.sh:

bash <(curl -fsSL https://raw.githubusercontent.com/youshanlian/dsh-plugin-strata/main/install.sh)

可指定 profile:install.sh --profile <name>;预览:--dry-run。

若模型 id 与 hop 不一致,在 profile 补丁层整条替换 llm-pi-ai 的 providers.strata(非内置目录条目需写全 api / baseURL / models)。本机改插件源码即时验证时,才用 file: 链接依赖(见 README「开发模式」)。

社区索引分类为 model;通过 awesome-dsh-plugin 提 PR 上架后,可在 dsh Web 插件页搜索安装——与 DeepSeek / 幻方无官方从属,属社区生态。

插件配置项

在 profile 的插件行 config 中可覆盖(未列出者见 README 完整表):

键 默认 说明
hopUrl http://127.0.0.1:8080 strata-hop 地址
hopConfig ~/.config/strata/strata-hop.json hop 配置
hopEnvFile ~/.config/strata/strata-hop.env 读密钥的兜底文件
apiKeyEnv STRATA_API_KEY hop 鉴权环境变量名
unit strata-hop.service journalctl 跟踪的 systemd user unit
host / port 127.0.0.1 / 8756 状态服务绑定(LAN 访问 GUI 芯片时可设 host: 0.0.0.0)
followJournal true 跟随 hop 日志
pollSeconds 2 被动探测间隔
warmOnSelection true 选中模型即预热
warmProvider strata 仅预热该 provider 的选择

典型用法

GUI

  1. 在模型列表选择 strata provider 下的模型 → 自动 warm,顶部芯片显示进度与当前加载模型。
  2. 点击输入区旁 调参 ▸:编辑 run-config,保存后按需点 重启生效;第二区改 聊天设置 后点 保存聊天设置(立即生效)。
  3. 须先有足够加载中的模型才能保存 run-config;未加载时面板可能只读(source: "file")。浏览器不能直连 hop 写配置,GUI 一律经 monitor 代理。

Agent 工具

strata_hop:查询或操作 hop(status / models / warm / logs)。

strata_status:读取实时切换/加载状态。

strata_params 示例语义(具体参数以工具 schema 为准):

  • action: get — 读当前 run-config 视图
  • action: set + set_json: '{"sampling.temperature": 0.6, "mtp": null}' — 只提交改动的键
  • action: restart — 重启生效当前模型配置
  • action: settings_get / settings_set — 读写共享聊天默认值(settings_set 为全量替换,应先 settings_get 再合并)

monitor 侧 HTTP(默认 :8756):GET /params、POST /params {"set": {...}}、POST /restart {"model": ...};GET /settings、POST /settings {"defaults": {...}}。

自检

node tools/smoke.js [--port 8757]     # 冒烟:监控 + hop 只读与路由校验,不动引擎
dsh --profile web --dump-config       # 校验 bundle/补丁装配

(smoke.js 在插件仓库内,安装后路径以 bundle 解压位置为准。)

适用场景与注意

适合谁:本机已跑 strata + strata-hop,希望在 DSH Web 与 agent 会话里统一预热、看状态、改 run-config 与共享采样默认,而不把 hop 管理脚本散落在多处。

务必注意:

  • 插件权限等于 dsh 进程权限;hopEnvFile、systemd 用户单元、本机 8080/8756 端口均需你本人信任的环境。
  • run-config 保存 ≠ 立刻生效,需「重启生效」才有约 25 秒级别的引擎重载。
  • 聊天设置 POST 为全量替换,留空在 GUI 中表示清除该项。
  • 不要手改 hop 属主的 profile JSON;调参应走 GUI、工具或 monitor 代理。
  • peer 依赖包括 @deepseek-ai/cordis、@deepseek-ai/dsh-tools(README 写明与 dsh 0.2.1-rc.2 段兼容)、@deepseek-ai/schemastery,版本范围见 package.json。

结尾

dsh-plugin-strata 把本地 strata-hop 的控制面收进 DSH:选中即预热、状态芯片可见、run-config 与共享聊天设置可编,agent 可用 strata_hop / strata_status / strata_params 协同,且对推理保持只读。若你已在系统侧配好 strata-hop,可按上文命令安装并重启 profile 验证。

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

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

Xiaoye