- Home
- Plugins
- Integrations & Remote
- dsh-wecom-bot
L
dsh-wecom-bot
lastorder/dsh-wecom-bot
Bridge a WeCom (企业微信) smart bot to DeepSeek Harness: user groups own a Workspace, a model and an agent preset, members get their own Session, refused senders are told to ask an operator and wait in an authorization list on the plugin page, administrators
Install
dsh plugin --profile web add github:lastorder/dsh-wecom-botREADME
DSH × 企业微信智能机器人
把 DeepSeek Harness 接到企业微信智能机器人(API 模式 · 长连接):在企微里给机器人发消息,就是在和 DSH 的会话对话;会话跑完、需要回答或需要审批时,机器人主动推回企微。基于 @wecom/aibot-node-sdk 的 WebSocket 长连接,不需要公网回调地址。

两种用法
| 遥控自己的 DSH | 把 DSH 环境分享给团队 | |
|---|---|---|
| 谁在说话 | 你自己(管理员) | 同事、群聊 |
| 会话 | 任意会话,/sessions + /use 切换 | 每人一个会话;一个群共享一个 |
| 关键配置 | 管理员 + 通知范围 | 用户分组(工作区 / 模型 / Agent 预设 / 工作区权限)+ 成员 |
- 遥控自己的 DSH:把自己加为管理员,手机上就能查看、切换、推进任意会话,审批工具调用;引用一条通知即可继续那条会话。
- 分享给团队:先在 DSH 里准备好工作区、MCP、skills 和 Agent 预设,再建一个指向它的分组,把同事或群聊加进去。不同团队用不同分组即可。
快速开始
- 安装:在 DSH「插件」里安装
dsh-wecom-bot@<版本号>。务必写精确版本——pnpm 11 默认只解析发布满 24 小时的版本,裸包名或@latest会静默装成旧版。本地开发时安装本仓库的绝对路径。 - 连接:打开插件页,在「连接」里填 Bot ID 和 Bot Secret(企业微信管理后台 → 智能机器人 → API 模式)。Secret 存进 DSH 凭据库(
WECOM_BOT_SECRET),不写入配置、不回显。 - 授权:让对方先给机器人发一条消息(收到「用户未授权,请联系管理员」),他会出现在「待授权」里;选择分组并确认即可。要遥控自己的 DSH,就在「管理员」里添加自己——管理员无需加入分组。
- 试一句:私聊机器人(群里需 @ 它)发送
/help。

插件页面
页面在 DSH 的插件详情页里,按使用频率从上到下排列;除「连接」与「高级设置」需点保存外,其余改动点下即生效,且不会断开机器人连接。
- 连接:在线状态、Bot ID / Secret、本次启动以来的收发统计;「编辑」展开表单。
- 待授权:被拒绝的发信人及其最后一条消息(只在内存里,重启清空);「加入分组」即授权,可顺手填备注。
- 用户分组:每个分组一张卡片,标题下列出它的工作区、模型、推理等级、Agent 预设、工作区权限;展开看成员表——会话状态、模型、推理等级、工作区权限、上下文占用。点成员名查看/修改备注、切换分组、移出分组;点会话状态查看会话详情(含会话的工作区权限,可直接修改),在那里「打开会话」或「归档会话」。「编辑」在卡片内修改分组,删除分组也在这里。
- 管理员:添加/移除管理员,设置「通知范围」(默认全部工作区)。
- 高级设置(默认折叠):私有化部署的 WebSocket 地址(保存会重连)与对话日志。

规则
- 授权 = 加入分组。不在任何分组的人只会收到一条「用户未授权」;删除分组会取消其成员的授权(不会把他们挪进默认分组)。
- 工作区权限(与 DSH 会话里的权限选项一致:仅可查看 / 工作区内修改 / 完全权限)由分组决定,默认「仅可查看」——远程聊天不会不声不响地获得写权限。新建的会话先被设成分组的权限才会交给成员;改分组的权限会立即应用到组内已有的会话(包括单独改过权限的成员)。成员行或会话详情里改权限只影响该会话。选「完全权限」时会像 DSH 一样先出风险提示,勾选「我已了解风险」才能确认。权限写在 DSH 会话本身,页面读取的永远是会话当前的实际值。已有分组升级后显示为「仅可查看」,但它们已存在的会话保持原样,直到你在分组里保存一次权限。
- 分组决定新会话的工作区、模型(含推理等级)和 Agent 预设;成员行里改模型只影响该成员当前会话。Agent 预设只在新建会话时生效;改分组的工作区会让成员在下一条消息时新建会话。切回原分组时会恢复之前的会话(仍可用的话)。
- 会话:私聊一人一个、群聊整群共享一个;标题为
wecom-bot-<userid 或 chatid>。归档(页面或/delete)后,下一条消息新建会话;DSH 没有删除会话的 API,记录仍在「已归档」里。 - 管理员可以在单聊里切换会话、新建会话、审批工具调用,并接收通知范围内所有会话的通知。管理员命令在群聊里一律拒绝;工具审批只发给管理员。
- 备注属于人,不随移出分组而丢失。
企业微信指令
| 指令 | 作用 | 谁可以用 |
|---|---|---|
/help、/whoami | 命令列表;自己的 userid、分组与身份 | 所有人 |
/status | 当前会话:工作区、预设、模型、上下文、运行状态 | 所有人 |
/cancel | 停止正在运行的回合 | 所有人 |
/answer <验证码> <选项或文字> | 回答 DSH 的提问 | 所有人 |
/compact、/delete(再 /delete confirm) | 压缩上下文;归档当前会话 | 所有人(群聊需管理员) |
/approve <验证码>、/deny <验证码> | 审批工具调用(与 DSH 页面同时可处理,先到先得) | 管理员,单聊 |
/sessions、/use <序号或 ID 前缀>、/reset | 列出、切换会话;回到自己的会话 | 管理员,单聊 |
/workspaces [序号]、/new | 选择默认工作区;在其中新建会话 | 管理员,单聊 |
| 引用一条通知 | 之后的消息落到那条通知的会话 | 管理员,单聊 |
| 直接发文字 | 提交到当前会话 | 所有人 |
通知、数据与日志
- 一轮结束推给会话所属的聊天,以及通知范围内的管理员;只带最后一条助手文字,不外发推理、工具参数或附件。计划审阅和详细提问只能在 DSH 页面处理。
- 持久化的一切都在
<DSH home>/wecom-bot/settings.json(version: "0.5",0600,原子写入)。版本不符或无法解析的文件会被改名放到旁边,插件从空状态开始。 - 对话日志:
<DSH home>/wecom-bot/logs/YYYY-MM-DD.jsonl,每条消息一行round.complete及明细行,敏感字段脱敏,默认保留 14 天,可在「高级设置」关闭。
已知限制
- 群聊必须 @ 机器人,企业微信才会转发;消息开头的 @ 会被去掉。
- 群聊「话题」里的消息目前收不到,机器人也无法发到话题里(SDK 未提供相关字段)。
开发
pnpm install
pnpm run verify # 构建 + 类型检查 + 测试
pnpm run preview # 重新生成 preview/*.png(需要 Google Chrome)
改了 Host 代码需重启 DSH(或禁用再启用插件);只改页面时刷新插件页即可。代码结构、约定与发布流程见 AGENTS.md。
Related plugins
Z
dsh-web (dsh-ssh)
zhu1090093659/dsh-web
9.5k5 hours agoIntegrations & RemoteApache-2.0
Z
dsh-web (dsh-remote-web-ui)
zhu1090093659/dsh-web
9.5k5 hours agoIntegrations & RemoteApache-2.0
Z
dsh-web-ui (dsh-ssh)
zhu1090093659/dsh-web-ui
7.9klast monthIntegrations & RemoteApache-2.0
Z
dsh-web-ui (dsh-remote-web-ui)
zhu1090093659/dsh-web-ui
6.3k2 months agoIntegrations & RemoteApache-2.0