DeepSeek Harness 插件

dsh-gateway

dsh 多平台聊天网关插件:将 SillyTavern Gateway 的 QQ/Telegram/Discord/飞书/QQ官方/钉钉适配器移植到 DeepSeek Harness,实现通过 IM 远程指挥 dsh 会话。(英文原文)

跳到安装方式

来源信息

GitHub 仓库
JOJO666888888/dsh-gateway
最近更新
2026年8月16日
分类
远程与移动
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/JOJO666888888/dsh-gateway
插件名:dsh-gateway
作者:JOJO666888888

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器2 个文件
README.md来源说明 · 只读预览

@dsh-external/dsh-gateway

将 SillyTavern Multi-Platform Gateway 的核心消息总线/适配器移植为 DeepSeek Harness (dsh)插件,使用户可以在 QQ(OneBot v11)、Telegram、Discord、飞书、QQ 官方机器人、 钉钉等聊天软件中直接向 dsh 下达指令,并收到 dsh 的回复。

功能

  • 六平台适配器:qqtelegramdiscordfeishuqqofficialdingtalk
  • IM 会话 ↔ dsh 会话双向桥接:

- 入站:聊天消息作为用户消息 followup 到对应 dsh agent - 出站:dsh assistant/message 自动回传到原聊天

  • 本地命令:/help/status/reset
  • 模型工具:gateway_sendgateway_status
  • HTTP API:/api/gateway/*(兼容旧网关主要接口)
  • 设置页「网关」面板:可视化编辑各平台配置、凭据、@开关;红绿灯显示启用/运行状态;自动刷新
  • 敏感凭据存 dsh credentials($DSH_HOME/.credentials.yaml,0600),设置文件中只存非敏感配置
  • 保存后立即生效:非敏感配置走 settings 热更新,连接参数/凭据变化自动重启对应适配器
  • 消息队列、重试、分段发送、去重、入站/出站过滤器(移植自旧网关)

架构

聊天软件 (QQ/TG/Discord/飞书/QQ官方/钉钉)
        │ 适配器标准化 InboundMessage
        ▼
 GatewayService(消息总线 + 队列 + 过滤器)
        │ onMessage
        ▼
 DshBridge
   ├─ 本地命令直接回复
   └─ 映射 sessionId = gw-<platform>-<chatId>
        │ ensureAgent(resume/create dsh agent)
        ▼
 dsh agent-loop(指令解析、工具调用、执行)
        │ session/event assistant/message
        ▼
 DshBridge.sendText → GatewayService.sendMessage → 原聊天回复

安装

1. 克隆插件

git clone https://github.com/JOJO666888888/dsh-gateway.git
cd dsh-gateway
npm install --no-audit --no-fund

2. 将插件链接到 dsh profile

编辑你的 dsh profile 的 package.json,例如:

// <DSH_HOME>/profiles/web/package.json
"dependencies": {
  "@dsh-external/dsh-gateway": "link:/绝对路径/dsh-gateway"
}

Windows 示例:

"@dsh-external/dsh-gateway": "link:D:/dsh-gateway"

3. 在 profile 的 cordis.patch.yml 追加插件行

- insert:
    - id: gateway
      name: '@dsh-external/dsh-gateway'
      config:
        enabled: true
        sessionPrefix: 'gw'
        defaultModel: {}
        adapters:
          qq:
            enabled: false
            mode: websocket
            wsUrl: 'ws://127.0.0.1:3000'
            requireMention: true
          telegram:
            enabled: false
            requireMention: true
          discord:
            enabled: false
            requireMention: true
          feishu:
            enabled: false
            appId: ''
            domain: feishu
            requireMention: true
          qqofficial:
            enabled: false
            appId: ''
            sandbox: false
            requireMention: true
          dingtalk:
            enabled: false
            clientId: ''
            requireMention: true

4. 重启 dsh web

dsh --profile web

> 敏感凭据(Bot Token / AppSecret 等)不要在 cordis.patch.yml 中填写,请通过设置界面“网关”面板保存到 dsh credentials。

配置

推荐在 dsh web 设置 → 网关 面板中编辑:

  • 非敏感配置(启用状态、@开关、连接参数、默认模型等)保存到 settings.yamlgateway 分节。
  • 敏感凭据(Bot Token、AppSecret、AccessToken 等)保存到 dsh credentials

$DSH_HOME/.credentials.yaml),界面只显示“已配置/未配置”,不显示明文。

cordis.patch.yml 中的 gateway.config 作为组合 base 层;面板保存的用户配置覆盖 base。 默认全部 enabled: false

平台非敏感关键字段(已精简)敏感凭据(credentials ref)
qqmode / wsUrl / requireMentionGATEWAY_QQ_ACCESS_TOKEN
telegramrequireMentionGATEWAY_TELEGRAM_BOT_TOKEN
discordrequireMentionGATEWAY_DISCORD_BOT_TOKEN
feishuappId / domain / requireMentionGATEWAY_FEISHU_APP_SECRET
qqofficialappId / sandbox / requireMentionGATEWAY_QQOFFICIAL_SECRET / GATEWAY_QQOFFICIAL_TOKEN
dingtalkclientId / requireMentionGATEWAY_DINGTALK_CLIENT_SECRET

defaultModel 可显式指定新 dsh 会话使用的 provider/model;留空时使用 agent-default-model 的当前选择。

从旧网关迁移

config/gateway.json 中:

  • 非敏感 adapters.* → 插件 adapters.*,字段名与结构不变
  • 敏感字段(botToken/appSecret/accessToken 等)→ 迁移到 dsh credentials,不写入 cordis.patch.yml
  • server.authTokenGATEWAY_API_TOKEN credential
  • 旧网关的 session.* / messageQueue.* → 插件 messageQueue.*(可选)
  • 旧网关的 runtime.llm / antiBagu / plugin 不迁移(dsh 使用自身模型与会话体系)

可运行迁移脚本生成非敏感配置片段与凭据写入指引:

node D:\预设\harness-plugins\dsh-gateway\scripts\migrate-gateway-config.mjs

HTTP API

| 方法 | 端点 | 说明 | |------|------|------| | GET | /api/gateway/health | 健康检查 | | GET | /api/gateway/status | 适配器状态 + 活动 IM 会话 | | GET | /api/gateway/config | 脱敏配置 | | GET | /api/gateway/settings | 读取设置(含凭据已配置状态) | | POST | /api/gateway/settings | 保存非敏感设置(mutate ops) | | GET | /api/gateway/credentials | 凭据状态 | | POST | /api/gateway/credentials/set | 设置凭据 | | POST | /api/gateway/credentials/unset | 清除凭据 | | GET | /api/gateway/bindings | 查看会话绑定 | | POST | /api/gateway/bindings | 新增/更新会话绑定 | | DELETE | /api/gateway/bindings/:platform/:chatId | 删除会话绑定 | | GET | /api/gateway/tasks | 查看任务队列 | | POST | /api/gateway/send | 发送消息 | | GET | /api/gateway/sessions | 会话列表 | | GET | /api/gateway/sessions/:platform/:chatId/history | 会话历史 | | DELETE | /api/gateway/sessions/:platform/:chatId/history | 清空会话 | | POST | /api/gateway/adapters/:name/start\|stop\|verify | 适配器管理 | | POST | /api/gateway/verify | 验证全部适配器 | | GET | /api/gateway/logs | 最近日志 | | POST | /api/gateway/sync-commands | 同步命令到平台 |

使用示例

重启 dsh web 后,打开「设置 → 网关」面板,可编辑各平台配置/凭据/@开关, 查看红绿灯运行状态与活动 IM 会话;保存后立即生效。

在 Telegram 中给机器人发私聊:

/help
你好,请列出当前工作区文件

dsh 会为 telegram:<你的ID> 创建/恢复会话 gw-telegram-<你的ID>,执行指令并把 回复发回 Telegram。群聊中需要按适配器配置 requireMention(默认 true)@机器人。

支持远程会话绑定命令:

/sessions                列出可绑定 dsh 会话
/bind <sessionId>        将当前聊天绑定到指定 dsh 会话
/bind current            绑定到当前 dsh Web 会话
/unbind                  解除绑定,恢复默认映射
/tasks                   查看当前任务队列
/regex list              查看正则移除规则
/regex test <正则> [替换] [flags]  测试单条移除规则
/regex test-full <文本>   测试全部移除规则

正则移除规则配置位于 gateway.regexFilter.removePatterns,支持字段:

  • name
  • enabled
  • pattern / find_regex / findRegex
  • replacement / replace_string / replaceString
  • flags(默认 gs
  • trimStrings / trim_strings

每条普通指令会先收到:

✅ 已收到指令 #<requestId>,正在处理...

dsh 回复后收到:

✅ #<requestId> 执行结果:
<dsh 回复内容>

dsh agent 也可以主动调用 gateway_send 工具,向任意已接入平台发送消息。