dsh-serverchan-bot:把 DSH 會話接到 Server醬³ Bot

前言

在 DeepSeek Harness 裏跑 Agent,輸出多半留在 Web UI 或本地日誌。手機不在電腦前時,定時任務結果、子代理 followup、或你在網頁裏丟進會話的一句話,往往要事後才能看到。反過來,想用手機隨手發一句提示詞驅動同一套會話,又要自己拼推送和入站邏輯。

下面介紹社區插件 dsh-serverchan-bot(維護者 Forget1672,分類:聯網工具)。它在 DSH 與 Server醬³ Bot 之間搭雙向通道:Agent 用工具下行推送到 App;插件按 Bot 輪詢或 Webhook 收上行,把聊天文字送進對應 DSH 會話,並在該輪結束時把最後一條文字回覆發回聊天。多 Bot 時各自 Token、會話和工作目錄可分開配置。

這是什麼

插件倉庫:Forget1672/dsh-serverchan-bot。package.json 顯示當前版本 1.3.4,許可證 MIT,要求 DSH 引擎 ^0.2.2-rc.1。目錄頁:skillhub.cn 插件條目。

一句話:Bridge DSH sessions with a ServerChan³ Bot——下行用 serverchan_bot 工具,上行由插件驅動會話,並支持問題/批准卡片在聊天裏作答、Webhook + cloudflared 輔助、圖形化設置頁。

核心功能

下行與上行

  • 下行:通過 Cordis 工具 serverchan_bot 的 send 把消息推到 Server醬³ App。
  • 上行:每個 Bot 單獨 getUpdates(默認輪詢),或切到 Webhook 由 Server醬³ POST 回調;App 裏發給 Bot 的文字作爲提示詞進入該 Bot 綁定的 DSH 會話;該輪結束後 Agent 最後一條文字回覆自動發回該聊天。處理中可在 App 顯示「正在思考」(typing)。

多 Bot 與會話

每個 Bot 可有獨立 Token、chatId、允許的聊天列表、sessionId / sessionTitle、workspaceId 或 cwd。單 Bot 會話 id 一般爲 session-sc3bot-<chat_id>;多 Bot 未設 sessionId 時爲 session-sc3bot-<bot_id>-<chat_id>。

主動推送與卡片

插件監聽 bot 會話的 turn/end:任意來源的回合結束都會把該輪最後一條文字推到聊天(定時任務、其他插件 followup、Web UI 輸入等),可用 push: false 關閉。會話裏出現問題卡片或工具批准卡片時,可轉到聊天作答(questions 默認開);超時 questionTimeoutMs 後轉回網頁卡片。

接入方式

  • 輪詢(默認):長輪詢秒數可配(0–30,默認 20)。
  • Webhook:設置頁可顯示回調地址與 Webhook 密鑰,並提供「啓動/停止 cloudflared 隧道」;隧道起來後把公網回調填進 App Bot 編輯頁。需本機安裝 cloudflared(資料提及當前環境爲 2026.10.7)。

狀態與約束

輪詢偏移、會話綁定等寫在 profile 下 data/serverchan-bot/state.json;每個 Token 單實例鎖。未填 Token 時插件「已加載但未連接」:工具可調用但會提示配置,不會輪詢。不同 Bot 不能共用同一 Token(兩條輪詢會各答一次)。

準備

  1. 登錄 https://sc3.ft07.com/ ,在 SendKey 頁面記下 uid(即 Bot 的 chat_id)。
  2. 在 Server醬³ App(1.1.0+)裏新建或編輯 Bot,複製 Bot Token(形如 123456:AA...),只保存在本機配置。

安裝與啓用

從 GitHub 安裝(README 原文):

plugin_manager  action=install_bundle  target=github:Forget1672/dsh-serverchan-bot
# 或 CLI:dsh plugin --profile web add github:Forget1672/dsh-serverchan-bot

安裝後補丁條目 id 爲 serverchan-bot。從早期本地包升級時,先 plugin_manager action=remove_bundle target=@local/serverchan-bot,再按上式安裝;配置 id 與會話 id 可保留。

圖形化配置:設置 → Server醬³ Bot。可增刪 Bot、填 Token/chatId、輪詢或 Webhook、Workspace、會話字段及各類開關;保存寫入 profile 的 cordis.patch.yml,保存後插件自動重啓。Token 爲只寫字段,頁面不回顯全文。

單 Bot 最小配置示例(也可用具名環境變量 SERVERCHAN_BOT_TOKEN、SERVERCHAN_BOT_CHAT_ID):

- id: serverchan-bot
  name: "dsh-serverchan-bot"
  config:
    token: "123456:AA..."
    chatId: "1234567"
    workspaceId: "d85960f4-79d3-43df-8978-b3db212be50b"   # 可選

多 Bot 時在 config.bots 下逐項配置;bots 非空時以它爲準,頂層單 Bot 字段會被忽略。

典型用法

工具 serverchan_bot:

發送消息

{ "action": "send", "text": "構建完成", "bot": "work", "chatId": "5755", "silent": false }

單 Bot 可省略 bot;多 Bot 必須指定 bot。

讀收件箱

{ "action": "inbox", "bot": "home", "limit": 20, "drain": true }

查看狀態

{ "action": "status" }

在 App 聊天裏還可直接發命令(不走模型):/stop 取消當前回合,/new 爲該聊天開新會話,/status、/help 查看狀態與幫助。

workspaceId 爲 Workspace 主鍵 UUID,可查 ~/.dsh/storages/workspace.json 中 tables.workspaces.<id>;填錯會導致上行失敗(workspace/not-found)。

適用場景與注意

適合誰:需要在手機上收 Agent/定時任務輸出、用手機對話驅動固定 Workspace 會話、或多賬號(工作/家庭/只推送告警)分開管理的 DSH 用戶。

權限與安全:插件以當前 DSH 進程權限運行,可訪問你會話與工作區內的文件與工具。安裝前請閱讀 源碼與 MIT 許可證,自行覈對 Token 僅存本機、設置頁本機路由需一次性 secret 請求頭。

生態說明:DSH 採用「一切皆插件」;SkillHub 目錄 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-serverchan-bot 把 Harness 會話與 Server醬³ Bot 接成可配置的雙向通道:工具下行、輪詢或 Webhook 上行、回合結束自動回聊,並覆蓋多 Bot、卡片作答與 cloudflared Webhook 輔助。細節以倉庫 README 爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/Forget1672/dsh-serverchan-bot
  • GitHub:https://github.com/Forget1672/dsh-serverchan-bot
羽毛球分组比赛记分
小程序二维码

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

小夜