dsh-feishu-bot:通过飞书机器人连接 DeepSeek Harness 项目

前言

DeepSeek Harness (DSH) 采用插件化架构,允许通过即时通讯工具与项目交互。在构建智能体时,通常需要应用具备消息接收与发送能力。传统方案往往依赖 HTTP 回调,要求应用暴露公网地址,这在某些网络环境或安全要求较高的场景下难以实施。

dsh-feishu-bot 插件解决了这一问题。它通过飞书应用机器人建立连接,利用 WebSocket 长连接代替公网回调,无需暴露任何 URL。同时,它支持通过二维码完成应用的安全绑定,免去了手动复制 App ID 和 App Secret 的繁琐步骤。

dsh-feishu-bot 简介

dsh-feishu-bot 是由用户 452926826 开发的联网工具类插件。其核心价值在于将 DSH 的项目管理与对话能力接入飞书环境,使开发者能够通过飞书客户端直接操作 Harness 的资源。

核心功能

该插件主要提供以下能力:

  1. 长连接通信:使用 WebSocket 保持与飞书的持久连接,支持自动重连和心跳检测,无需公网回调 URL。
  2. 安全绑定:首次使用时,通过终端显示的二维码创建并授权飞书应用。应用创建完成后,凭证(包括 App Secret)仅保存在本地,不会写入代码仓库。
  3. 资源管理:通过飞书命令列表、选择和创建 DSH 的项目与对话。
  4. 操作审批:当工具请求操作时,插件会通过飞书发送待审批通知,支持通过 /approve 或 /reject 命令进行批准或拒绝。
  5. 消息广播:支持将对话完成通知广播至额外的飞书群组(通过环境变量配置)。

安装与配置

安装前请确保系统已安装 Node.js 20 或更高版本。

安装命令:

dsh plugin --profile web add github:452926826/dsh-feishu-bot

可选环境变量:
安装后,可以通过环境变量微调行为:

# 指定项目根目录
export FEISHU_PROJECTS_ROOT='/absolute/path/to/projects'

# 限制允许操作 Harness 的飞书群组(推荐生产环境使用)
export FEISHU_ALLOWED_CHATS='oc_xxx,oc_yyy'

# 广播完成通知至额外群组(源对话也会收到通知)
export FEISHU_NOTIFY_CHATS='oc_ops,oc_owner'

常用命令

在飞书与机器人的对话中,使用以下命令进行操作:

  • /lp:列出当前所有项目。
  • /up + 项目名称或索引:选择一个现有项目。索引基于 /lp 的输出。
  • /np + 项目名称:在当前项目根目录下创建并选择一个新项目。
  • /lc:列出当前项目下的所有对话。
  • /uc:进入最近一次完成的对话,并返回其最后两条消息。
  • /uc + 索引:根据 /lc 的索引选择并进入某个对话。
  • /nc:在当前项目中创建并选择一个新对话。
  • /approve:批准当前待定的操作。
  • /reject:拒绝当前待定的操作。
  • /help:显示帮助信息。

注意事项

  1. 二维码有效期:终端显示的绑定二维码通常在 10 分钟后过期,超时后需重启 DSH 重新生成。
  2. 凭证存储:绑定凭证保存在 ~/.dsh/feishu-bot/credentials.json,文件权限为 0600。
  3. 权限隔离:普通机器人消息会作为用户指令提交给 Harness,拥有与当前活动 DSH 配置文件相同的权限。建议配置 FEISHU_ALLOWED_CHATS 以限制可交互的群组,避免非预期的操作。
  4. 许可证:插件未明确说明具体的许可证信息。
  5. 构建依赖:如果在安装过程中遇到 protobufjs 构建警告,可在对应的 pnpm-workspace.yaml 中添加 allowBuilds: protobufjs: true。
羽毛球分组比赛记分
小程序二维码

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

小夜