前言¶
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。