# 飞书 (Feishu / Lark) 机器人接入指南 > 通过飞书官方开放平台 **WebSocket 长连接(免公网 IP)** 模式,将本地 DeepSeek Harness 接入飞书,支持单聊、群聊、表格命令与原生交互卡片权限审批。 --- ## 🌟 核心优势 - **100% 免公网 IP**:基于飞书官方最新 WebSocket 长连接协议,无需配置公网服务器、无需域名、无需内网穿透工具。 - **免验签与加密配置**:长连接由飞书官方 SDK 在建立通道时完成认证,无需开发者手动处理 HTTP 回调验签。 - **飞书原生交互卡片**:Agent 触发敏感工具审批时,飞书端下发带点击按钮的交互卡片,手机/电脑端单手一键点击即可完成批准或拒绝。 - **多工作区与会话持久化**:支持 `/sessions` 表格查看历史会话、`/use <序号>` 极速切换、`/workspaces` 工作区调度。 --- ## 🛠️ 第一步:创建飞书企业自建应用 1. 登录 [飞书开放平台开发者后台](https://open.feishu.cn/app); 2. 点击右上角 **「创建企业自建应用」**,填写应用名称(如 `DeepSeek Harness`)与应用描述,上传机器人头像; 3. 创建完成后,在左侧导航栏点击 **「凭证与基础信息」**,即可查看到: - **App ID**(格式如 `cli_a1b2c3d4...`) - **App Secret**(点击复制密钥) --- ## 🤖 第二步:添加机器人能力 1. 在应用详情页左侧导航栏,点击 **「添加应用能力」**; 2. 找到 **「机器人」**,点击 **「添加」** 开启机器人能力。 --- ## 🔐 第三步:开通必要权限 在左侧导航栏点击 **「权限管理」**,搜索并开通以下权限: | 权限名称 | 权限 Key | 权限说明 | | :--- | :--- | :--- | | **获取与发送单聊/群聊消息** | `im:message` | 基础消息收发权限 | | **以应用的身份发消息** | `im:message:send_as_bot` | 允许机器人向用户/群回复消息 | | **获取群组中所有消息** | `im:message.group_msg` | 允许机器人在群聊中被 `@` 时接收消息 | | **获取用户 user ID** | `contact:user.id:readonly` | (可选) 获取用户信息 | --- ## ⚡ 第四步:开启 WebSocket 长连接事件订阅 1. 在左侧导航栏点击 **「事件与回调」**; 2. 在 **「事件配置」** 页面,将事件接收方式切换为 **「使用长连接接收事件」**(WebSocket 模式); 3. 点击 **「添加事件」**,勾选并添加: - **`im.message.receive_v1`**(接收消息) - **`card.action.trigger`**(消息卡片回传交互 / 审批按钮点击) 4. 保存配置。 --- ## 🚀 第五步:版本发布 1. 在左侧导航栏点击 **「版本管理与发布」**; 2. 点击 **「创建版本」**,填写版本号(如 `1.0.0`),设置应用可用范围(如「所有员工」或「仅自己」); 3. 点击 **「申请发布」**(自建应用通常由企业管理员直接免审或一键通过)。 --- ## 📱 第六步:在 DSH 客户端中连接 1. 打开 DeepSeek Harness,进入「设置」➔「远程访问」➔「IM 机器人」➔ 选择 **「飞书」**; 2. 在表单中填入刚才复制的 **App ID** 和 **App Secret**; 3. 点击 **「保存并连接」**; 4. 状态显示为绿色 **「已连接」** 即表示长连接成功建立! ![飞书机器人配置](screenshots/feishu-bot-config.jpg) --- ## 💬 常用操作与指令 在飞书与机器人单聊或在群里 `@机器人` 即可开始对话: ### 1. 会话与工作区管理 | 指令 | 说明 | 示例 | | :--- | :--- | :--- | | `/sessions` | 查看所有历史会话表格 | `/sessions` 或 `/list` | | `/use <编号>` | 切换到指定编号会话 | `/use 1` 或 `/resume 1` | | `/new <提示词>` | 在当前工作区创建新会话并开始 | `/new 帮我写个脚本` | | `/new <词> @N` | 在指定工作区新建会话 | `/new 帮我写个脚本 @1` | | `/rename <新标题>` | 重命名当前活动会话 | `/rename 优化登录交互` | | `/workspaces` | 查看所有已注册的工作区列表 | `/workspaces` | | `/addworkspace <路径>` | 注册添加新的电脑工作区目录 | `/addworkspace D:\projects\app` | | `/status` | 查看 Agent 运行状态看板 | `/status` | | `/stop` | 中断停止当前正在执行的任务 | `/stop` | | `/end` | 结束当前会话回到空闲状态 | `/end` | ### 2. 权限审批交互 当 Agent 尝试执行需授权的操作(如终端命令、写敏感文件)时,飞书端会自动推送 **原生交互卡片**: - 点击卡片上的 **「✓ 批准执行」** 或 **「✕ 拒绝执行」** 按钮即可一键处理; - 亦可直接回复文字 `/yes` (或 `1`) / `/no` (或 `2`)。 ![飞书对话与卡片审批](screenshots/feishu-chat.jpg) --- ## ❓ 常见问题 (FAQ) ### Q1: 点击卡片上的「批准」/「拒绝」按钮提示无权限或无反应? 请依次核对以下三项飞书开放平台配置: 1. **是否订阅了卡片交互事件**:在开放平台后台 **「事件与回调」➔「事件配置」** 中,必须添加 **`card.action.trigger`**(消息卡片回传交互)事件。若只添加了接收消息事件,卡片点击不会下发回调。 2. **是否发布了新版本生效**:飞书平台的所有权限与事件变更,**必须在「版本管理与发布」中「创建版本」并申请发布通过后才会生效**。 3. **应用可用范围**:在「版本管理与发布」中,确认应用可用范围包含了您当前的飞书账号(建议设为「所有员工」或将自己加入可用成员)。 4. **快速应急处理**:如果卡片按钮暂时受网络或配置影响,可直接在聊天中回复文字 **`/yes`**(或 `1`)批准,回复 **`/no`**(或 `2`)拒绝。 ### Q2: 机器人无法在群聊中回复消息? 1. 确保在「权限管理」中开通了 **`im:message.group_msg`**(获取群组中所有消息)权限; 2. 确保在「版本管理与发布」中发布了包含该权限的新版本; 3. 将机器人拉入群聊后,需要 **`@机器人`** 唤醒并发送指令。