DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Im — DeepSeek Harness 插件(DSH Plugin)
← Plugins

@xmanrui/dsh-im

Im

将十一种 IM 渠道和一个公网 AI Office 接入本地 DeepSeek Harness。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:xmanrui/dsh-im#dc7856d8024162af7d470ffdda3c7e547fa214f5
README兼容性版本

兼容性与来源证明

Im 以 @xmanrui/dsh-im 发布,当前版本为 4.23.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/20

版本

4.23.0stable
2026/9/20
4.22.0stable
2026/9/19
4.21.2stable
2026/9/16
查看其余 88 个版本
收起版本
4.21.1stable
2026/9/16
4.21.0stable
2026/9/15
4.20.2stable
2026/9/12
4.20.1stable
2026/9/12
4.20.0stable
2026/9/11
4.19.2stable
2026/9/10
4.19.1stable
2026/9/10
4.19.0stable
2026/9/10
4.18.1stable
2026/9/10
4.18.0stable
2026/9/9
4.17.1stable
2026/9/8
4.17.0stable
2026/9/8
4.16.1stable
2026/9/8
4.16.0stable
2026/9/8
4.15.0stable
2026/9/7
4.14.0stable
2026/9/7
4.13.0stable
2026/9/6
4.12.0stable
2026/9/5
4.11.0stable
2026/9/4
4.10.0stable
2026/9/4
4.9.1stable
2026/9/3
4.9.0stable
2026/9/3
4.8.0stable
2026/9/2
4.7.0stable
2026/9/1
4.6.0stable
2026/9/1
4.5.0stable
2026/9/1
4.4.0stable
2026/9/1
4.3.0stable
2026/8/31
4.2.1stable
2026/8/30
4.2.0stable
2026/8/30
4.1.1stable
2026/8/30
4.1.0stable
2026/8/30
4.0.1stable
2026/8/29
4.0.0stable
2026/8/29
3.2.0stable
2026/8/29
3.1.1stable
2026/8/28
3.1.0stable
2026/8/27
3.0.8stable
2026/8/27
3.0.7stable
2026/8/27
3.0.6stable
2026/8/26
3.0.5stable
2026/8/26
3.0.4stable
2026/8/26
3.0.3stable
2026/8/26
3.0.2stable
2026/8/26
3.0.1stable
2026/8/26
3.0.0stable
2026/8/25
2.6.0stable
2026/8/25
2.5.0stable
2026/8/25
2.4.0stable
2026/8/25
2.3.0stable
2026/8/24
2.2.1stable
2026/8/24
2.2.0stable
2026/8/24
2.1.0stable
2026/8/24
2.0.1stable
2026/8/24
2.0.0stable
2026/8/23
1.5.0stable
2026/8/23
1.4.0stable
2026/8/23
1.3.0stable
2026/8/23
1.2.0stable
2026/8/23
1.1.0stable
2026/8/23
1.0.2stable
2026/8/22
1.0.1stable
2026/8/21
1.0.0stable
2026/8/21
0.19.0stable
2026/8/21
0.18.0stable
2026/8/21
0.17.1stable
2026/8/21
0.17.0stable
2026/8/21
0.16.0stable
2026/8/21
0.15.0stable
2026/8/21
0.14.0stable
2026/8/20
0.13.0stable
2026/8/19
0.12.0stable
2026/8/19
0.11.0stable
2026/8/19
0.10.0stable
2026/8/18
0.9.0stable
2026/8/18
0.8.0stable
2026/8/18
0.7.2stable
2026/8/18
0.7.1stable
2026/8/18
0.7.0stable
2026/8/17
0.6.0stable
2026/8/17
0.5.0stable
2026/8/17
0.4.0stable
2026/8/17
0.3.0stable
2026/8/17
0.2.2stable
2026/8/16
0.2.1stable
2026/8/16
0.2.0stable
2026/8/16
0.1.1stable
2026/8/16
0.1.0stable
2026/8/16

相关插件

正在加载相关插件…

最新版
4.23.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1.4k
周下载
8,043
最近提交
2026/9/20
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 integrations-communication 分类下经过校验的插件。

Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Im Connect@michengai/dsh-im-connectDeepSeek Harness IM 助理:把本机 agent 接到微信、企微、钉钉、飞书、QQ、Telegram,会话与网页任务分列。

README

DSH-IM — Connecting DeepSeek Harness   DSH-IM phone logo


让 DeepSeek Harness 触手可及

Connecting DeepSeek Harness

滑动变祖器:今天是梁子或今天是梁圣(随机)

简体中文 · English


[!NOTE] DSH-IM 已获得 DeepSeek Harness 官方认可,并获得价值 人民币 1,000 元的 Token 额度奖励。感谢官方对本项目的肯定与支持!

简介

通过扫码、App Manifest 或已有机器人凭据把 IM 机器人接入 DeepSeek Harness,并让本机 Harness 主动连接公网 AI Office。一个插件、一个设置入口,统一管理内置 IM 渠道和 AI Office Connector。每个 IM 渠道都支持接入多个机器人,各机器人的连接状态、工作区、模型和会话绑定彼此独立;iMessage 是本机 Messages.app 身份接入的例外,详见iMessage 渠道说明。

Connect IM bots to DeepSeek Harness by scanning a QR code, using an App Manifest, or entering existing bot credentials, and let the local Harness connect outward to a public AI Office. One plugin and one settings entry manage the built-in IM channels and the AI Office Connector.

界面

IM 机器人页面

上下文增强页面 访问模式页面

当前内置渠道

渠道接入方式消息与回复
飞书扫码创建机器人,或使用 App ID + App Secret 手动绑定长连接接收消息;通过飞书流式卡片显示思考、工具进度和回答
微信使用微信扫码绑定机器人腾讯 iLink 长轮询收发消息;等待 Harness 回答时显示“正在输入”,最终回复按 1,800 字符分段发送
钉钉扫码创建机器人,或使用 Client ID + Client Secret 手动绑定钉钉 Stream 长连接;通过 AI Card 流式显示回答
企业微信使用企业微信 App 扫码创建智能机器人,或使用 Bot ID + Secret 手动绑定官方 WebSocket 长连接;原生显示“正在思考中”、工具执行进度和流式回答
企业微信应用在企业微信管理后台创建自建应用,填写企业 ID、AgentId、Secret、Token、EncodingAESKey(可选代理地址)HTTP 回调接收;私聊支持流式回复(微信端不支持时自动改为分段文本),支持图片输入与结果文件回传;成员的微信关注该企业的微信插件后可在微信中直接使用
QQ使用手机 QQ 扫码创建机器人,或使用 AppID + AppSecret 手动绑定WebSocket 长连接;私聊显示“正在输入”并以单条 Markdown 回复,群聊被 @ 后只发送最终答案
Slack使用预置 App Manifest 创建应用,再填写 Bot Token(xoxb-)和 App Token(xapp-)Socket Mode 长连接;私聊直接回复,频道被 @ 后响应,优先使用官方流式消息 API
Telegram使用 @BotFather 生成的 Bot TokenBot API 长轮询;默认私聊直接响应、群聊被提及或回复时响应,也可为每个机器人独立启用私聊白名单安全模式;私聊通过 Rich Message Draft 流式预览并持久化最终富消息,群聊和 Topic 原位完成占位消息,平台不支持时回退为普通文字
Discord使用 Developer Portal 生成的 Bot TokenGateway v10 长连接;私信直接回复;服务器文字/公告频道首次 @ 后创建原生 Thread,后续在线程中无需重复 @,并通过编辑消息流式显示回答
WhatsApp使用手机 WhatsApp 扫码关联设备WhatsApp Web 长连接;默认仅响应账号自聊,也可切换到指定联系人或开放响应模式;显示已读和“正在输入”,通过每秒编辑同一条消息显示工具进度和逐步生成的回答,长回复自动分段,编辑失败时回退为完整文字回复
iMessage在 macOS Messages.app 中登录 iMessage,并按渠道说明授予本机权限使用 macOS 原生 Messages.app 收发文本私聊;不依赖 BlueBubbles;每个 macOS 用户账户使用一个本机 iMessage 身份

企业微信自建应用的回调基址、代理地址和企业可信 IP 配置,见企业微信自建应用接入说明。

其他 IM 平台可继续按同一渠道适配器结构接入。

飞书群聊默认接收其他机器人明确 @ 当前机器人的消息,无需额外开关;未 @、仅 @ 其他成员或全体、机器人自身发送的消息和机器人私聊消息仍会忽略,即使群聊响应方式设为“全部”。消息仍受群聊白名单与命令权限约束。飞书应用需要租户权限 im:message.group_at_msg.include_bot:readonly(“获取群组中其他机器人和用户@当前机器人的消息”);扫码新建应用会默认申请,已有或手动绑定的应用可点击“补全权限”或私聊执行 /repair,扫码并完成飞书要求的发布审批后生效。详见飞书接收消息权限说明。

支持图片输入的内置渠道均支持把 JPEG、PNG、WebP 图片,以及以图片文件方式发送的 GIF,连同可选文字说明发送给 Harness;默认每张原图最多接收 30 MB、每条消息最多 20 张;原图保存到会话工作区,模型副本自动缩放或压缩到单张 5 MB、总计 20 MB 以内,仍超限或模型不支持图片时按文件交给模型处理。这四项限制可在「通用设置 → 附件 → 图片输入」调整,对后续消息生效;原图沿用附件保留时长。调高模型输入上限会增加请求体积、处理耗时和模型成本,也仍受平台及宿主限制。iMessage 首版仅支持文本私聊,不包含在图片能力中。飞书下载用户消息中的图片或文件需要租户权限 im:message:readonly,确认页将其显示为“获取单聊、群组消息”;飞书目前没有为该下载接口提供仅限图片的更窄权限。扫码新建的应用会默认申请;已有或手动绑定的应用可私聊机器人执行 /repair,或在「IM机器人」设置页点击“补全权限”,扫码增量补全该权限、上传机器人图片或文件所需的 im:resource、原生命令面板所需的 application:app_slash_command:read / write,以及卡片回调。

超时后的结果补发

已接入的 IM 渠道共用超时任务跟踪:收到“等待模型回复超时”后,插件会继续检查原任务,完成后向原聊天或线程补发最终文字;插件重启或连接恢复后也会继续检查。/stop 只停止当前聊天提交的对应回合,切换会话后不再向该聊天补发旧会话的结果。无需新增设置,正常回复流程保持原样。

补发仍受渠道发送权限和配额限制。明确发送失败最多尝试三次;发送结果不确定时保留记录并停止自动重试,避免重复消息。此机制恢复文字结果和终态通知,不重放问题、审批或文件工具调用。详见延迟交付说明。

结果文件与图片回传

支持文件回传的内置渠道均可把 Harness 可读取的文件作为渠道原生附件回传。已有文件和当前任务新生成的文件都可以直接发送;该能力对所有已连接机器人默认可用,无需开关或机器人白名单,原有文字、图片、流式回复、命令和会话行为保持不变。iMessage 首版不支持文件或附件回传。

模型调用文件回传工具后,插件把指定文件交给当前渠道的原生接口。图片会优先以原生图片消息呈现;渠道不支持或明确拒绝图片发送时自动回退为文件附件,发送结果不确定时不会补发文件造成重复消息。插件不额外设置文件来源、创建时间、工作区边界、扩展名、内容、数量、大小或有效期规则;文件只需真实存在且可读取。渠道平台仍可能依据自身权限、配额、文件能力或账号等级拒绝发送,插件会按平台返回结果提示。

渠道平台要求
微信当前绑定协议和会话需支持原生文件消息,实际可发送范围以微信接口返回为准。
飞书飞书文件上传接口要求文件非空且不超过平台 30 MB;应用需有租户权限 im:resource(“读取与上传图片或文件资源”)。内置扫码流程新建应用时默认申请该权限;已有或手动绑定的应用可通过“补全权限”或私聊 /repair 增量补全并完成飞书要求的审批。飞书开发者后台当前没有单独的 im:resource:upload 权限。
钉钉应用需开通 qyapi_base,机器人需具备文件消息能力;实际格式和大小以当前 OAPI 与机器人能力返回为准。
企业微信应用需具备素材上传和文件消息能力,实际可发送范围以企业微信接口返回为准。
QQ机器人需具备文件消息能力,并受 QQ 当日文件上传配额约束;额度耗尽时会明确提示稍后重试。
SlackBot Token 需有 files:read、files:write 和 reactions:write;实际文件大小上限由 Workspace 当前策略决定。已有 App 新增或变更 Scope 后,必须重新授权/安装 App 并重新连接机器人。
Telegram机器人必须能在当前聊天发送文档,实际可发送范围以 Bot API 返回为准。
DiscordDeveloper Portal 的 Bot 设置中需启用 Message Content Intent;机器人需有 Send Messages、Create Public Threads、Send Messages in Threads 和 Read Message History 权限;发送结果文件还需 Attach Files。实际附件额度由当前账号与服务器能力决定。
WhatsApp当前绑定会话需支持 Document Message,实际可发送范围以 WhatsApp/Baileys 返回为准。

AI Office Connector

查看 AI Office Connector 说明

安装

推荐从 npm 安装已发布的稳定版本:

dsh plugin --profile web add -w @xmanrui/dsh-im

重启 dsh web、刷新浏览器,然后打开「设置 → IM机器人」。IM机器人使用 order: 21,尽量排在一级设置菜单的「Agent 预设」之后;插件页面不再保留旧入口。从旧版升级不会改变已有机器人、凭据、工作区、Agent Preset 或会话绑定。

本机 dsh web 和 DSH Desktop 默认直接复用当前 Host 的内部服务:旧版 Harness 使用 apiProxy,新版 Harness 自动使用 Typert Gateway、Session Controller 和 Workspace Controller,不需要配置 Harness 地址,也不绕行本机 HTTP 端口。Desktop 的兼容模式、扩展窗口和增强模式均无需开启“允许在浏览器中打开”或局域网访问。渠道配置中显式设置的 harnessBaseUrl 仅保留给旧版远程 HTTP/WebSocket Harness;内部调用失败不会自动改连其他 Host。

如需试用尚未发布到 npm 的最新代码,可以改用 GitHub 源安装器:

npx -y github:xmanrui/dsh-im install

GitHub 源安装会直接拉取并构建 Git 依赖;pnpm 10 及以上版本可能要求先在 profile 的 pnpm-workspace.yaml 中允许该依赖执行构建脚本。普通用户建议优先使用 npm 稳定版。

安装后,在对应渠道页面按照内置引导完成扫码或凭据配置。所有 Secret 和 Token 只提交给本机 Harness Host,并写入受保护的凭据存储;状态接口和机器人列表不会回传这些凭据。

如果本机必须通过正向代理访问飞书,请在启动 dsh web 前把 HTTPS_PROXY 设置为包含协议的 HTTP 代理 URL(例如 http://proxy:8080;也支持小写 https_proxy,并兼容使用 HTTP_PROXY 作为回退),修改后重启 Host。飞书注册和凭据验证会复用 SDK 的代理感知 HTTP 客户端,消息长连接会显式通过这个代理建立 WebSocket;长连接目前不读取 ALL_PROXY 或 NO_PROXY。

如果本机无法直连 Telegram Bot API,请使用 Node.js 22.21 或更高版本,并在启动 dsh web 前启用 Node 的环境变量代理支持:

NODE_USE_ENV_PROXY=1 \
HTTPS_PROXY=http://proxy:8080 \
HTTP_PROXY=http://proxy:8080 \
NO_PROXY=localhost,127.0.0.1 \
dsh web

代理地址按本机网络环境填写;修改代理后需要重启 Host。绑定 Telegram Bot Token 时,如果页面提示无法访问 Bot API,请优先检查代理地址、Node.js 版本和 NO_PROXY 配置。

默认行为说明
机器人别名点击机器人名称旁的铅笔设置别名,保存后立即显示,无需重启或重连。原名称始终保留,可点击“恢复原名称”或清空别名后保存;仅影响本机设置页中的显示名称。
机器人工作区每个机器人独立保存工作区。新机器人默认使用 $DSH_HOME/im(未设置时为 ~/.dsh/im),目录自动创建,新会话显示在「未分组」;之后可在机器人卡片中修改。显式配置的 workspace 优先,dshHome 可覆盖环境变量 DSH_HOME。
模型每个 IM 渠道的每个机器人都可在工作区下方独立选择模型;未选择时跟随 Host 默认。切换只影响之后新建的会话;当前聊天先发送 /new,再发送普通消息才会使用新选择。
思考强度在模型下方显式选择该模型支持的思考强度,或跟随模型默认。档位、说明和默认值来自 DSH;切换模型后恢复新模型默认强度。每个机器人独立保存,只影响之后新建的会话。
Agent Preset每个机器人可在设置页卡片中选择 Agent Preset。未选择时跟随 Host 的 agent-presets.default;渠道级 config.agentPreset 只作为该渠道之后新接入机器人的默认值。切换不会修改或清空已有会话;若当前聊天已有会话,需先发送 /new,再发送一条普通消息,才会按新选择创建会话。
上下文增强从机器人卡片打开设置,分别决定群聊、私聊是否增强;两个开关默认均关闭,旧机器人升级后也不会自动开启。
会话渠道标识本机 Host 的 IM 渠道与 AI Office 会话自动标记来源。Web 会话列表和搜索结果将「微信 ·」等前缀显示为渠道 Logo;保留 DSH 原有的自动标题生成与更新。已有会话在下次加载时补上。

渠道前缀在 DSH 生成标题后追加,完整保留原始标题与自动/手动来源,不会将自动标题锁定为手动命名,也不会额外调用模型。重复生成、刷新或重启不会叠加前缀;真实的手动命名仍遵循 DSH 原有的锁定规则。此功能由当前 Host 的会话事件驱动,显式连接远程 harnessBaseUrl 时需在目标 Host 上安装该插件。

Logo 由 dsh-im 的浏览器适配显示,无需修改 DSH。适配保留原始文字节点和点击、菜单、拖拽操作;复制、读屏及其他界面仍保留文字渠道名。DSH 页面结构不匹配、浏览器不支持或图标加载失败时,自动保留文字前缀;插件卸载后恢复原始显示。

主动投递

支持主动投递的 IM 渠道可以使用稳定的 botId + targetId 主动发送文字消息。机器人设置页支持从已聊会话选择或手工填写目标、保存前测试当前路由,以及复制调用参数;HTTP POST、同 Host 插件和 Connection RPC 共用同一目标配置与投递核心。

已保存的私聊目标还可以开启默认关闭的「会话双向同步」。开启后,DSH Web/CLI 在该私聊当前 Session 中发送的用户文字和最终助手文字会同步回私聊;IM 侧原有提问与 /steer 不会重复。开关自动跟随 /session、/new 和工作区切换后的当前 Session。首版仅支持当前 Host 的私聊文字;群聊、Topic、Thread 与显式远程 harnessBaseUrl 不支持。

设置步骤、各渠道字段、完整调用示例、管理端点、错误码与排错说明请查看《主动投递使用指南》(English)。

客户端面板接入

宿主可通过可选客户端服务 dshImClient 嵌入完整 IM 管理面板,并按需隐藏或恢复设置入口。dsh web 默认仍使用原来的「设置 → IM机器人」。接口、兼容要求与接入示例见客户端接入文档。

上下文增强

查看上下文增强说明

访问模式

查看访问模式说明

检查与安装更新

查看检查与安装更新说明

机器人命令

命令作用
/help显示机器人支持的命令和用法。
/menu、/m飞书、钉钉和企业微信打开交互菜单。钉钉的会话、工作区、预设和模型按两列排列,选择后立即生效,并在原卡片更新结果。企微下拉选择后点击应用;菜单仅通过 /m 或 /menu 手动打开,进入单聊时不自动展示,按钮执行后仅反馈结果,不自动补发菜单。菜单还提供新会话、停止、压缩、状态与帮助等按钮。
QQ /menu、/m打开按钮与数字菜单:会话选择、工作区、模式/预设、模型、新会话、会话列表、停止、压缩、补充指令、归档显示切换、状态和帮助。列表支持分页;按钮不可用时回复数字选择。菜单按聊天和操作者隔离,15 分钟或重启后失效;普通消息退出数字选择,审批、提问和批量输入保留原有优先级。
/new解除当前聊天的会话绑定,让下一条普通消息开启全新 Harness 会话。
/status检查当前机器人与 DeepSeek Harness 的连接状态。
/version查看当前运行的 dsh-im 插件版本。
/models按序号列出当前配置的全部可用模型。
/model查看当前聊天绑定会话正在使用的模型和推理等级。
/model <序号或 Provider/模型ID> [推理等级ID]切换当前会话模型,并可同时指定目标模型支持的推理等级。
/reasoninglist、/reasonings等价命令;列出当前模型支持的推理等级。
/reasoning查看当前会话的模型和推理等级。
/reasoning <序号或等级ID>切换当前模型的推理等级。
/reasoning --default恢复当前模型的默认推理等级。
/presetlist、/presets两个等价命令;按序号列出 Host 当前可用的 Agent Preset,并标记 Host 默认项和当前机器人的选择。
/preset查看当前机器人的新会话 Agent Preset 设置。
/preset <序号或 Preset ID>设置当前机器人的 Agent Preset;纯数字 ID 使用 /preset id:<ID>。
/preset --default清除当前机器人的显式选择,让后续新 Session 跟随 Host 默认。
/stop立即停止当前聊天正在运行的任务,并保留尚未开始的排队消息。
/steer <补充指令>把补充指令立即加入当前聊天正在运行的任务。
/batch在私聊中开启批量输入,最多收集 10 条纯文字消息。
/send将已收集的消息按原顺序作为一次输入提交。
/cancel取消批量输入并丢弃已收集的消息。
/repair

命令说明

钉钉菜单使用插件内置的共享卡片模板,无需逐个机器人创建或配置模板。卡片打开后可操作 30 分钟;超时或 Host 重启后重新发送 /m。模板源文件保存在 assets/dingtalk-menu-template.json,供维护者导入卡片平台更新。

查看命令说明

其它功能

  • 图片识别:支持图片输入的内置渠道都可以把 JPEG、PNG、WebP,以及以图片文件方式发送的 GIF 交给 Harness;图片可以附带文字说明。默认每张原图最多接收 30 MB、每条消息最多 20 张;原图保存到会话工作区,模型副本自动缩放或压缩到单张 5 MB、总计 20 MB 以内,仍超限或模型不支持图片时按文件交给模型处理。这四项限制可在「通用设置 → 附件 → 图片输入」调整,对后续消息生效;原图沿用附件保留时长。调高模型输入上限会增加请求体积、处理耗时和模型成本,也仍受平台及宿主限制。iMessage 首版仅支持文本私聊。
  • 在机器人卡片切换工作区:设置页中的每张机器人卡片都会显示当前 Harness 工作区。可以直接填写已有目录的绝对路径,也可以打开目录选择器。切换只清除该机器人的旧聊天映射,不会删除、清空或归档旧 Session;已经开始的回复可以继续完成,后续消息使用新工作区。
  • 默认目录与未分组会话:所有使用默认值的机器人共用 $DSH_HOME/im,但各自保存聊天与会话的绑定。插件不会为该目录创建工作区分组;/sessions 可以列出该目录的未分组会话,/session <Session ID> 或 /session N 可以绑定普通会话。切换到其他目录后,新会话按现有机制加入对应工作区分组;切回默认目录后新会话归入「未分组」。已有机器人的目录不会自动迁移。
  • 在机器人卡片选择模型与思考强度:每个 IM 渠道的每张机器人卡片都在工作区下方提供模型与思考强度入口,采用 DSH 风格的分组列表、档位说明和选中标记。先选择 Host 当前可用模型,再选择其支持的强度,或跟随模型默认;未选模型时整体跟随 Host 默认。设置按机器人独立保存,只用于之后新建的 Session;已有 Session 和正在生成的回复不受影响。
  • 在机器人卡片选择 Agent Preset:设置页中的每张机器人卡片都可以选择 Host 已有的 Agent Preset,或跟随 Host 默认。切换只作用于该机器人,并且只影响之后新建的会话;已有会话和正在生成的回复不受影响。
  • 检查连接并发送测试消息:机器人在线时,点击卡片上的「检查连接」会检查平台连接,并向该机器人最近记录的私聊发送一条“DeepSeek Harness 连接测试成功”消息;WhatsApp 会发送到账号自聊。测试消息不会创建 Harness Session,也不会调用模型。机器人必须至少收到过一条私聊才能记住测试目标,否则页面会提示尚无可用的测试会话。
  • 重试连接和移除接入:机器人离线时,卡片上的操作会变为「重试连接」;不再使用时可以点击「移除接入」。这些操作都只作用于所选机器人,不影响其他机器人或渠道。
  • 多机器人独立管理:同一渠道可以接入多个机器人。每个机器人分别保存凭据、连接状态、工作区、模型、Agent Preset 和聊天会话映射,卡片上的工作区、模型、Preset、连接检查、重试和移除操作互不影响。
  • 流式回复和进度提示:插件会按各平台能力显示正在思考、工具执行和逐步生成的回答;不支持原生流式接口的平台会通过编辑消息、卡片更新或最终消息完成回复。

微信、飞书、钉钉、企业微信、QQ、Slack、Telegram、Discord、WhatsApp、企业微信应用、iMessage、邮箱和 AI Office 的绑定、连接或移除失败时,可展开页面中的「诊断详情」并点击「复制诊断信息」。反馈时附上操作步骤、Desktop/Web 运行方式和实际 DSH 版本;使用页面中的 WX-CONN-…、DT-CONN-… 或 IM-CONN-… 参考号查找同一次故障的渠道 Host 日志。诊断会保留失败阶段、已识别的底层原因、HTTP 状态及可用的耗时等安全信息;多个原因会一并列出,无法识别时明确标为「暂未识别」,不包含登录令牌、二维码或原始响应内容。账号已移除但本机清理未完成时,页面会保留清理警告。消息故障沿用 MF-… 参考号;若页面提示 DSH 管理接口无法访问且没有 Host 参考号,请检查 DSH 管理连接。网络排查应以运行 DSH 的机器为准。

微信启动配置校验失败时,诊断还会提供 file、field、issue,定位 config.json 或 workspaces.json 中第一个未通过校验的位置。字段中的序号从 0 开始,按文件条目顺序计数,例如 workspaces[0].value 表示第一条工作区配置的值,不包含真实账号标识。默认目录为 DSH_HOME/integrations/dsh-weixin(未设置 DSH_HOME 时为 ~/.dsh/integrations/dsh-weixin),自定义路径以插件配置为准。修复后需要重启 DSH;页面「重新读取」仅查询状态,不会重新加载配置文件。

设计

  • Harness 一级设置菜单中只注册一个「IM机器人」设置页,其中包含内置 IM 渠道和一个 AI Office Connector;
  • 内置渠道及 Office Connector 的 Host、客户端与运行时源码都在本仓库维护,不依赖外部独立插件;
  • 设置页跟随 DeepSeek Harness 的语言选择,在中文和 English 之间即时切换;机器人发出的聊天消息、命令帮助和 Telegram 命令菜单同样跟随该界面语言并即时切换,中文始终为兜底,未收录的文案原样输出;
  • 左侧使用 Logo 切换微信、飞书、钉钉、企业微信、企业微信应用、QQ、Slack、Telegram、Discord、WhatsApp、iMessage 和 AI Office,不使用启用/停用开关;
  • 各 IM 渠道保持独立的 RPC、凭据、连接监督和会话映射;Office Connector 另行维护设备凭据、Job 租约、审批等待与并发上限;
  • 浏览器只获得二维码、Manifest、脱敏状态,以及用户为当前 Telegram 或 WhatsApp 机器人主动保存的访问模式和白名单标识;手动输入的 Secret 或 Token 仅单向提交给本机 Host,任何 RPC 响应都不会返回 App Secret、bot_token、钉钉 client_secret、企业微信 Secret、QQ app_secret、Slack Bot/App Token、Telegram/Discord Bot Token、WhatsApp 关联设备密钥、AI Office Device Token,或从平台消息中观察到的其他原始用户标识。

本地开发

Web profile 已验证兼容原版 DSH 0.1.2-alpha.4、0.1.2-alpha.5、0.1.2-rc.1、0.1.3-alpha.1 和 0.1.5-alpha.1。这些版本共用 dsh-im 的管理 RPC 适配,通过 Connection 的公开 /api Fetch 注册接口工作,无需修改或重新编译 DSH。升级插件后重启 Host 并刷新设置页,使 Host 和客户端使用同一版插件。

npm install
npm run check
node bin/dsh-im.mjs install --source .

npm run check 运行单元测试、构建 Host/Client 产物,并验证发布包不包含凭据或独立渠道设置页注册。

IM 管理接口默认沿用 Harness 的浏览器认证和 Host/Origin 信任检查。只要 Harness 已允许并认证当前局域网访问,便可直接查看和配置 IM 机器人,无需额外修改 dsh-im 配置。

通过自定义域名访问时,如果 IM 设置页出现 transport failure for /api/dsh-im/...: HTTP 403,请在原 DSH 启动命令中添加浏览器访问的域名,并重启 DSH:

dsh web --trusted-host dsh.example.com

将 dsh.example.com 替换为实际访问域名,不带 http://、https:// 或路径。只写域名允许该域名的任意端口;如需限制到指定访问端口,使用 --trusted-host dsh.example.com:8443。多个域名可重复传入 --trusted-host。这个参数属于 DSH;dsh-im 的 rpcAuthority: trusted-host 本身不会把域名加入 DSH 信任列表。本机通过 localhost 或 127.0.0.1 访问通常不需要额外配置。

使用反向代理时,代理传给 DSH 的 Host 应保留浏览器访问的域名及端口;浏览器携带的 Origin 解析出的 host(含非默认端口)必须与该 Host 一致,仅将两者分别加入信任列表仍会返回 403。--trusted-host 只配置访问校验,浏览器仍需通过有效启动链接完成认证。

如需将 IM 管理额外限制为仅本机访问,可在当前 Web profile 的 cordis.patch.yml 中设置:

- id: xmanrui-dsh-im
  config:
    rpcAuthority: loopback

rpcAuthority 默认为 trusted-host;显式设置 loopback 会额外要求回环 Host 和 Origin。更新与入站 TTL 管理始终仅允许回环访问。

局域网管理的 HTTP 集成测试可在构建插件后运行 node scripts/verify-lan-management.mjs /path/to/built/deepseek-harness。脚本启动原版 DSH CLI,使用独立临时 profile 和空机器人配置,检查默认访问、登录认证、Host/Origin 检查以及显式 loopback 策略,结束后停止服务并清理临时目录。测试通过回环 TCP 发送局域网 Host/Origin,不替代跨设备浏览器验收;原版 0.1.5-alpha.1 CLI 本身拒绝 --host 0.0.0.0,跨设备测试需使用支持局域网访问的 Harness 环境。

聊天消息语言

无需配置。 机器人发出的聊天消息、命令帮助和 Telegram 命令菜单跟随 DeepSeek Harness 的界面语言。在 设置 → 通用 → 语言 中把 DSH 切换为 English,机器人即以英文回复;切换即时生效,无需重启 Host,也无需重连机器人。

语言按以下顺序取第一个有效值:

  1. 插件自身的 language 配置(或环境变量 DSH_IM_LANGUAGE)。这是下文的运维级固定值;一旦设置,就不再跟随 DSH 的界面语言。
  2. DSH「语言」设置项中的显式选择,从 Host 用户设置文档读取。这就是「DSH 设为 English」的含义,对所有渠道生效。
  3. 设置页实际渲染所用的界面语言。当界面语言来自浏览器语言列表时 DSH 不会存储任何偏好,因此 dsh-im 会把生效语言回传 Host 并保存在 ~/.dsh/integrations/dsh-im/interface-language.json,这样 Host 重启后、尚无浏览器连接时机器人仍以该语言回复。

中文始终是兜底语言,任何未收录到英文词典的文案都会原样以中文输出,因此该功能不会改变现有中文用户的行为。

聊天消息从下一条起即切换语言。Telegram 命令菜单会立即重新下发,但 Telegram 客户端会缓存 / 菜单,因此即使 Telegram 侧已保存新语言,你自己的客户端仍可能在一段时间内显示切换前的语言;重开客户端即可刷新,getMyCommands 始终反映实际存储的内容。

输入框旁的蓝色 Menu 按钮不受机器人控制,也不会跟随该设置:dsh-im 将其设为 MenuButtonCommands,而 Bot API 中该类型没有文本字段,因此按钮文案由 Telegram 按阅读者客户端自身的语言渲染。只有 MenuButtonWebApp 带有文本字段,但它需要一个 Web App URL。

端到端验证可运行 node scripts/verify-interface-language.mjs /path/to/deepseek-harness:脚本使用原版 DSH CLI 与独立临时 home,通过真实 /api 通道逐层校验语言解析顺序,并验证重启后与运维固定 language 时的行为。设置 DSH_IM_TELEGRAM_TOKEN 可额外接入真实机器人,断言 Telegram 侧实际存储的命令菜单,检查结束后会恢复其原有菜单。

如需固定一种语言、不随阅读者的界面语言变化,可在插件配置中设置 language(也接受 en-US、english),或设置环境变量 DSH_IM_LANGUAGE=en:

- id: xmanrui-dsh-im
  config:
    language: en

联系方式

欢迎加入企业微信群,或通过邮箱、微信、小红书或 WhatsApp 联系我。

邮箱企业微信群微信小红书WhatsApp
longmanr307@gmail.com dsh-im 企业微信群二维码 微信二维码 小红书二维码 WhatsApp 二维码

贡献者 ✨

感谢每一位帮助 dsh-im 成长的贡献者!本项目采用 All Contributors 规范,认可代码、文档、测试、问题反馈、想法和其他形式的贡献。

以下名单以 GitHub Contributors 中的用户账号为基础,排除 GitHub 标记为 Bot 的账号,并按用户名排序;贡献类型依据 Git 提交记录标注,点击 emoji 可查看对应记录。

贡献类型说明:💻 代码 · 📖 文档 · ⚠️ 测试 · 🚇 基础设施 · 🌍 翻译 · 🤔 想法与规划。

alpacachen
alpacachen
💻 📖 ⚠️
baijian
baijian
💻 ⚠️ 📖
bitxeno
bitxeno
💻 ⚠️
wang shi zhuo
wang shi zhuo
💻 ⚠️
BuvkB

名单和贡献类型统一维护在 .all-contributorsrc 中。若有遗漏,欢迎通过 Issue 或 PR 补充,非代码贡献同样欢迎。

维护者可运行 npx --yes --package=all-contributors-cli@6.26.1 all-contributors add <username> <type[,type...]> 添加贡献者及贡献类型;手动修改配置后,运行 npx --yes --package=all-contributors-cli@6.26.1 all-contributors generate 同步更新中英文 README。也可在仓库安装 All Contributors Bot 后,通过 Issue 或 PR 评论中的 @all-contributors please add @username for code, doc, test 更新名单。

在飞书私聊中增量修复卡片回调,并补全媒体、群聊机器人 @ 消息与原生 Slash Command 面板所需的权限。
/compact立即压缩当前聊天绑定会话的较早上下文。
/workspace <工作区序号或绝对路径>、/ws <工作区序号或绝对路径>按 /workspacelist 序号或绝对路径切换当前机器人的 Harness 工作区。
/workspacelist、/workspaces、/wsl列出当前 Harness Host 上仍然存在的工作区绝对路径。
/sessionlist [工作区序号或绝对路径]、/sessions [...]两个等价命令;列出指定工作区的会话 ID 和标题,默认 IM 目录也包含其中的未分组会话;省略参数时使用当前工作区。
/sessionlist --limit N、/sessions --limit N列出当前工作区现有顺序中的前 N 个会话;N 必须是正整数。
/session <Session ID>将当前聊天绑定到指定的已有 Harness 会话。
/history [数量]在私聊中查看当前绑定会话的最近历史消息,默认 3 条,最多 5 条。
交互式提问回复选项序号、选项文字或自定义文字;多选时用逗号分隔。
远程审批回复 批准 / 拒绝 / 同意 / 不同意 / yes / no。

BuvkB

💻
📖
⚠️
C3H3-AI
C3H3-AI
💻 📖 ⚠️ 🚇
Chan
Chan
💻 📖 ⚠️
cherryFloris
cherryFloris
💻 📖 ⚠️
Claude
Claude
📖
CodeBuddy-Official-Account
CodeBuddy-Official-Account
📖
Codex
Codex
📖
Diluka
Diluka
💻 ⚠️
divingleee
divingleee
💻
Dong09
Dong09
💻 ⚠️
Evan Fang
Evan Fang
💻 📖 ⚠️
Evilh2019
Evilh2019
💻 ⚠️
ferocknew
ferocknew
💻 ⚠️
geekyfox
geekyfox
💻 ⚠️
Gemini
Gemini
📖
Gold John King
Gold John King
💻 📖 ⚠️
grloper
grloper
💻 📖 ⚠️
iamyaojie
iamyaojie
💻 📖 ⚠️
iJetLi
iJetLi
💻 ⚠️
Johnslee1207
Johnslee1207
💻 ⚠️ 🚇
Kimi Agent
Kimi Agent
📖
LAN-SHH
LAN-SHH
💻 ⚠️
Liqueur Librazy
Liqueur Librazy
💻 📖 ⚠️
Kolabrod
Kolabrod
💻 📖 ⚠️
落尘
落尘
💻 📖 ⚠️
lyzhu86
lyzhu86
🤔 📖
masucc
masucc
💻 ⚠️
WENBO LIU
WENBO LIU
💻 ⚠️
penggaolai
penggaolai
💻 ⚠️
Qwen-Coder
Qwen-Coder
📖
Trae
Trae
📖
WE-Technology
WE-Technology
💻 📖 ⚠️
Wings Butterfly
Wings Butterfly
💻 📖 ⚠️
xiemanR
xiemanR
💻 📖 ⚠️
Yusuke Hayashi
Yusuke Hayashi
💻 📖 ⚠️
星曜
星曜
💻 📖 ⚠️
zaakir
zaakir
💻 📖 ⚠️ 🌍