在 DeepSeek Harness(DSH)的插件化架构中,Web Profile 的服务重启通常需要手动操作,且容易导致当前会话中断或输出截断。dsh-launcher 旨在解决这一痛点,通过前端状态监控、自动化重启流程以及会话恢复机制,降低维护成本。
这是一个由 Nasbaye 维护的 DeepSeek Harness Web Profile 插件。它提供前端状态徽标、一键重启服务、重启后自动续聊以及截断自动继续的功能。
安装与启用¶
将插件文件路径加入 profile bundle 以启用状态点和 API。
- 在 profile 目录下安装插件:
pnpm --dir %USERPROFILE%\\.dsh\\profiles\\web add file:D:/path/to/dsh-launcher
- 在
%USERPROFILE%\\.dsh\\profiles\\web\\package.json的dsh.profile.bundles中加入:
"dsh": {
"profile": {
"bundles": [ "...", "@dsh-external/dsh-launcher" ]
}
}
- 完整重启 DeepSeek Harness 即生效。
核心功能¶
1. 前端状态点与一键重启¶
- 状态显示:状态点显示在会话头部的 Agent 预设标签(如“标准模式”)右侧,或在新建会话页的模式选择器旁。颜色代表状态:绿(在线)、黄(重启中)、红(离线)。每 5 秒轮询一次。
- 交互操作:点击状态点会向
POST /api/launcher/restart发起请求。重启完成后页面会自动刷新一次,确保拿到最新前端。 - API 接口:
GET /api/launcher/status:获取服务状态(JSON)。POST /api/launcher/restart:重启服务(返回 202,实际由后台 worker 完成)。
2. 重启 Worker 的可靠性¶
重启流程由 restart-worker.js 负责,包含以下保护机制:
- 依赖预检:重启前检查
profiles/web/package.json的 bundles 是否已安装(包含 profile node_modules 和引擎嵌套 node_modules)。如果缺失,会自动运行pnpm install;若安装失败,会中止重启并保持旧服务运行。 - 健康确认:拉起新进程后,会轮询端口最多 90 秒确认服务健康,结果写入
dsh-web.log。 - 无弹窗:在 Windows 下,worker 与子进程均使用
windowsHide选项,避免弹出黑色控制台窗口。
3. 重启续聊 (Resume After Restart)¶
重启前会自动检测“正在进行”的会话(满足 status === 'running'、inbox.hasPending 或 phase.kind === 'maintenance' 之一)。命中的会话 ID 会写入 .dsh-launcher-resume.json。
新进程启动后,会向这些会话发送消息 因 DeepSeek Harness 重启导致对话中断,请继续,让 agent 接着干活。该操作失败会自动重试(每会话最多 5 次,间隔 3 秒)。
4. 截断自动继续 (Auto-Continue)¶
当模型输出达到 token 上限被截断(前端显示“已达到输出 token 上限”)时,插件会自动发送 继续 指令。防循环保护包括:
- 每会话连续自动“继续”最多 3 次。
- 同会话 5 秒冷却。
- 任何非 max-tokens 的轮次结束会重置计数。
- 仅处理顶层会话。
日志与注意事项¶
- 日志:所有行为写入
dsh-web.log,前缀为[launcher ...]或[launcher-worker ...]。 - 适用场景:需要频繁重启服务或处理长上下文任务的 Web Profile 用户。
- 注意:插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。在 Windows 下,如果引擎侧未设置
windowsHide,工具调用可能仍会弹出控制台窗口(这是引擎默认配置,非插件独有)。
总结¶
dsh-launcher 通过前端状态反馈和后端自动化流程,解决了 DeepSeek Harness Web Profile 重启难、中断恢复难的问题。配合截断自动继续功能,能提升长时间运行的稳定性。
- 目录页:nasbaye/dsh-launcher
- 源码:GitHub