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

掌控消息全链路(4)——RabbitMQ/Spring-AMQP高级特性详解之事务与消息分发

掌控消息全链路(4)——RabbitMQ/Spring-AMQP高级特性详解之事务与消息分发

🔥我的主页:九转苍翎⭐️个人专栏:《Java SE》《Java集合框架系统精讲》《MySQL高手之路:从基础到高阶》《计算机网络》《Java工程师核心能力体系构建》《RabbitMQ理论与实践》天行健,君子以自强不息。 1.事务 AMQP(高级消息队列协议)实现了事务机制,主要用于确保消息的原子性发布和确认。换言之,它允许你将多个操作(如发送消息、确认消息)绑定在一起,要么全部成功,要么全部失败 发送消息 @RestController@RequestMapping("/producer")publicclassProducerController{@Resource(name ="transRabbitTemplate")privateRabbitTemplate transRabbitTemplate;@Transactional@RequestMapping("/trans")publicStringtrans(){ transRabbitTemplate.convertAndSend(""

By Ne0inhk
C语言程序调试常用方法与技巧

C语言程序调试常用方法与技巧

C语言程序调试常用方法与技巧 一、学习目标与重点 学习目标 * 理解程序调试的基本概念 * 掌握常用调试工具的基本使用方法 * 学会使用调试技巧定位程序中的错误 * 提高程序调试的效率和准确率 学习重点 * 调试工具的安装与配置 * 断点设置与单步调试 * 变量值查看与内存分析 * 错误定位与修复技巧 二、程序调试的基本概念 2.1 调试的定义与意义 调试是指在程序运行过程中,通过观察和分析程序的行为,定位并修复错误的过程。程序调试的主要目的是提高程序的正确性和可靠性,确保程序能够按照预期的方式运行。 2.2 调试的主要步骤 1. 发现问题:通过测试或用户反馈,发现程序中的错误。 2. 定位问题:通过调试工具和技术,确定错误所在的位置和原因。 3. 修复问题:修改代码,修复错误。 4. 验证修复:重新测试程序,确保错误已经修复,并且没有引入新的错误。 2.3 调试的常见方法 * 输出调试:在程序中插入打印语句,输出变量值和程序执行路径。 * 单步调试:

By Ne0inhk
构建基于 Rust 与 GLM-5 的高性能 AI 翻译 CLI 工具:从环境搭建到核心实现全解析

构建基于 Rust 与 GLM-5 的高性能 AI 翻译 CLI 工具:从环境搭建到核心实现全解析

前言 随着大语言模型(LLM)能力的飞速提升,将 AI 能力集成到终端命令行工具(CLI)中已成为提升开发效率的重要手段。Rust 语言凭借其内存安全、零成本抽象以及极其高效的异步运行时,成为构建此类高性能网络 IO 密集型应用的首选。本文将深度剖析如何使用 Rust 语言,结合智谱 AI 的 GLM-5 模型,从零构建一个支持流式输出、多语言切换及文件批处理的 AI 翻译引擎。 本文将涵盖环境配置、依赖管理、异步网络编程、流式数据处理(SSE)、命令行参数解析以及最终的二进制发布优化。 第一部分:Rust 开发环境的系统级构建 在涉足 Rust 编程之前,必须确保底层操作系统具备必要的构建工具链。Rust 虽然拥有独立的包管理器,但在链接阶段依赖于系统的 C 语言编译器和链接器,尤其是在涉及网络库(如 reqwest 依赖的 OpenSSL)

By Ne0inhk
PostgreSQL - 连接数配置:max_connections 优化与连接池

PostgreSQL - 连接数配置:max_connections 优化与连接池

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🎯 本文将围绕PostgreSQL这个话题展开,希望能为你带来一些启发或实用的参考。 🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获! 文章目录 * PostgreSQL - 连接数配置:max_connections 优化与连接池 * 理解 PostgreSQL 连接机制 💡 * 连接的内存开销 📊 * 默认配置分析 🔍 * max_connections 参数详解 ⚙️ * 参数位置和修改方式 * 相关依赖参数 * 1. shared_buffers * 2. max_locks_per_transaction * 3. autovacuum_max_workers * 计算合理的 max_connections 值 🧮 * 连接池的重要性 🏊‍♂️ * 为什么需要连接池? * 连接池的

By Ne0inhk