前言¶
DeepSeek Harness(dsh)把编码 agent 跑在本机或自托管环境里,日常交互多在 Web GUI 完成。如果你希望在微信、飞书、Telegram 等已有聊天工具里直接驱动同一个 agent——发消息、收回复、远程批准工具调用——通常要为每个平台单独写 bot、维护会话映射,还要自己处理审批与提问的跨端同步。
dsh-im-gateway 是社区维护的 dsh 聚合 IM 网关插件,把多渠道接入、会话路由、远程审批和交互式提问收进一个插件里,通过 dsh 设置页或命令行安装后即可配置。
这是什么¶
dsh-im-gateway(npm 包名 dsh-im-gateway)由 zhuiyueya 维护,在 SkillHub 插件目录 归类为「联网工具」。当前版本 0.3.3,MIT 许可证,GitHub 仓库约 34 stars。
一句话定位:把 dsh agent 接到微信、飞书、钉钉、企业微信、QQ、Telegram、Discord、Slack 等 25+ 聊天渠道,提供统一会话、远程审批、交互提问和扫码接入。
核心功能¶
多渠道接入¶
插件为每个 IM 平台实现 ChannelAdapter,入站消息归一化后交给网关核心 ImGateway,出站按渠道分片发送。README 渠道表列出的完整支持包括 Telegram、Discord、Slack、飞书/Lark、钉钉、企业微信、微信(腾讯 iLink 扫码)、QQ 机器人、LINE、Matrix、Mattermost、IRC、Twitch、Signal、Nextcloud Talk、Synology Chat、Zalo、iMessage(macOS)等。WhatsApp、Nostr 需额外安装对应 SDK;Teams、Google Chat 标注为实验性。
接入方式因平台而异:微信/WhatsApp 支持设备扫码;飞书、QQ、钉钉、企业微信可扫码接入机器人或手动填凭据;Telegram、Discord、Slack 等按卡片指引填写 Bot token。连接状态在设置页统一显示为已连接 / 未连接 / 连接中 / 异常;重启 dsh 后已保存配置自动恢复。
IM 命令与会话路由¶
在已连接的聊天里,以 / 开头的消息作为命令,普通文本则发给 agent。常用命令如下:
| 命令 | 说明 |
|---|---|
/help |
查看帮助 |
/status |
查询当前会话(会话 id、工作区、待批准项) |
/new / /clear |
开启全新会话(per-chat 模式) |
/workspaces |
列出所有工作区 |
/workspace <路径> |
切换工作区 |
/sessions [all\|路径] |
列出会话 |
/continue <会话id> |
继续已有会话(可跨渠道、跨工作区) |
/bind <session-id> |
绑定本机 live 会话 |
/channels |
查看各渠道连接状态 |
/cron list / /cron rm <id> |
管理本聊天的定时任务 |
普通消息结尾加 .. 表示还有后续,!! 立即提交;裸文本在 5 秒窗口内自动合并。长回复按各渠道上限分片,带 (i/n) 序号。
远程审批与交互提问¶
agent 请求工具批准时,请求会推送到对应 IM 聊天;直接回复「批准」「拒绝」(也支持 yes / no / 同意)即可,应答会校验聊天与会话归属。
当 agent 调用 ask_user_question 时,Web GUI 的问题同步发到该会话绑定的全部 IM 聊天;Web 与 IM 均可回答,第一份有效答案生效。单选可回复选项编号或完整标签,多选用逗号分隔,默认回答窗口 600 秒(questionTimeoutSecs 可配)。
聊天级定时提醒¶
定时任务绑定聊天(chatId)而非会话。在聊天里说「每天 9 点提醒我喝水」之类自然语言,agent 可创建提醒;支持一次性、每天、按星期重复,状态落盘,重启后自动恢复。
访问控制与文件发送¶
默认 allowAllUsers: true,开箱即可使用;设为 false 后可配置渠道白名单,未授权用户首次发消息会收到提示并在 Web 设置页出现访问请求。agent 可通过 im_send_file 将工作区文件发送到聊天;微信支持图片、语音转文字、文件、视频。
安装与启用¶
任选一种方式安装。官方推荐通过 npm 注册表安装:
dsh plugin --profile web add dsh-im-gateway
也可让 dsh agent 执行安装提示词,或从 GitHub 克隆/直装:
dsh plugin --profile web add https://github.com/zhuiyueya/dsh-im-gateway.git
克隆安装需先 npm install && npm run build,再 dsh plugin --profile web add <项目绝对路径>。
安装完成后重启一次 dsh web,打开 设置 → IM 网关,按平台指引连接渠道。连接后无需再次重启。
典型用法¶
连接好渠道后,在对应聊天软件里给机器人发消息即可驱动 agent:
/help
你好,帮我看看当前工作区
查询状态、切换工作区示例:
/status
/workspaces
/workspace /path/to/project
/new
需要批准工具调用时,在聊天里直接回复:
批准
或
拒绝
适用场景与注意¶
适合已在用 dsh、又希望从手机或团队 IM 远程驱动 agent 的开发者。微信建议用专用 iLink 账号;WhatsApp 需额外执行 npm i @whiskeysockets/baileys;Signal 依赖本机 signal-cli;iMessage 仅 macOS。
插件以当前 dsh 进程权限运行,可访问工作区与已配置渠道的凭据。安装前应阅读 GitHub 源码 与 MIT 许可证,确认渠道接入方式符合各平台服务条款。SkillHub 为社区独立目录,与 DeepSeek / 幻方无官方从属关系。
开发侧:npm test 当前覆盖 106 个用例;新增渠道需在 src/channels/ 实现 ChannelAdapter 六个方法并注册。
链接¶
- SkillHub 目录页:https://www.skillhub.cn/plugins/zhuiyueya/dsh-im-gateway
- GitHub 仓库:https://github.com/zhuiyueya/dsh-im-gateway
dsh-im-gateway 把多渠道 IM 接入、会话路由、远程审批和交互提问收敛进一个 dsh 插件,适合需要「在常用聊天软件里直接操作 agent」的场景。