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