zhuiyueya/dsh-im-gateway ↗★ 20
dsh-im-gateway
聚合 IM 网关插件(DeepSeek Harness):把 dsh agent 接入 Telegram / Discord / Slack / 飞书 / 微信 / QQ / WhatsApp / Signal / Teams / LINE / Matrix / Mattermost / Google Chat / IRC / Twitch / Nostr / Nextcloud Talk / Synology Chat / Zalo / iMessage 等 20+ 渠道,统一会话路由、审批桥、白名单与引导式配置。
AI 분석
核心用途是将 DSH 强大的 Agent 能力无缝延伸至主流即时通讯软件。适合需要通过微信、飞书等日常聊天工具与 Agent 交互的用户。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zhuiyueya/dsh-im-gateway2. 连接渠道(之后所有操作都在网页里,无需再碰配置)
打开 dsh Web GUI(默认 http://localhost:3080)→ 设置 ⚙️ → 「🐋 IM 网关」:
- 微信 / WhatsApp:点「连接(扫码)」→ 页面直接弹出二维码,手机扫码确认即连 ✅
- 飞书 / Telegram / QQ 机器人 / Discord / Slack …:点「填写凭据」→ 按提示粘贴 token → 「保存并连接」✅
连接后无需重启,状态实时显示(等待扫码 / 已连接 / 异常)。重启 dsh 后所有已配置渠道自动重连(微信登录态已持久化,无需重复扫码)。
🔧 断开 vs 删除配置:已连接渠道卡片上有两个按钮——「断开」只是临时停用(重启自动恢复);「删除配置」会移除凭据(重启不再连接,需重新配置)。
💡 手动配置方式(可选):在
~/.dsh/profiles/web/cordis.patch.yml写配置,凭据也可用环境变量,见下文「配置」。
3. 开始使用
在连接好的聊天软件里给机器人发消息:
/help ← 可用命令
你好,帮我看看当前工作区 ← 直接聊天 = 驱动 agent
🔔 首次使用需要授权(安全默认):第一次发消息会收到"未授权"提示,同时 dsh 设置 → IM 网关 面板顶部出现 「有用户请求访问」 横幅——点「允许」后即可正常使用,无需手动找用户 ID。
agent 回复实时回推;需要批准时在聊天里回「批准 / 拒绝」;agent 还可以用 im_send_file 把文件(截图/报告)直接发到聊天。
⚙️ 配置
所有配置写在 profile 的 cordis.patch.yml 的 im-gateway 行;凭据也可用环境变量(见下表)。
通用配置
- id: im-gateway
config:
sessionMode: per-chat # per-chat(默认)| bound
cwd: /path/to/workspace # agent 工作目录
provider: deepseek-official # LLM provider(默认跟随 dsh)
model: deepseek-v4-flash # 模型(默认跟随 dsh)
allowAllUsers: true # 默认放行所有用户(开箱即用);管控时改 false
allowedUserIds: # 白名单:按渠道(allowAllUsers=false 时生效)
telegram: ['123456789']
'*': ['u-common'] # 跨渠道通用
mergeTimeoutSecs: 5 # 手机多段输入合并窗口
approvalTimeoutSecs: 120 # 审批超时,超时转回本机批准
summaryOnTurnEnd: true # 每轮结束推送 [✅ 完成] 摘要
stateDir: '' # 状态目录(默认 $DSH_HOME/dsh-im-gateway)
渠道凭据速查
| 渠道 | 配置字段 | 环境变量 |
|---|---|---|
| telegram | token | DSH_TELEGRAM_TOKEN |
| discord | token | DSH_DISCORD_TOKEN |
| slack | token + appToken | DSH_SLACK_TOKEN / DSH_SLACK_APP_TOKEN |
| feishu | appId + appSecret | DSH_FEISHU_APP_ID / DSH_FEISHU_APP_SECRET |
| qqbot | appId + appSecret | DSH_QQ_APP_ID / DSH_QQ_APP_SECRET |
| signal | cli + phone | DSH_SIGNAL_CLI / DSH_SIGNAL_PHONE |
| line | channelToken + channelSecret | DSH_LINE_TOKEN / DSH_LINE_SECRET |
| matrix | homeserver + accessToken | DSH_MATRIX_HOMESERVER / DSH_MATRIX_ACCESS_TOKEN |
| mattermost | serverUrl + token | DSH_MATTERMOST_URL / DSH_MATTERMOST_TOKEN |
| irc | server + nick + channels | DSH_IRC_SERVER |
| twitch | botName + token | DSH_TWITCH_BOT_NAME / DSH_TWITCH_TOKEN |
| nostr | privateKey + relays | DSH_NOSTR_PRIVATE_KEY / DSH_NOSTR_RELAYS |
| nextcloud | serverUrl + user + password | DSH_NEXTCLOUD_URL 等 |
| synology | webhookUrl | DSH_SYNOLOGY_WEBHOOK_URL |
| zalo | accessToken | DSH_ZALO_TOKEN |
| imessage | enabled + imsgPath | DSH_IMSG_PATH |
enabled: true | — (iLink 扫码) | |
enabled: true | — (Baileys 扫码) |
通用配置
- id: im-gateway
config:
sessionMode: per-chat # per-chat(默认)| bound
cwd: /path/to/workspace # agent 工作目录
provider: deepseek-official # LLM provider(默认跟随 dsh)
model: deepseek-v4-flash # 模型(默认跟随 dsh)
allowAllUsers: true # 默认放行所有用户(开箱即用);管控时改 false
allowedUserIds: # 白名单:按渠道(allowAllUsers=false 时生效)
telegram: ['123456789']
'*': ['u-common'] # 跨渠道通用
mergeTimeoutSecs: 5 # 手机多段输入合并窗口
approvalTimeoutSecs: 120 # 审批超时,超时转回本机批准
summaryOnTurnEnd: true # 每轮结束推送 [✅ 完成] 摘要
stateDir: '' # 状态目录(默认 $DSH_HOME/dsh-im-gateway)