如何在飞书群中调用多个 Agent
详解 OpenClaw 多 Agent 配置方案,实现群聊路由绑定和智能体间协作调用
如何在飞书群中调用多个 Agent
💡 本文适合人群:已经部署 OpenClaw 并接入飞书,需要在一个工作区管理多个 Agent,实现不同场景下调用不同智能体的开发者。
📋 前言
在实际工作中,我们经常需要不同的 AI 助手处理不同类型的任务:
- 🛠️ 技术助手 - 解答编程问题、代码审查
- ✍️ 文案助手 - 撰写文档、润色文章
- 📊 数据助手 - 数据分析、报表生成
- 💬 客服助手 - 回答常见问题、用户支持
如何在飞书群中灵活调用这些不同的 Agent?本文将详细介绍两种主流方案。
🎯 方案对比与选择
| 方案 | 实现方式 | 适用场景 | 复杂度 |
|---|---|---|---|
| 群聊路由绑定 | 不同飞书群绑定不同 Agent | 角色职责明确、团队分工清晰 | ⭐ 低 |
| 智能体间协作调用 | 同一群内通过指令动态调用 | 需要灵活切换、任务拆解协作 | ⭐⭐ 中 |
📌 方案一:群聊路由绑定(推荐)
这是最常见、最稳定的方式:为每个角色创建独立的飞书群,每个群绑定一个专属 Agent。
第一步:创建多个 Agent
为不同职责创建独立的 Agent 工作区:
# 创建技术助手
openclaw agents add tech-assistant --workspace ~/.openclaw/workspace-tech
# 创建文案助手
openclaw agents add writer-assistant --workspace ~/.openclaw/workspace-writer
# 创建数据助手
openclaw agents add data-assistant --workspace ~/.openclaw/workspace-data
说明:
- 每个 Agent 有独立的工作区和配置文件
- 可以为每个 Agent 配置不同的模型、工具权限
- 工作区之间相互隔离,互不影响
第二步:获取飞书群 ID
在需要绑定的飞书群里@你的机器人发送任意消息,然后查看 OpenClaw 日志:
tail -f ~/.openclaw/logs/gateway.log | grep "peer"
你会看到类似输出:
peer: { kind: 'group', id: 'oc_xxxxxxxxxx' }
记录下这个 id,格式为 oc_xxxxxxxxxx。
或者,在飞书群中点击右上角菜单 → 群设置,也可以查看群 ID。
第三步:配置路由绑定
修改 ~/.openclaw/openclaw.json,在 bindings 数组中添加规则:
{
"bindings": [
{
"agentId": "tech-assistant",
"match": {
"channel": "feishu",
"peer": {
"kind": "group",
"id": "oc_tech_group_id"
}
}
},
{
"agentId": "writer-assistant",
"match": {
"channel": "feishu",
"peer": {
"kind": "group",
"id": "oc_writer_group_id"
}
}
},
{
"agentId": "data-assistant",
"match": {
"channel": "feishu",
"peer": {
"kind": "group",
"id": "oc_data_group_id"
}
}
}
]
}
⚠️ 关键原则:
- 必须使用
peer.kind+peer.id的标准格式 kind可以是group(群聊)或user(私聊)- 不可随意添加未知字段,否则配置会失效
第四步:重启网关
openclaw gateway restart
验证配置
- 查看路由绑定:
openclaw config get bindings - 在飞书群中测试:
- 技术群@机器人:"如何优化这段 Python 代码?"
- 文案群@机器人:"帮我润色这篇文章"
- 数据群@机器人:"分析这个销售数据"
- 查看日志确认:
tail -f ~/.openclaw/logs/gateway.log
🔄 方案二:智能体间协作调用(高级玩法)
如果你希望在同一个群内动态切换不同角色,可以配置 Agent 之间的相互调用。
第一步:创建专业 Agent
# 创建代码专家
openclaw agents add code-expert --workspace ~/.openclaw/workspace-code
# 创建数据专家
openclaw agents add data-expert --workspace ~/.openclaw/workspace-data
# 创建主 Agent(协调者)
openclaw agents add main-assistant --workspace ~/.openclaw/workspace-main
第二步:配置主 Agent 的调用权限
在 ~/.openclaw/openclaw.json 中为主 Agent 启用 sessions_send 工具:
{
"agents": {
"list": [
{
"id": "main",
"workspace": "~/.openclaw/workspace-main",
"tools": {
"profile": "messaging"
}
},
{
"id": "code-expert",
"workspace": "~/.openclaw/workspace-code",
"tools": {
"profile": "coding"
}
},
{
"id": "data-expert",
"workspace": "~/.openclaw/workspace-data",
"tools": {
"profile": "analysis"
}
}
]
}
}
工具权限说明:
messaging- 包含sessions_send等通信工具coding- 包含代码执行、文件读写等工具analysis- 包含数据分析、图表生成等工具
第三步:在对话中触发调用
在飞书群里@主 Agent,用自然语言指令让它调用其他 Agent:
示例 1:调用代码专家
@main 我需要写一个 Python 爬虫,让 code-expert 来写,完成后直接发给我。
示例 2:调用数据专家
@main 分析上季度的销售数据,让 data-expert 生成报告。
工作流程:
- 主 Agent 收到用户请求
- 内部调用
sessions_send工具,将任务转发给专业 Agent - 专业 Agent 处理任务并返回结果
- 主 Agent 将结果返回给用户
整个过程对用户透明,用户只需要和主 Agent 对话即可。
📝 飞书插件的高级配置
如果你需要更精细的控制,飞书官方插件支持以下高级特性。
多账号支持
为不同的飞书账号配置独立的应用凭证:
{
"channels": {
"feishu": {
"enabled": true,
"domain": "feishu",
"accounts": {
"main": {
"appId": "cli_main_xxx",
"appSecret": "secret1"
},
"support": {
"appId": "cli_support_xxx",
"appSecretFile": "~/.secrets/support.txt"
}
}
}
}
}
适用场景:
- 企业多部门独立使用
- 个人账号和工作账号分离
- 不同业务线独立运营
群组权限控制
为不同群组设置不同的工具权限:
{
"channels": {
"feishu": {
"groups": {
"oc_xxx": {
"requireMention": true,
"toolsBySender": {
"张三": {
"deny": ["shell", "exec"]
},
"李四": {
"allow": ["web_search", "web_fetch"]
},
"*": {
"allow": ["web_search"]
}
}
}
}
}
}
}
配置说明:
requireMention- 是否需要@机器人才响应toolsBySender- 按用户设置工具权限deny- 禁止使用的工具allow- 允许使用的工具*- 默认规则(适用于其他所有用户)
智能回复模式
配置自动回复规则,减少不必要的响应:
{
"channels": {
"feishu": {
"autoReply": {
"enabled": true,
"minMessages": 5,
"debounceMs": 3000
}
}
}
}
配置说明:
enabled- 是否启用自动回复minMessages- 群消息达到多少条后才响应debounceMs- 响应延迟(毫秒),避免频繁回复
🎯 配置验证
配置完成后,可以用以下命令检查状态:
查看所有 Agent
openclaw agents list
输出示例:
✅ tech-assistant (~/.openclaw/workspace-tech)
✅ writer-assistant (~/.openclaw/workspace-writer)
✅ data-assistant (~/.openclaw/workspace-data)
查看飞书渠道状态
openclaw config get channels.feishu
查看路由绑定
openclaw config get bindings
测试消息路由
在飞书群里@对应的机器人测试,观察日志确认消息是否正确路由到指定 Agent:
tail -f ~/.openclaw/logs/gateway.log | grep "agent"
💡 选型建议
| 你的场景 | 推荐方案 | 理由 |
|---|---|---|
| 技术群、产品群、闲聊群各自独立 | 群聊路由绑定(方案一) | 配置简单、职责清晰、易于管理 |
| 同一群内需要处理不同类型任务 | 智能体间调用(方案二) | 灵活切换、用户无需切换群聊 |
| 企业级多部门使用 | 多账号 + 路由绑定 | 账号隔离、权限独立、安全可控 |
| 需要精细权限控制 | 群组 toolsBySender 配置 | 按用户设置权限、细粒度控制 |
🔧 常见问题
问题 1:配置后不生效
可能原因:
- 配置文件语法错误
- 网关未重启
- 群 ID 填写错误
解决方法:
# 检查配置文件语法
cat ~/.openclaw/openclaw.json | python -m json.tool
# 重启网关
openclaw gateway restart
# 查看日志确认
openclaw gateway logs
问题 2:Agent 无法相互调用
可能原因:
- 工具权限未配置
sessions_send工具未启用
解决方法:
{
"agents": {
"list": [
{
"id": "main",
"tools": {
"profile": "messaging"
}
}
]
}
}
问题 3:群消息无响应
可能原因:
groupPolicy配置为allowlist- 群 ID 不在白名单中
解决方法:
# 临时改为开放模式
openclaw config set channels.feishu.groupPolicy open
# 或添加群 ID 到白名单
openclaw config set channels.feishu.groupAllowFrom '["oc_xxx"]'
📚 相关资源
🎯 总结
通过本文,你学习了两种在飞书群中调用多个 Agent 的方案:
✅ 群聊路由绑定 - 简单稳定,适合职责明确的场景
✅ 智能体间协作调用 - 灵活强大,适合复杂协作场景
✅ 高级配置 - 多账号、权限控制、智能回复
选择建议:
- 初学者从方案一开始,配置简单易懂
- 需要灵活协作用方案二,实现智能体间调用
- 企业级使用结合两种方案,实现最佳效果
如果需要具体的配置文件示例或遇到报错,欢迎在评论区留言或联系 OpenClaw 社区获取帮助!
祝你使用愉快! 🎉