前言¶
DeepSeek Harness(DSH)重启后,只有你在 GUI 里点开过的会话会留在内存里;其余会话仍在磁盘上,并未「活着」。QQ 通道、定时任务、webhook 或其它插件若要把消息投进某间未打开的会话,往往会收到宿主提示:那间会话现在没活着,需要先打开。手工在界面里逐个点开,对自动化集成并不友好。下面介绍的 dsh-wake-up 把「叫醒」做成可复用能力:在会话休眠时,带着它上次使用的模型路由执行 resume,外部消息即可正常投递,且唤醒本身不重复拉起已活着的会话、也不额外调用模型。
这是什么¶
dsh-wake-up 由社区维护者 TiFu799 发布,在 SkillHub 社区目录中归类为「模型推理」。插件当前版本 0.1.0(MIT 许可),定位是:按需叫醒休眠的 DSH 会话,带模型路由 resume,同时提供 HTTP 端点、模型工具与其它插件可调用的服务。
核心功能¶
端点(给脚本用)¶
向本地 GUI 端口 POST 唤醒指定会话;可选 GET 查看状态与最近日志。
curl -X POST http://127.0.0.1:<GUI 端口>/dsh-wake-up/wake \
-H 'content-type: application/json' \
-H 'origin: http://127.0.0.1:<GUI 端口>' \
-d '{"会话":"session-0e4e241e-…"}'
# {"ok":true,"说":"已拉起 0e4e241e","路由":{"provider":"deepseek-account","model":"deepseek-flash","reasoningEffort":"max"}}
GET /dsh-wake-up/state 返回磁盘上的会话、哪些处于活着状态、哪些读到了路由,以及最近日志。
工具(给模型用)¶
模型在需要往未打开的会话投消息时,可调用:
wake_session({ session: "session-0e4e241e-…" })
服务(给别的插件用)¶
其它插件通过注入 wakeUp 服务调用:
export const inject = ['wakeUp']
export function apply(ctx) {
if (await ctx.wakeUp.resume(id)) { /* 现在可以把消息投进去了 */ }
ctx.wakeUp.isAwake(id) // 已经在活着吗
ctx.wakeUp.route(id) // 这间会话会带什么路由去唤醒
ctx.wakeUp.state() // 概况
}
resume 与路由¶
-
resume 必须带路由。 不带
agentOptions(provider / model)时,恢复出来的 agent 没有模型路由,提示词里deployment:persona-prefix的{{model}}无法组装,整轮会报prompt variable "{{model}}" has no value for this assembly。本插件从会话的modelSelection投影读取上次路由,读不到则退回 profile 的agent-default-model。 -
resume 不调用模型。 仅把会话历史读回内存,空闲时 0 次模型请求,开销与在 GUI 里点开会话相当;模型请求只在本轮真正需要出字时发生。
安装与启用¶
市场收录后,在 SkillHub 或 DSH 市场里搜索 dsh-wake-up 一键安装;命令行等价于:
dsh plugin add dsh-wake-up --profile desktop
收录前若需本地试装:在本仓库执行 pnpm pack 得到 dsh-wake-up-0.1.0.tgz,再在 profile 目录安装:
pnpm pack # 产出 dsh-wake-up-0.1.0.tgz
cd ~/.dsh/profiles/desktop && pnpm add <上面的 tgz 路径>
并在 profile 的 cordis.patch.yml 中登记插件(插件本身按 dsh.bundle.patch 自动挂载,此步是让 profile 认识它):
- insert:
- id: wake-up
name: dsh-wake-up
装完刷新页面即可,无需重启 DSH。
可选配置¶
同样在 profile 的 cordis.patch.yml 中可写:
- id: wake-up
name: dsh-wake-up
config:
开机唤醒: # 插件加载 3 秒后先叫醒这几间,默认空
- session-0e4e241e-…
日志上限: 40 # 最近日志留多少条
典型用法¶
-
外部 webhook / 脚本:在投递消息前,对目标
session-<uuid>调用POST /dsh-wake-up/wake,确认返回ok与路由后再写入该会话。 -
通道类插件:在
apply里注入wakeUp,对用户指定的会话 ID 先await ctx.wakeUp.resume(id),再投递消息;可用isAwake避免重复唤醒。 -
长驻集成:配置
开机唤醒,在 DSH 加载插件约 3 秒后自动拉起指定会话,减少首次消息前的等待。
适用场景与注意¶
适合需要在 会话未在 GUI 中打开 时仍接收消息的集成:聊天桥、定时任务、多会话路由、插件间协作等。要求宿主 DSH >= 0.2.1-rc.2(自带 ctx.agents.resume);插件无前端、无额外 npm 依赖,仅使用 agents / webServer / tools 三个宿主服务。在没有 agents.resume 的旧宿主上会安静降级为「叫不醒」,不会因此报错崩溃。
安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。插件与 DSH 进程同权限运行,接入生产环境前应确认唤醒与会话 ID 来源可信。SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-wake-up 把「那间会话现在没活着」从集成阻塞点变成一次带路由的 resume 调用,并同时暴露 HTTP、工具与服务三种入口。目录页:https://www.skillhub.cn/plugins/TiFu799/dsh-wake-up;源码与 README:https://github.com/TiFu799/dsh-wake-up。