dsh-feishu-assistant:飞书私聊里的 DSH 运维请求通道

前言

在 DSH 里跑智能体时,工具、MCP 和人设通常绑在你自己的 Web 会话上。同事要查日志、改配置、问发布状态,往往只能找你在界面里代劳,或者各自再搭一套入口。若把 DSH 直接暴露到公网,审批和权限又难控。

下面介绍社区插件 dsh-feishu-assistant(维护者 wanjiaju3108):同事在飞书私聊机器人提需求,你在审批卡上放行后,由你指定的那条 DSH 会话带着 profile 里的工具与人设执行,结果以卡片回到飞书。长连接收事件,不需要公网 Webhook 入口。

这是什么

dsh-feishu-assistant 是 DeepSeek Harness(DSH)的 Web 平台插件,分类为工作流。当前版本 0.2.0(MIT 许可证),依赖 DSH 0.1.7-rc.1 及以上;Node ≥ 22。

一句话定位:给同事的运维请求通道——你只保留放行权,执行交给同一条共享 DSH 会话;口径统一、串行排队,回答在飞书里用 Markdown 卡片展示。

不适用:希望每个同事各自一条独立会话、各自积累上下文的场景(那是 per-user 的 IM 桥,不是本插件)。

核心功能

分流与审批

  • 同事在飞书私聊提一件事;非管理员消息先进审批卡片,管理员点「同意」才进入请求队列,「拒绝」则回执。待审批最多 20 条;发卡时可选应用内加急,超过 5 分钟未处理可升级短信加急(需对应权限);15 分钟过期会作废并告知。
  • 管理员通过 8 位配对码绑定(私聊发给机器人,10 分钟有效、一次性);存的是发送者 open_id。管理员消息直接进队列。
  • 审批卡片回调会校验点击人身份,非管理员无法代点。

串行执行与共享会话

  • 请求队列先进先出:前一条整轮 turn/end 结束才注入下一条。
  • 注入前等待目标会话空闲:避免与你在 Web UI 里的轮次交错;等待期间请求人卡片上可见「正在处理」。
  • 飞书长连接可能重复投递;插件按 message_id 去重(最近 200 条),重复只记日志、只答一次。

回答与回写

  • 文本私聊不渲染 Markdown,因此回答走卡片:先发「正在处理」,之后按 step 消费已提交的 assistant/message,用 cardkit 整块替换卡片正文;接近 24 KB 上限会自动翻页。无 cardkit:card:write 时退回「每段一张普通卡片」。
  • 管理员直发请求会先回「正在处理」;整轮无产出会说明失败原因。
  • 目标会话若在界面上由你继续提问、并非飞书发起,插件仍会把该轮回答主动私聊推给管理员。
  • 非管理员整轮跑完后,会把原话与回答合并转发给管理员(需 im:message:send_as_bot 等权限)。

人设与权限

  • 设置页上传本地 md/txt 作为人设(上限 64 KB);不上传则「飞书AI助理模式」未启用,飞书消息不处理(管理员收到指路,其他人静默)。
  • 人设会覆盖目标会话的个人设定;改原文件需重新上传。
  • 飞书侧为无人值守执行,DSH 权限审批 fail-close;须将会话与通用设置设为完全权限,并务必绑好管理员(机器人等同本机完全权限)。

企微提醒(可选)

非管理员请求跑完且有产出时,可向企业微信发提醒(只发不收、无 webhook)。需企微 CorpID、AgentId、接收人 UserId 与 Secret;企微侧可信域名 / 可信 IP 等前置条件需自行满足。

安装与启用

在 web profile 安装(命令来自官方 README):

dsh plugin --profile web add dsh-feishu-assistant

装完重启 dsh web。

DSH 仍为 0.1.5 时,安装最后一个兼容版本:

dsh plugin --profile web add dsh-feishu-assistant@0.1.4

若收尾报 ERR_PNPM_IGNORED_BUILDS: protobufjs,插件可能未登记进 profile。在 profile 的 pnpm-workspace.yaml 中放行构建后再装一次:

# ~/.dsh/profiles/<profile>/pnpm-workspace.yaml
allowBuilds:
  protobufjs: true

插件目录页:skillhub.cn/plugins/wanjiaju3108/dsh-feishu-assistant。源码:github.com/wanjiaju3108/dsh-feishu-assistant。

典型用法:从零到能聊天

1、飞书开放平台建应用

  1. 打开 飞书开放平台,创建企业自建应用。
  2. 在「凭证与基础信息」记录 App ID、App Secret。
  3. 「添加应用能力」开启机器人。
  4. 「权限管理」至少按需添加 README 所列七条(私聊收消息、以机器人发消息、卡片写入、通讯录/用户基本信息、应用内与短信加急等);要在卡片显示姓名还需配置通讯录数据权限范围。
  5. 「事件与回调」订阅方式选长连接,添加事件 im.message.receive_v1 与回调 card.action.trigger。
  6. 创建版本并发布,由企业管理员通过后对用户生效。

2、DSH 里配置

打开 设置 → 飞书AI助理:

项 说明
App ID / App Secret 写入 $DSH_HOME/.credentials.yaml(引用名 FEISHU_ASSISTANT_APP_ID / FEISHU_ASSISTANT_APP_SECRET)
目标会话 建议专开一条会话;有日志后在下拉中选择
人设文件 上传 md/txt,否则模式未启用
管理员 生成配对码,私聊发给机器人完成绑定

权限顺序:先 设置 → 通用 → 权限 设为完全权限,再建目标会话;已有会话需在会话内执行 /permission 设为完全权限。

3、验证

在飞书私聊机器人发一句话。管理员消息直接进队列;其他人会先收到审批流程。设置页「状态」区可查看长连接、目标会话、人设状态。

补丁层也可预置配置(节选):

- id: feishu-assistant
  name: dsh-feishu-assistant
  config:
    sessionId: ''
    managerId: ''
    persona: ''
    personaName: ''
    wecomEnabled: false

设置页改动即时生效(applies: 'live'),无需重启。

适用场景与注意

适合谁

  • 小团队内把「查配置、看日志、问发布」从 IM 里一句话交给 DSH,又不想给每人单独会话或公网入口。
  • 需要统一人设与工具链、且接受单会话串行(避免多人同时动同一环境)。

务必知晓

  • 插件以当前 dsh 进程权限在本机运行;开启完全权限后,能通过机器人的操作范围等同该机器上的 DSH。安装前请阅读源码与 MIT 许可证,确认凭据与管理员绑定策略可接受。
  • 只处理私聊文本;群聊、图片、文件、富文本、语音等不在处理范围(详见 README「已知边界」)。
  • DSH 生态是「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-feishu-assistant 把飞书私聊变成受控的 DSH 入口:配对码定管理员、审批卡定放行、串行队列定节奏,结果以卡片回到同事飞书。若要安装细节与边界说明,以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/wanjiaju3108/dsh-feishu-assistant
  • GitHub:https://github.com/wanjiaju3108/dsh-feishu-assistant
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye