前言¶
DSH 插件体系允许把外部入口接入 Agent。对于希望在飞书或 Lark 中调用 DSH Agent 的场景,dsh-feishu-bridge 提供一个桥接:接收飞书机器人消息,转发给 DSH Agent,并把回答、过程提示和控制命令回传飞书。下面介绍它的定位、安装配置和当前边界。
这是什么¶
dsh-feishu-bridge 是一个 Feishu / Lark ↔ DeepSeek Harness(DSH)桥接插件。维护者是 ailoushu666,许可证为 MIT,package.json 版本为 0.2.1。
它支持 feishu 和 lark 两种 domain,可用于单聊和群聊中的 Agent 调用。
核心功能¶
- 使用飞书 WebSocket 长连接接收事件,无需公网 IP / 域名 / 内网穿透。
- 同一个飞书聊天或话题复用同一个 DSH Session,保留上下文;话题各自独立。
- 回复会关联触发消息,话题内的回复留在原话题。
- 默认只接收单聊和群聊中 @机器人 的消息。
- Agent 调用工具时回传执行过程提示,中间回复经节流队列转发。
- 收到消息后先返回“正在处理 / 排队中”回执;单轮超时自动停止并提示。
- DSH 自主轮次结果会主动推回飞书。
- Agent 选项问答可在飞书中通过编号、选项文字或自由文本回复。
- 支持飞书命令:
/reset、/compact、/workspace、/mode、/model、/effort、/stop、/feedback、/goal、/plan、/export、/session、/help。 - 可配置
provider、model、reasoningEffort、workspace、agentPreset等插件配置。 - 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,并配置 appId、appSecretEnv、domain、requireMention、dmMode。
appId 和 appSecretEnv 为必填;domain 支持 feishu 和 lark。示例配置如下:
- 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许可证。 - 本文只覆盖已核实的说明,具体行为以仓库文档和实际配置为准。