Feishu AllAllow Skill v1.0.0
概述
本 Skill 专为手机远程操作 OpenClaw设计,通过飞书机器人实现完整的控制权限。
核心架构:
- 🎯 单网关 - 一个 OpenClaw Gateway 服务所有需求
- 📱 多飞书 - 多个飞书账号对接不同项目
- 🤖 多层子 Agent - 无限层级:主 Agent → 子 Agent → 孙 Agent → ...
- 🔌 飞书对接 - 飞书仅作为对接入口,子 Agent 独立运行
| 功能模块 | 说明 |
|---|---|
| 飞书权限配置 | 开放平台所需的所有权限和订阅事件 |
| OpenClaw 全权限 | 单网关配置,不改动底层代码 |
| 多飞书架构 | 多个飞书账号绑定不同项目 |
| 多层子 Agent | 无限层级创建子 Agent 执行独立任务 |
| 飞书 CLI | 完整的命令参考 |
1. 核心架构设计
1.1 单网关 + 多飞书 + 多层子 Agent 架构(无限层级)
┌─────────────────────────────────────────────────────────────┐
│ 用户层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 手机飞书 A │ │ 手机飞书 B │ │ 手机飞书 C │ │
│ │ (项目 1) │ │ (项目 2) │ │ (项目 3) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
└─────────┼────────────────┼────────────────┼────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ 飞书开放平台 │
│ (消息中转、语音转文字、文件存储) │
└─────────────────────────┬───────────────────────────────────┘
│ WebSocket / HTTPS
▼
┌─────────────────────────────────────────────────────────────┐
│ OpenClaw Gateway │
│ 【单网关 - 核心】 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 飞书通道层 (Feishu Channels) │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 飞书账号 A │ │ 飞书账号 B │ │ 飞书账号 C │ │ │
│ │ │ (项目 1) │ │ (项目 2) │ │ (项目 3) │ │ │
│ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │
│ │ │ │ │ │ │
│ │ ▼ ▼ ▼ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 主 Agent A │ │ 主 Agent B │ │ 主 Agent C │ │ │
│ │ │ (项目 1) │ │ (项目 2) │ │ (项目 3) │ │ │
│ │ │ 【第1层】 │ │ 【第1层】 │ │ 【第1层】 │ │ │
│ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │
│ │ │ │ │ │ │
│ │ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ │ │
│ │ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ │ │
│ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │
│ │ │子│ │子│ │子│ │子│ │子│ │子│ │子│ │子│ │子│ │ │
│ │ │A1│ │A2│ │A3│ │B1│ │B2│ │B3│ │C1│ │C2│ │C3│ │ │
│ │ │【│ │【│ │【│ │【│ │【│ │【│ │【│ │【│ │【│ │ │
│ │ │第│ │第│ │第│ │第│ │第│ │第│ │第│ │第│ │第│ │ │
│ │ │2 │ │2 │ │2 │ │2 │ │2 │ │2 │ │2 │ │2 │ │2 │ │ │
│ │ │层│ │层│ │层│ │层│ │层│ │层│ │层│ │层│ │层│ │ │
│ │ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ │ │
│ │ │ │ │ │ │
│ │ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ │ │
│ │ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ │ │
│ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │
│ │ │孙│ │孙│ │孙│ │孙│ │孙│ │孙│ │孙│ │孙│ │孙│ │ │
│ │ │A11 │ │ │ │ │ │ │ │ │ │ │ │
│ │ │【第3层】 │ │ │ │ │ │ │ │ │ │ │ │
│ │ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ │ │
│ │ │ │ │ │ │
│ │ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ │ │
│ │ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ │ │
│ │ (无限层级... 根据需要继续创建) │ │
│ │ │ │
│ │ 【每层都可以创建多个子 Agent,并行执行任务】 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 共享工具层 (Tools) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │
│ │ │ exec │ │ fs │ │ browser │ │feishu_*│ │ │
│ │ │ (执行命令)│ │(文件操作) │ │ (浏览器) │ │(飞书工具)│ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 语音转文字 (Docker) │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ FunASR SenseVoice Small (ONNX int8) │ │ │
│ │ │ - Docker 容器运行 │ │ │
│ │ │ - 所有飞书共享同一服务 │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
1.2 架构说明
| 层级 | 说明 | 职责 |
|---|---|---|
| 单网关 | 一个 OpenClaw Gateway | 统一入口,工具共享 |
| 多飞书 | 多个飞书账号 | 不同项目隔离 |
| 第1层 | 主 Agent | 接收指令,管理子 Agent |
| 第2层 | 子 Agent | 执行任务,可再创建孙 Agent |
| 第3层 | 孙 Agent | 执行子任务,可继续创建... |
| 第N层 | 无限层级 | 根据需要继续创建 |
| FunASR | Docker 运行的语音服务 | 所有飞书共享 |
关键原则:
- 飞书只是对接入口,不负责具体任务执行
- 无限层级:主 Agent → 子 Agent → 孙 Agent → ...
- 每层都可以创建多个子 Agent 并行工作
- 子 Agent 独立运行,你不需要管理子 Agent 内部
- 所有飞书共享同一套工具和语音转文字服务
- 单网关架构,无需多网关
1.3 多层子 Agent 工作模式
用户通过手机飞书 A 发送复杂任务
│
▼
主 Agent A (第1层) 接收任务
│
┌──────┼──────┐
│ │ │
▼ ▼ ▼
子A1 子A2 子A3 ← 第2层:并行执行
│ │ │
│ ┌──┴──┐ │
│ ▼ ▼ │
│ 孙A21 孙A22 │ ← 第3层:子A2 创建孙 Agent
│ │ │ │
│ ▼ ▼ │
│ 曾孙... │ ← 第4层:根据需要继续创建
│ │
└──────┬──────┘
│
▼
汇总结果返回用户
特点:
- 无限层级:根据需要可以创建任意多层
- 每层多子 Agent:每层都可以创建多个子 Agent 并行
- 独立生命周期:子 Agent 完成后自动释放资源
- 权限继承:子 Agent 继承父 Agent 的权限
2. 飞书开放平台配置
2.1 创建多个飞书应用
为每个项目创建一个飞书应用:
| 项目 | 飞书应用 | App ID | 用途 |
|---|---|---|---|
| 项目 1 | 飞书机器人 A | cli_xxx_a | 项目 1 对接 |
| 项目 2 | 飞书机器人 B | cli_xxx_b | 项目 2 对接 |
| 项目 3 | 飞书机器人 C | cli_xxx_c | 项目 3 对接 |
2.2 权限配置
每个飞书应用都需要添加以下权限:
# 消息权限
im:chat:readonly
im:message:send
im:message.group_msg
im:message.p2p_msg
# 文档权限
docx:document
docx:document:readonly
drive:drive
drive:file:read
drive:file:write
wiki:wiki
wiki:wiki:readonly
# 多维表格
bitable:app
bitable:app:readonly
# 用户权限
contact:user.department:readonly
application:scope
2.3 订阅事件
im.message.receive_v1
3. OpenClaw 配置
3.1 单网关 + 多飞书 + 多层子 Agent 配置
{
"acp": {
"defaultAgent": "xc",
"allowedAgents": ["xc", "claude", "codex", "gemini"]
},
"agents": {
"defaults": {
"workspace": "/home/user/.openclaw/workspace",
"sandbox": { "mode": "off" },
"model": { "primary": "kimi/kimi-2.5" }
},
"list": [
{
"id": "project1-main",
"workspace": "/home/user/.openclaw/workspace-project1",
"label": "project1-main",
"sandbox": { "mode": "off" }
},
{
"id": "project2-main",
"workspace": "/home/user/.openclaw/workspace-project2",
"label": "project2-main",
"sandbox": { "mode": "off" }
},
{
"id": "project3-main",
"workspace": "/home/user/.openclaw/workspace-project3",
"label": "project3-main",
"sandbox": { "mode": "off" }
}
]
},
"bindings": [
{
"agentId": "project1-main",
"match": { "channel": "feishu", "accountId": "project1" }
},
{
"agentId": "project2-main",
"match": { "channel": "feishu", "accountId": "project2" }
},
{
"agentId": "project3-main",
"match": { "channel": "feishu", "accountId": "project3" }
}
],
"channels": {
"feishu": {
"enabled": true,
"connectionMode": "websocket",
"domain": "feishu",
"groupPolicy": "open",
"subagentSecurity": "full",
"accounts": {
"project1": {
"appId": "cli_xxxxxxxxxxxx_a",
"appSecret": "xxxxxxxxxxxxxxxx_a",
"tools": {
"doc": true,
"chat": true,
"wiki": true,
"drive": true,
"perm": true,
"scopes": true
}
},
"project2": {
"appId": "cli_xxxxxxxxxxxx_b",
"appSecret": "xxxxxxxxxxxxxxxx_b",
"tools": {
"doc": true,
"chat": true,
"wiki": true,
"drive": true,
"perm": true,
"scopes": true
}
},
"project3": {
"appId": "cli_xxxxxxxxxxxx_c",
"appSecret": "xxxxxxxxxxxxxxxx_c",
"tools": {
"doc": true,
"chat": true,
"wiki": true,
"drive": true,
"perm": true,
"scopes": true
}
}
}
}
},
"tools": {
"profile": "full",
"exec": {
"host": "auto",
"security": "full",
"ask": "off"
},
"fs": {
"workspaceOnly": false
},
"sessions": {
"visibility": "all"
},
"elevated": {
"enabled": true,
"allowFrom": {
"feishu": ["ou_xxxxxxxxxxxxxxxx"]
}
}
},
"gateway": {
"bind": "lan",
"port": 18789,
"nodes": {
"denyCommands": []
},
"controlUi": {
"allowInsecureAuth": true,
"allowedOrigins": [
"http://127.0.0.1:18789",
"http://localhost:18789"
]
}
},
"hooks": {
"internal": {
"enabled": true,
"entries": {
"transcription": {
"enabled": true,
"provider": "funasr",
"config": {
"baseUrl": "http://localhost:10095",
"model": "sensevoice-small-onnx",
"modelType": "onnx-int8",
"language": "auto",
"quantize": true
}
}
}
}
}
}
3.2 配置说明
| 配置项 | 说明 |
|---|---|
agents.list |
每个项目一个主 Agent(第1层) |
bindings |
飞书账号绑定到对应主 Agent |
channels.feishu.accounts |
多个飞书账号配置 |
subagentSecurity: full |
允许创建无限层级子 Agent |
sessions.visibility: all |
父 Agent 可以管理所有子 Agent |
4. 多层子 Agent 工作流程
4.1 三层 Agent 工作流程示例
用户通过手机飞书 A 发送复杂项目任务
│
▼
┌─────────────────────┐
│ 主 Agent A │ ← 第1层:项目总控
│ (project1-main) │
│ 职责:任务分解 │
└──────────┬──────────┘
│
┌──────┼──────┐
│ │ │
▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐
│子A1 │ │子A2 │ │子A3 │ ← 第2层:模块执行
│(架构)│ │(后端)│ │(前端)│
└──┬───┘ └──┬───┘ └──┬───┘
│ │ │
│ ┌───┴───┐ │
│ ▼ ▼ │
│ ┌─────┐ ┌─────┐ │
│ │孙A21│ │孙A22│ │ ← 第3层:子任务
│ │(API)│ │(DB) │ │
│ └──┬──┘ └──┬──┘ │
│ │ │ │
│ ▼ ▼ │
│ (可根据需要继续创建第4层...) │
│
└──────┬──────────┘
│
▼
汇总结果返回用户
4.2 多层子 Agent 创建示例
// ========== 第1层:主 Agent ==========
// 主 Agent 接收到复杂项目任务
// 创建第2层子 Agent:架构设计
const archAgent = await sessions_spawn({
task: "设计系统架构",
label: "project1-arch",
mode: "session"
});
// 创建第2层子 Agent:后端开发
const backendAgent = await sessions_spawn({
task: "开发后端服务",
label: "project1-backend",
mode: "session"
});
// 创建第2层子 Agent:前端开发
const frontendAgent = await sessions_spawn({
task: "开发前端页面",
label: "project1-frontend",
mode: "session"
});
// ========== 第2层:子 Agent 创建第3层 ==========
// 后端 Agent (backendAgent) 可以创建孙 Agent
// 创建第3层孙 Agent:API 开发
const apiAgent = await sessions_spawn({
task: "开发 REST API",
label: "project1-api",
mode: "session"
});
// 创建第3层孙 Agent:数据库设计
const dbAgent = await sessions_spawn({
task: "设计数据库模型",
label: "project1-db",
mode: "session"
});
// ========== 第3层:孙 Agent 创建第4层 ==========
// API Agent 可以继续创建曾孙 Agent...
// 创建第4层曾孙 Agent:用户模块
const userModuleAgent = await sessions_spawn({
task: "开发用户模块 API",
label: "project1-user-api",
mode: "session"
});
// 创建第4层曾孙 Agent:订单模块
const orderModuleAgent = await sessions_spawn({
task: "开发订单模块 API",
label: "project1-order-api",
mode: "session"
});
// 无限层级... 每层都可以创建多个子 Agent
// 你不需要管理子 Agent 内部细节
4.3 多层子 Agent 优势
| 优势 | 说明 |
|---|---|
| 无限层级 | 主 → 子 → 孙 → 曾孙 → ... 无限创建 |
| 每层多子 Agent | 每层都可以创建多个子 Agent 并行 |
| 任务分解 | 复杂任务逐层分解,每层处理不同粒度 |
| 并行执行 | 同层多个子 Agent 同时工作 |
| 权限继承 | 子 Agent 继承父 Agent 的权限 |
| 独立生命周期 | 子 Agent 完成后自动释放资源 |
5. 语音转文字配置(所有飞书共享)
5.1 部署 FunASR(所有飞书共享)
所有飞书共享同一个语音转文字服务:
# 1. 创建模型目录
mkdir -p ~/.funasr/models
# 2. 启动 FunASR 服务(自动下载模型)
docker run -d \
--name funasr-sensevoice \
-p 10095:10095 \
-v ~/.funasr/models:/workspace/models \
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.5
# 3. 查看日志,等待模型下载完成
docker logs -f funasr-sensevoice
模型来源:
- 模型:SenseVoice Small ONNX int8 量化版
- 来源:ModelScope - manyeyes/sensevoice-small-int8-onnx
- 大小:约 229MB
- 语言:中文、英文、粤语、日语、韩语
说明:
- Docker 镜像会自动下载模型
- 模型下载完成后服务自动启动
- 所有飞书账号共享同一个语音转文字服务
5.2 模型信息
| 项目 | 说明 |
|---|---|
| 模型 | SenseVoice Small |
| 格式 | ONNX int8 量化 |
| 大小 | 约 229 MB |
| 语言 | 中文、英文、粤语、日语、韩语 |
| 共享 | 所有飞书账号共享 |
6. 飞书 CLI 命令参考
# 检查飞书配置
openclaw config get channels.feishu
# 配置项目 1 飞书
openclaw config set channels.feishu.accounts.project1.appId "cli_xxx_a"
openclaw config set channels.feishu.accounts.project1.appSecret "xxx_a"
# 重启网关
openclaw gateway restart
7. 系统要求
| 项目 | 要求 | 说明 |
|---|---|---|
| 操作系统 | Linux / macOS / WSL2 | 推荐环境 |
| OpenClaw | >= 2026.3.31 | 核心平台 |
| Node.js | >= 22.16 (推荐 24.x LTS) | OpenClaw 运行环境 |
| Docker | >= 20.10 | 语音转文字必需 |
| 内存 | >= 2GB RAM | 模型占用约 300MB |
环境支持:
| 环境 | 支持状态 |
|---|---|
| Linux (原生) | ✅ 完全支持 |
| macOS | ✅ 完全支持 |
| Windows (WSL2) | ✅ 完全支持 |
| Windows (原生) | ⚠️ 部分支持 |
| Android (Termux) | ✅ 支持 |
8. 版本历史
1.0.0 (2026-04-03)
- ✅ 初始版本
- ✅ 单网关 + 多飞书 + 多层子 Agent(无限层级)架构
- ✅ 飞书开放平台完整权限配置
- ✅ OpenClaw 2026.3.31 全权限配置
- ✅ 所有飞书共享 FunASR 语音转文字
- ✅ 多环境支持(Linux、macOS、WSL2、Android)
