
dsh-im 是一个面向 DeepSeek Harness(DSH)的 IM 接入插件。它解决一个很具体的场景:DSH 默认跑在本机终端里,任务、审批、会话都离不开电脑屏幕。
而装上这个插件后,机器人就住进了你天天打开的聊天软件——在微信里发条消息就能派任务,在飞书里看着它思考、调工具、流式回复,在地铁上用手机 QQ 批准一次工具调用。接入方式有三种:扫码创建机器人、使用 App Manifest、或直接填已有机器人凭据。

功能特点
九个渠道,一套入口
一个插件、一个「IM 机器人」设置页,统一管理九个 IM 渠道和一个 AI Office Connector。左侧用 Logo 直接切换渠道,不设启用/停用开关,界面跟随 Harness 语言设置在中英文之间即时切换。
每个渠道的接入方式和消息机制各不相同,插件都做了原生适配:
- 飞书:扫码创建机器人,或 App ID + App Secret 手动绑定;长连接收消息,用流式卡片实时显示思考过程、工具进度和回答
- 微信:扫码绑定,走腾讯 iLink 长轮询收发
- 钉钉:扫码创建或 Client ID + Client Secret 绑定;钉钉 Stream 长连接,AI Card 流式显示回答
- 企业微信:App 扫码创建智能机器人,或 Bot ID + Secret 绑定;官方 WebSocket 长连接,原生显示「正在思考中」、工具执行进度和流式回答
- QQ:手机 QQ 扫码创建或 AppID + AppSecret 绑定;私聊显示「正在输入」和流式回答,群聊被 @ 后才回复
- Slack:预置 App Manifest 一键创建应用,填 Bot Token(
xoxb-)和 App Token(xapp-);Socket Mode 长连接,优先走官方流式消息 API - Telegram:@BotFather 生成 Token 即用;默认私聊直答、群聊被提及或回复才响应,还可为每个机器人独立开启私聊白名单安全模式
- Discord:Developer Portal 生成 Bot Token;Gateway v 10 长连接,编辑消息流式显示回答
- WhatsApp:手机扫码关联设备,走 WhatsApp Web 长连接,先显示已读和「正在输入」再发最终回答
多机器人独立管理
同一渠道可以接入多个机器人,每个机器人分别保存凭据、连接状态、工作区和聊天会话映射,互不影响。卡片上可单独切换工作区(填绝对路径或目录选择器)、检查连接、重试连接或移除接入。机器人默认继承 Host 当时的工作目录,之后可随时改。
图片与流式回复
九个渠道都支持把 JPEG、PNG、WebP 和以图片文件发送的 GIF 交给 Harness,可附带文字说明;单张上限 5 MB,单条消息图片总量上限 20 MB。回复层面按各平台能力尽力流式:不支持原生流式的平台,会用编辑消息、卡片更新或最终消息补上。
AI Office Connector:反向连出去
这是项目最特别的部分。它让本机 Harness 主动连接公网 Office——本机不需要公网 IP、端口转发或自己搭 WebSocket 服务。连接器通过 POST /api/harness/connector/heartbeat 完成鉴权和能力握手,再用 SSE 建立下行流;Office 发布任务后,本机拉取、校验工作区与 Preset alias、领取 90 秒租约并每 30 秒续租。工具审批和补充问题会进入 Office 的人工面板,批准、拒绝或文字答案再经 SSE 回到原会话,断线时由租约与心跳恢复。
值得注意的设计:连接测试成功的判断标准,是响应必须是 {"ok":true,"protocolVersion":"office-harness.v1"} 这个精确 JSON——证明命中了兼容的 Connector,而不是碰巧返回 200 的网址。
机器人命令与远程审批
12 条斜杠命令覆盖日常管理:/help、/new(开新会话)、/status(查连接)、/models 与 /model(查/切模型,如 /model 2 或 /model deepseek-official/deepseek-v4-pro)、/stop(停任务不删排队)、/steer(向运行中任务补指令)、/compact(压缩上下文)、/workspace 与 /workspacelist(切/列工作区)、/sessionlist 与 /session(列/绑定历史会话)。交互式提问可回选项序号或自定义文字,多选用逗号分隔;远程审批直接回「批准/拒绝/同意/不同意/yes/no」。
隐私与安全设计
所有 Secret 和 Token 只提交给本机 Harness Host,写入受保护的凭据存储;状态接口和机器人列表不会回传这些凭据,浏览器只拿到二维码、Manifest 和脱敏状态。IM 管理 RPC 默认仅接受回环浏览器,如需局域网使用要显式配置。Telegram 安全模式下,机器人忽略全部群聊、只接受白名单中的数字 User ID,空白名单会拒绝所有入站消息。README 也明确提醒:命令对任何可见用户开放,/session 等命令能接续会话并触发工具,务必只对可信用户开放。
上手教程
安装
推荐 npm 稳定版:
重启 dsh web,打开「设置 → 插件 → IM 机器人」即可。想试尚未发布的最新代码,可改用 GitHub 源安装器 npx -y github:xmanrui/dsh-im install(pnpm 10 以上可能需先在 profile 的 pnpm-workspace.yaml 中允许构建脚本,普通用户建议用 npm 稳定版)。
接入渠道
进入对应渠道页面,按内置引导操作即可:飞书/钉钉/QQ/企业微信类扫码创建机器人最快;Slack 用预置 Manifest 建应用后填两个 Token;Telegram/Discord 各自从 BotFather 和 Developer Portal 拿 Token;WhatsApp 用手机扫码关联设备。填写的凭据只进本机凭据存储,不会回传浏览器。
日常使用
在机器人聊天里发普通消息即开启会话(默认继承 Harness 的 agent-presets.default)。跑长任务时用 /stop 停、/steer 追加指令;工具要授权时直接在聊天里回「批准」;想接续之前的进度,用 /sessionlist 找到 Session ID 后 /session 绑定。机器人离线时卡片上会出现「重试连接」,不用了可「移除接入」。
我的使用感受
把 Harness 从终端里解放出来这件事,体验比想象中更顺。最打动我的是两点:一是九渠道的适配没有偷懒——企业微信原生「正在思考中」、QQ 的「正在输入」、WhatsApp 的已读回执,每个平台的流式能力都被用上了,而不是统一糊一个「处理中」;二是 AI Office Connector 的「反向连接」思路,让没有公网 IP 的本机也能被远程 Office 调度,配合断线退避重连和租约恢复,设计得很克制。局限也要如实说:命令权限不分管理员和普通用户,开放 /session 前要自己掂量可见范围;Telegram 安全模式这类细粒度管控目前只有部分渠道有;项目迭代很快(v 0.2.0 到 v 0.15.0 只用了五天),接口和配置可能有变动,建议跟 release 走。
官方网站
https://github.com/xmanrui/dsh-im







