OpenClaw 多飞书机器人配置指南

OpenClaw 多飞书机器人配置指南

本文档介绍如何在 OpenClaw 中配置多个飞书机器人,分别绑定到不同的 Agent。


一、创建 Agent

1.1 创建 Agent 步骤

# 创建新的 Agent openclaw agents add<agent名称># 示例:创建 dailynews agent openclaw agents add dailynews 

1.2 查看 Agent 列表

openclaw agents list 

输出示例:

Agents: - main (default) Identity: 💼✨ 小美 Workspace: ~/.openclaw/workspace - dailynews Workspace: ~/.openclaw/workspace-dailynews 

1.3 配置 Agent 文件

每个 Agent 需要有自己的 workspace 目录和相关配置文件:

文件说明
IDENTITY.mdAgent 身份信息(名字、性格、emoji)
SOUL.mdAgent 核心价值观和行为准则
USER.md人类用户信息
AGENTS.mdAgent 的行为规范
HEARTBEAT.md主动模式任务清单
MEMORY.md长期记忆

1.4 Agent 完整配置示例

{"agents":{"list":[{"id":"main","default":true,"name":"小美","workspace":"/home/username/.openclaw/workspace"},{"id":"dailynews","name":"dailynews","workspace":"/home/username/.openclaw/workspace-dailynews"},{"id":"dev","name":"开发助理","workspace":"/home/username/.openclaw/workspace-dev"}]}}

二、配置 Channel(飞书)

2.1 在飞书开放平台创建机器人

  1. 打开 飞书开放平台
  2. 创建企业自建应用
  3. 在应用详情中获取:
    • App ID(如 cli_xxx
    • App Secret
  4. 添加权限:
    • contact:contact.base:readonly - 读取通讯录
    • im:message:send_as_bot - 发消息
    • im:message:receive - 收消息
  5. 发布应用

2.2 配置 openclaw.json

{"channels":{"feishu":{"enabled":true,"defaultAccount":"main","domain":"feishu","accounts":{"main":{"appId":"cli_第一个机器人的appId","appSecret":"第一个机器人的secret"},"dailynews":{"appId":"cli_第二个机器人的appId","appSecret":"第二个机器人的secret"},"dev":{"appId":"cli_第三个机器人的appId","appSecret":"第三个机器人的secret"}}}}}

2.3 验证 Channel 配置

openclaw channels list 

输出示例:

Chat channels: - Feishu main: configured, enabled - Feishu dailynews: configured, enabled - Feishu dev: configured, enabled 

三、绑定 Agent 到 Channel

3.1 使用命令绑定

# 绑定 agent 到指定飞书账号 openclaw agents bind--agent<agentId>--bind feishu:<accountId># 示例 openclaw agents bind--agent main --bind feishu:main openclaw agents bind--agent dailynews --bind feishu:dailynews 

3.2 或直接在配置文件中添加 bindings

{"bindings":[{"agentId":"main","match":{"channel":"feishu","accountId":"main"}},{"agentId":"dailynews","match":{"channel":"feishu","accountId":"dailynews"}},{"agentId":"dev","match":{"channel":"feishu","accountId":"dev"}}]}

3.3 查看绑定结果

openclaw agents bindings 

输出示例:

Routing bindings: - dailynews <- feishu accountId=dailynews - main <- feishu accountId=main - dev <- feishu accountId=dev 

四、配置用户白名单

4.1 创建白名单文件

使用openclaw pairing approve 形式配置飞书后,发现只能同时有一个正常工作,所以改用白名单形式

vim ~/.openclaw/credentials/feishu-allowFrom.json 

内容:

{"version":1,"allowFrom":["ou_用户的open_id_1","ou_用户的open_id_2"]}

4.2 获取用户 open_id

推荐使用飞书开放平台的 API 工具获取:

  1. 打开 https://open.feishu.cn/document/server-docs/contact-v3/user/get
  2. 在页面中的 user_id 参数处选择用户
  3. 点击"尝试"按钮
  4. 返回结果中会显示用户的 user_idopen_id

或者在飞书中:

  • 打开用户主页 → 点击分享 → 复制链接,链接中包含用户ID

4.3 说明

  • 使用 allowFrom 白名单后,不需要执行 openclaw pairing approve
  • 白名单更安全,只允许特定用户使用该机器人

五、重启并验证

5.1 重启 Gateway

openclaw gateway restart 

5.2 测试

用不同的飞书机器人发送消息,检查是否路由到对应的 Agent。


六、注意事项

6.1 多账号限制

  • OpenClaw 当前版本(2026.3.x)飞书多账号功能在完善中
  • 主要限制:一次只能配对(pairing)一个机器人
  • 解决:使用 allowFrom 白名单机制,避免 pairing

七、完整配置示例

{"agents":{"list":[{"id":"main","default":true,"name":"小美","workspace":"/home/username/.openclaw/workspace"},{"id":"dailynews","name":"dailynews","workspace":"/home/username/.openclaw/workspace-dailynews"}]},"channels":{"feishu":{"enabled":true,"defaultAccount":"main","domain":"feishu","accounts":{"main":{"appId":"cli_xxx1","appSecret":"secret1"},"dailynews":{"appId":"cli_xxx2","appSecret":"secret2"}}}},"bindings":[{"agentId":"main","match":{"channel":"feishu","accountId":"main"}},{"agentId":"dailynews","match":{"channel":"feishu","accountId":"dailynews"}}]}

八、常见问题

Q: 提示 “access not configured”

A: 确认 channels.feishu.accounts 中是否配置了对应账号

Q: 提示权限错误

A: 需要在飞书开放平台授权:
https://open.feishu.cn/app/{appId}/auth?q=contact:contact.base:readonly

Q: 绑定后不生效

A: 执行 openclaw gateway restart 重启 Gateway

Read more

Java Web 公交线路查询系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

Java Web 公交线路查询系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 随着城市化进程的加速,公共交通系统的复杂性和规模不断扩大,传统的公交线路查询方式已难以满足用户高效、精准的出行需求。公交线路查询系统的开发旨在解决这一问题,通过信息化手段提升公交出行的便捷性和智能化水平。该系统整合了公交线路、站点、换乘等关键信息,为用户提供实时查询、最优路径推荐等功能,同时优化公交资源管理效率。关键词:公交线路查询、智能化出行、信息化管理、SpringBoot、Vue3。 本系统采用前后端分离架构,后端基于SpringBoot2框架,结合MyBatis-Plus实现高效数据持久化操作,MySQL8.0作为数据库存储公交线路、站点及用户信息。前端使用Vue3构建响应式用户界面,提供线路查询、换乘推荐、站点导航等功能。系统支持多条件筛选和动态路径规划,确保用户能够快速获取最优出行方案。关键词:SpringBoot2、Vue3、MyBatis-Plus、MySQL8.0、路径规划。 数据表 公交线路数据表 公交线路数据表用于存储公交线路的基本信息,包括线路名称、运营方向、首末班时间等属性。线路编号是该表的主键,用于唯一标识每条线路。结构表如表3-1所示。

轻松搭建个人WebDAV文件服务器:小白也能快速上手

轻松搭建个人WebDAV文件服务器:小白也能快速上手 【免费下载链接】webdavSimple Go WebDAV server. 项目地址: https://gitcode.com/gh_mirrors/we/webdav 还在为多设备间文件同步而烦恼吗?想要拥有一个安全可靠的文件共享平台吗?这个基于Go语言开发的WebDAV服务器正是你需要的解决方案。它简单易用、功能强大,让你轻松搭建专属的文件管理服务。 🎯 快速上手:三种部署方式任你选 方式一:一键安装(推荐新手) # 使用Homebrew安装 brew install webdav # 使用Go工具链安装 go install github.com/hacdias/webdav/v5@latest 方式二:Docker容器化部署 docker run -p 6060:6060 -v $(pwd)/data:/data

微信 H5 缓存控制:后端重定向 & 前端强制刷新

在 Web 开发中,缓存是一把双刃剑。对于静态资源,它能极大提升加载速度;但对于业务逻辑频繁变动的 H5 页面(如支付、订单页),缓存往往会导致用户看到过期的数据或界面。最近在维护一个 uni-app 项目时,遇到了一段关于 H5 缓存控制的逻辑,引发了我对于“后端重定向加时间戳”和“前端 JS 加时间戳”这两种方案的思考。虽然两者的最终目的一致,但在 Hash 模式下,它们的实现原理和效果有着本质的区别。 一、 问题背景 在应用启动的生命周期中,通常会有这样一段逻辑:当用户访问特定的关键页面(如支付、订单页)时,如果当前 URL 中缺少时间戳参数,前端会自动解析 URL,追加当前时间戳,并强制页面刷新。 这就引出了一个问题:为什么不直接在后端重定向时加时间戳?这两种方式有什么区别? 二、 核心区别:

AI 时代,前端逆向的门槛已经低到离谱 — 以 Upwork 为例

我用 AI 逆向 Upwork 消息系统,2小时搞定数据层开发 前言 作为 Upwork 自由职业者,我一直觉得它的消息管理界面信息量太大,不够直观。我想做一个 Chrome 插件来简化消息管理,核心需求很简单:一眼看出哪些对话需要我回复,哪些在等对方。 传统做法是下载混淆后的 JS 文件慢慢分析,但这次我决定换个思路——全程和 AI 配合,看看能多快搞定。 结果远超预期。从零开始到完全摸清 API、认证方式、数据结构,总共不到 2 小时。 第一步:摸清技术栈(5分钟) 打开 Upwork 消息页面,F12 看 Sources 面板,从加载的 JS 文件名就能判断出技术栈: ThunderNuxt/rooms.fdb6ff58.