dsh-feishu-bridge:把飞书机器人接入 DSH 的桥接插件

前言

DSH 插件体系允许把外部入口接入 Agent。对于希望在飞书或 Lark 中调用 DSH Agent 的场景,dsh-feishu-bridge 提供一个桥接:接收飞书机器人消息,转发给 DSH Agent,并把回答、过程提示和控制命令回传飞书。下面介绍它的定位、安装配置和当前边界。

这是什么

dsh-feishu-bridge 是一个 Feishu / Lark ↔ DeepSeek Harness(DSH)桥接插件。维护者是 ailoushu666,许可证为 MITpackage.json 版本为 0.2.1

它支持 feishulark 两种 domain,可用于单聊和群聊中的 Agent 调用。

核心功能

  • 使用飞书 WebSocket 长连接接收事件,无需公网 IP / 域名 / 内网穿透。
  • 同一个飞书聊天或话题复用同一个 DSH Session,保留上下文;话题各自独立。
  • 回复会关联触发消息,话题内的回复留在原话题。
  • 默认只接收单聊和群聊中 @机器人 的消息。
  • Agent 调用工具时回传执行过程提示,中间回复经节流队列转发。
  • 收到消息后先返回“正在处理 / 排队中”回执;单轮超时自动停止并提示。
  • DSH 自主轮次结果会主动推回飞书。
  • Agent 选项问答可在飞书中通过编号、选项文字或自由文本回复。
  • 支持飞书命令:/reset/compact/workspace/mode/model/effort/stop/feedback/goal/plan/export/session/help
  • 可配置 providermodelreasoningEffortworkspaceagentPreset 等插件配置。
  • App Secret 与 App ID 分离存放,分别写入 DSH 凭据文件和 profile 补丁。
  • 内部错误统一返回 errorMessage,不发送异常堆栈或敏感信息。
  • Session ID 用 SHA-256 摘要派生,不包含原始 chat_id / thread_id

安装与启用

运行要求

  • Node.js ^22.19.0>= 24
  • 已能运行 dsh web
  • 需要飞书企业自建应用,启用机器人能力、长连接订阅 im.message.receive_v1,并开通必要权限

安装插件

先确认目标 DSH Profile,下面命令把插件安装到 web profile。

从 GitHub 安装:

npx @deepseek-ai/dsh plugin --profile web add git+https://github.com/ailoushu666/dsh-feishu-bridge.git

从本地目录安装:

npx @deepseek-ai/dsh plugin --profile web add "<本项目目录>"

写入凭据

FEISHU_APP_SECRET 写入 DSH 凭据文件 ~/.dsh/.credentials.yaml

FEISHU_APP_SECRET: <App Secret>

App Secret 只应放在 ~/.dsh/.credentials.yaml,不要落盘到项目目录。

启用配置

~/.dsh/profiles/web/cordis.patch.yml 中启用 id: feishu-bridge,并配置 appIdappSecretEnvdomainrequireMentiondmMode

appIdappSecretEnv 为必填;domain 支持 feishulark。示例配置如下:

- id: feishu-bridge
  config:
    appId: <App ID>
    appSecretEnv: FEISHU_APP_SECRET
    domain: feishu
    requireMention: true
    dmMode: open

不要使用 insert 再创建一个同名 feishu-bridge 实例。

启动与验证

运行下面命令启动 DSH Web:

npx @deepseek-ai/dsh web

等待输出中出现:

feishu-bridge: WebSocket connected

经过上面的步骤后,可以做基础验证:

  • 单聊直接发送问题。
  • 群聊发送 @机器人 你的问题
  • 发送 /help 查看命令。

典型用法

在飞书中可以直接发送以下命令:

  • /reset
  • /compact
  • /workspace <目录绝对路径>
  • /mode read|write|full
  • /model <模型名>
  • /effort off|high|max
  • /stop
  • /feedback
  • /goal [目标|clear|edit <目标>|pause|resume]
  • /plan [off|描述]
  • /export
  • /session [编号|完整ID]
  • /help

飞书权限

默认接收单聊、群聊 @机器人 消息并回复时,需要以下权限:

im:message.p2p_msg:readonly
im:message.group_at_msg:readonly
im:message:send_as_bot

群聊 /reset 要求管理员权限时,需要:

im:chat:readonly

事件订阅使用 im.message.receive_v1

注意与限制

  • 当前只处理文本消息,图片、富文本、文件、卡片等未支持。
  • 回答为一次性发送,非流式输出;执行过程回传工具调用开始和中间回复,不回传工具结果。
  • 过程消息、中间回复、自主轮次结果和问题会发到群聊根消息,话题内会话也不例外。
  • 没有持久化 chatId → sessionId 映射;DSH 重启后,已有飞书聊天会重建新 Session。
  • 一个飞书应用不要同时运行多个长连接消费者,否则事件会被随机分发,导致消息丢失或异常。
  • 插件以当前 dsh 进程权限运行,安装前应检查源码和 MIT 许可证。
  • 本文只覆盖已核实的说明,具体行为以仓库文档和实际配置为准。

链接

羽毛球分组比赛记分
小程序二维码

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

Xiaoye