一、方案背景与价值
在企业数字化办公与AI协同场景中,单一AI机器人已无法满足多角色分工、业务隔离、权限精细化管控的需求。OpenClaw(龙虾)作为轻量级AI网关,支持单实例多Agent(智能体/数字员工)架构,结合飞书开放平台的机器人能力,可快速搭建“一人一机器人、一岗一智能体”的多数字员工团队,实现:
- 分工协作:不同Agent绑定专属飞书机器人,负责研发、运营、行政、客服等独立业务场景
- 数据隔离:各Agent拥有独立记忆、配置与工具权限,避免业务数据交叉泄露
- 低耗高效:单OpenClaw实例运行多Agent,无需多进程部署,资源占用降低70%+
- 权限可控:飞书侧管控接口调用范围,OpenClaw侧约束工具执行权限,双重安全保障
本文基于实际落地的openclaw.json配置,从架构设计、飞书配置、OpenClaw多Agent部署、权限体系、运维验证全流程,给出可直接落地的企业级接入方案,新手也能快速上手。
二、核心架构设计(单实例多机器人模式)
2.1 三层核心关系(关键理解)
方案核心是“飞书账号(Accounts)→路由绑定(Bindings)→智能体(Agents)”的映射关系,三者一一对应、独立隔离,具体对应关系如下:
| 层级 | 定义 | 通俗理解 | 配置位置 |
|---|---|---|---|
| Accounts(飞书账号) | 飞书开放平台创建的自建应用,含AppID/AppSecret | 机器人的“身份证”,用于飞书身份验证 | channels.feishu.accounts |
| Bindings(路由绑定) | 飞书账号与OpenClaw Agent的映射规则 | 消息“导航系统”,决定消息交给哪个Agent处理 | channels.feishu.bindings |
| Agents(智能体) | OpenClaw独立工作单元,含人设、模型、工具权限 | 机器人的“大脑”,执行业务逻辑与对话 | agents.list |
2.2 方案优势对比
| 部署模式 | 资源占用 | 数据隔离 | 维护成本 | 适用场景 |
|---|---|---|---|---|
| 单实例多Agent(本文方案) | 极低(共享进程) | 强(独立配置/记忆) | 低(统一运维) | 企业多员工、多业务分工 |
| 多实例单Agent | 高(多进程) | 极强 | 高(多配置维护) | 超敏感业务、完全物理隔离 |
| 单实例单Agent | 低 | 无(共享所有数据) | 极低 | 个人使用、简单场景 |
三、前置准备
- 环境:Windows/macOS/Linux,已安装OpenClaw(2026.4+版本)
- 飞书账号:企业版/个人版,具备创建企业自建应用权限
- AI模型:已配置MiniMax/通义千问等模型(本文以MiniMax-M2.7为例)
- 权限:企业飞书需提前联系管理员,获取应用权限开通审批权限
四、飞书开放平台配置(多机器人创建)
4.1 批量创建飞书自建应用(N个员工=N个应用)
- 登录飞书开放平台 → 进入开发者后台 → 点击创建企业自建应用
- 填写应用信息(按员工/角色命名,如“AI助手-Tooann”“AI助手-董小龙”)→ 上传图标 → 点击创建
- 重复操作,为每个员工创建1个独立应用(本文以5个员工为例)
4.2 开通机器人能力(必选)
每个应用依次操作:左侧菜单 → 添加应用能力 → 找到机器人 → 点击开通 → 配置机器人名称/头像(与员工姓名对应,便于区分)
4.3 权限配置(双重安全:基础+分级)
4.3.1 必选基础权限(所有机器人通用)
进入权限管理 → 点击批量导入 → 粘贴以下JSON → 格式化 → 申请开通
{
"scopes": {
"tenant": [
"im:message",
"im:message:send_as_bot",
"im:message.p2p_msg:readonly",
"im:message.group_at_msg:readonly",
"im:chat:readonly",
"contact:user.base:readonly"
]
}
}
核心作用:接收/发送消息、读取私聊/群聊@消息、获取用户基础信息
4.3.2 分级权限(按员工角色配置)
| 员工角色 | 新增权限 | 用途 | 风险等级 |
|---|---|---|---|
| 研发(Tooann) | doc:content, sheet:read, bitable:all | 读取/编辑云文档、表格、多维表格 | 中 |
| 运营(董小龙) | calendar:all, task:all | 管理日历、创建/跟进任务 | 低 |
| 行政(赖伯良) | contact:readonly, reminders:write | 读取通讯录、创建提醒 | 低 |
| 客服(彭阳) | im:resource, chat:members | 接收图片/文件、查看群成员 | 中 |
| 新员工(陈嘉明) | 仅基础权限 | 仅基础对话,无业务工具权限 | 极低 |
4.3.3 禁用高危权限(全局强制)
所有机器人严禁开通以下权限,防止数据泄露与越权操作:
- camera.snap/screen.record:摄像头/录屏权限
- sms.send/contacts.add:发送短信、修改通讯录
- im:message:group_msg:readonly:监听群内所有消息(非@消息)
4.4 事件订阅(接收消息)
- 左侧菜单 → 事件与回调 → 事件配置
- 订阅方式:选择使用长连接接收事件(无需公网IP/域名,首选)
- 添加事件:搜索接收消息 v2.0(im.message.receive_v1)→ 勾选 → 保存
4.5 发布应用(生效配置)
- 左侧菜单 → 版本管理与发布 → 创建版本
- 填写版本号(如1.0.0)、更新说明 → 移动端/桌面端能力均选机器人
- 点击保存 → 确认发布(个人账号立即生效,企业账号需管理员审核)
4.6 获取凭证(关键)
每个应用进入凭证与基础信息 → 复制AppID(cli_开头)、AppSecret(妥善保管,禁止泄露),后续用于OpenClaw配置。
五、OpenClaw多员工配置(核心落地)
基于实际落地配置,新增第5个员工(陈嘉明),实现5Agent+5飞书机器人的完整配置,直接替换openclaw.json即可使用:
{
"agents": {
"defaults": {
"workspace": "C:\Users\Scale.Sun\.openclaw\workspace",
"models": {
"minimax/MiniMax-M2.7": {
"alias": "Minimax"
}
},
"model": {
"primary": "minimax/MiniMax-M2.7"
},
"compaction": {
"mode": "safeguard"
}
},
"list": [
{ "id": "001_agent", "name": "Tooann", "role": "研发", "permissions": "full" },
{ "id": "002_agent", "name": "董小龙", "role": "运营", "permissions": "medium" },
{ "id": "003_agent", "name": "赖伯良", "role": "行政", "permissions": "low" },
{ "id": "004_agent", "name": "彭阳", "role": "客服", "permissions": "medium" },
{ "id": "005_agent", "name": "陈嘉明", "role": "新员工", "permissions": "basic" }
]
},
"gateway": {
"mode": "local",
"auth": {
"mode": "token",
"token": "830a2194cde49209b155c5a893d6f3227f0de51d8965af97"
},
"port": 18789,
"bind": "loopback",
"tailscale": {
"mode": "off",
"resetOnExit": false
},
"controlUi": {
"allowInsecureAuth": true
},
"nodes": {
"denyCommands": [
"camera.snap", "camera.clip", "screen.record",
"contacts.add", "calendar.add", "reminders.add",
"sms.send", "sms.search"
]
}
},
"session": {
"dmScope": "per-channel-peer"
},
"tools": {
"profile": "coding",
"alsoAllow": [
"feishu_bitable_app",
"feishu_bitable_app_table",
"feishu_bitable_app_table_field",
"feishu_bitable_app_table_record",
"feishu_bitable_app_table_view",
"feishu_calendar_calendar",
"feishu_calendar_event",
"feishu_calendar_event_attendee",
"feishu_calendar_freebusy",
"feishu_chat",
"feishu_chat_members",
"feishu_create_doc",
"feishu_doc_comments",
"feishu_doc_media",
"feishu_drive_file",
"feishu_fetch_doc",
"feishu_get_user",
"feishu_im_bot_image",
"feishu_im_user_fetch_resource",
"feishu_im_user_get_messages",
"feishu_im_user_get_thread_messages",
"feishu_im_user_message",
"feishu_im_user_search_messages",
"feishu_oauth",
"feishu_oauth_batch_auth",
"feishu_search_doc_wiki",
"feishu_search_user",
"feishu_sheet",
"feishu_task_comment",
"feishu_task_subtask",
"feishu_task_task",
"feishu_task_tasklist",
"feishu_update_doc",
"feishu_wiki_space",
"feishu_wiki_space_node"
],
"deny": ["shell", "local_file_delete", "system_exec"]
},
"models": {
"mode": "merge",
"providers": {
"minimax": {
"baseUrl": "https://api.minimaxi.com/anthropic",
"models": [
{
"id": "MiniMax-M2.7",
"name": "MiniMax M2.7",
"reasoning": true,
"input": ["text","image"],
"cost": {
"input": 0.3, "output": 1.2,
"cacheRead": 0.06, "cacheWrite": 0.375
},
"contextWindow": 204800,
"maxTokens": 131072
}
],
"api": "anthropic-messages",
"authHeader": true
}
}
},
"auth": {
"profiles": {
"minimax:cn": {
"provider": "minimax",
"mode": "api_key"
}
}
},
"wizard": {
"lastRunAt": "2026-04-13T08:50:25.227Z",
"lastRunVersion": "2026.4.11",
"lastRunCommand": "onboard",
"lastRunMode": "local"
},
"meta": {
"lastTouchedVersion": "2026.4.11",
"lastTouchedAt": "2026-04-15T03:45:51.900Z"
},
"plugins": {
"entries": {
"minimax": { "enabled": true },
"feishu": { "enabled": false },
"openclaw-lark": { "enabled": true }
},
"installs": {
"openclaw-lark": {
"source": "archive",
"sourcePath": "C:\Users\Scale.Sun\AppData\Local\Temp\openclaw-lark-EBMwz5\larksuite-openclaw-lark-2026.4.7.tgz",
"installPath": "C:\Users\Scale.Sun\.openclaw\extensions\openclaw-lark",
"version": "2026.4.7",
"installedAt": "2026-04-15T03:43:52.218Z"
}
},
"allow": ["openclaw-lark","minimax","memory-core"]
},
"channels": {
"feishu": {
"enabled": true,
"domain": "feishu",
"connectionMode": "websocket",
"requireMention": false,
"accounts": {
"001": {
"appId": "cli_a955b5ac6678dcb2",
"appSecret": "xsw3yx0G7u7juX47KOFuudlNqL2mbpdX"
},
"002": {
"appId": "cli_a955fa14847b1cc5",
"appSecret": "RtNpfQ8HHAGkh2zcuCZIugOdck0EMxGG"
},
"003": {
"appId": "cli_a955b12ddaf8dcd4",
"appSecret": "AxjoPfDbvMf8JdI4ZqAmagOsTrWMCodf"
},
"004": {
"appId": "cli_a955b1d0c0f81ccb",
"appSecret": "mNmEFqUlWtAIPLdDcACJ6dIRVp6ZGGpu"
},
"005": {
"appId": "cli_xxxxxxxxx",
"appSecret": "xxxxxxxxx"
}
},
"bindings": [
{
"agentId": "001_agent",
"match": { "channel": "feishu", "accountId": "001" }
},
{
"agentId": "002_agent",
"match": { "channel": "feishu", "accountId": "002" }
},
{
"agentId": "003_agent",
"match": { "channel": "feishu", "accountId": "003" }
},
{
"agentId": "004_agent",
"match": { "channel": "feishu", "accountId": "004" }
},
{
"agentId": "005_agent",
"match": { "channel": "feishu", "accountId": "005" }
}
]
}
}
}
5.1 配置关键说明
- agents.list:新增005_agent(陈嘉明),标注角色与权限等级,实现人员扩展,可直接替换为实际员工信息
- channels.feishu.accounts:新增005账号,填入飞书开放平台获取的AppID/AppSecret(替换xxxxxxxxx为实际凭证)
- channels.feishu.bindings:新增路由绑定,确保005_agent ↔ 005飞书账号一一对应,避免消息错乱
- tools.deny:全局禁用shell/文件删除/系统执行等高危工具,保障服务器安全
六、双重权限体系(企业级安全核心)
6.1 飞书侧:接口权限管控(输入安全)
- 最小权限原则:每个机器人仅开通角色必需权限,禁止“全量开通”,减少安全风险
- 审批机制:企业版所有权限开通需管理员二次审批,防止越权配置
- 事件隔离:仅订阅im.message.receive_v1(接收消息),禁用其他敏感事件,避免数据泄露
6.2 OpenClaw侧:Agent权限管控(执行安全)
6.2.1 按角色分级工具权限
// 在agents.list中为每个Agent添加permissions配置
"permissions": {
"full": ["feishu_doc", "feishu_sheet", "feishu_bitable", "feishu_task"], // 研发
"medium": ["feishu_task", "feishu_calendar", "feishu_chat"], // 运营/客服
"low": ["feishu_chat", "feishu_get_user"], // 行政
"basic": ["feishu_chat"] // 新员工(仅基础对话)
}
6.2.2 高危操作约束
- 命令黑名单:gateway.nodes.denyCommands禁用摄像头、录屏、短信等高危指令,从源头规避风险
- 工具白名单:tools.alsoAllow仅开放飞书业务工具,禁用系统级工具,防止越权操作
- 记忆隔离:agents.defaults.compaction.mode=safeguard,开启记忆安全模式,防止跨Agent数据泄露
七、部署与重启验证
7.1 重启OpenClaw(配置生效必需)
- 关闭当前OpenClaw进程(Ctrl+C或关闭终端)
- 重新启动:执行openclaw run(Windows)或./openclaw run(macOS/Linux)
- 启动日志验证:出现[Feishu] 5 accounts connected(5个飞书账号连接成功),说明配置生效