前言¶
DeepSeek Harness (DSH) 采用插件化架构,允许通过即时通讯工具与项目交互。在构建智能体时,通常需要应用具备消息接收与发送能力。传统方案往往依赖 HTTP 回调,要求应用暴露公网地址,这在某些网络环境或安全要求较高的场景下难以实施。
dsh-feishu-bot 插件解决了这一问题。它通过飞书应用机器人建立连接,利用 WebSocket 长连接代替公网回调,无需暴露任何 URL。同时,它支持通过二维码完成应用的安全绑定,免去了手动复制 App ID 和 App Secret 的繁琐步骤。
dsh-feishu-bot 简介¶
dsh-feishu-bot 是由用户 452926826 开发的联网工具类插件。其核心价值在于将 DSH 的项目管理与对话能力接入飞书环境,使开发者能够通过飞书客户端直接操作 Harness 的资源。
核心功能¶
该插件主要提供以下能力:
- 长连接通信:使用 WebSocket 保持与飞书的持久连接,支持自动重连和心跳检测,无需公网回调 URL。
- 安全绑定:首次使用时,通过终端显示的二维码创建并授权飞书应用。应用创建完成后,凭证(包括 App Secret)仅保存在本地,不会写入代码仓库。
- 资源管理:通过飞书命令列表、选择和创建 DSH 的项目与对话。
- 操作审批:当工具请求操作时,插件会通过飞书发送待审批通知,支持通过
/approve或/reject命令进行批准或拒绝。 - 消息广播:支持将对话完成通知广播至额外的飞书群组(通过环境变量配置)。
安装与配置¶
安装前请确保系统已安装 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:显示帮助信息。
注意事项¶
- 二维码有效期:终端显示的绑定二维码通常在 10 分钟后过期,超时后需重启 DSH 重新生成。
- 凭证存储:绑定凭证保存在
~/.dsh/feishu-bot/credentials.json,文件权限为 0600。 - 权限隔离:普通机器人消息会作为用户指令提交给 Harness,拥有与当前活动 DSH 配置文件相同的权限。建议配置
FEISHU_ALLOWED_CHATS以限制可交互的群组,避免非预期的操作。 - 许可证:插件未明确说明具体的许可证信息。
- 构建依赖:如果在安装过程中遇到
protobufjs构建警告,可在对应的pnpm-workspace.yaml中添加allowBuilds: protobufjs: true。