前言¶
在 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(两条轮询会各答一次)。
准备¶
- 登录 https://sc3.ft07.com/ ,在 SendKey 页面记下 uid(即 Bot 的
chat_id)。 - 在 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