前言¶
在 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。
仓库与目录:
- GitHub:https://github.com/youshanlian/dsh-plugin-strata
- SkillHub 目录页:https://www.skillhub.cn/plugins/youshanlian/dsh-plugin-strata
插件以当前 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¶
- 在模型列表选择 strata provider 下的模型 → 自动 warm,顶部芯片显示进度与当前加载模型。
- 点击输入区旁 调参 ▸:编辑 run-config,保存后按需点 重启生效;第二区改 聊天设置 后点 保存聊天设置(立即生效)。
- 须先有足够加载中的模型才能保存 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 验证。