📖 背景说明
在默认情况下,当你为飞书频道绑定一个机器人后,这个机器人对应的是一个独立的 Agent。无论你把这个机器人拉到多少个不同的群聊中,它在 OpenClaw 后端始终对应着同一个 Agent。
但这种配置存在一个局限性 :所有群聊共享同一个 Agent 的数据、上下文和模型配置。
多bot多agents: 需要申请多个机器人,麻烦而且也没有必要。
本教程将教你如何实现:一个飞书机器人对应多个不同的 Agent,每个 Agent 拥有独立的数据隔离、可以使用不同的模型,从而实现群聊级别的数据隔离和个性化配置。
🎯 典型应用场景
-
技术群
:使用编程能力强的模型(如 qwen-coder),Agent 身份为"架构师"
-
产品群
:使用理解能力强的模型(如 GLM-5),Agent 身份为"产品经理"
-
管理群
:使用综合能力强的模型(如 Kimi),Agent 身份为"总监"
一、新增 Agents
1.1 命令格式
go
openclaw agents add --workspace 工作空间路径Agent名称
1.2 参数详解
| 参数 | 说明 | 示例 |
|---|---|---|
--workspace |
Agent 的独立工作空间路径,用于数据隔离 | Linux: /root/.openclaw/workspace/feishu/code<br>Windows: openclaw agents add ---workspace C:\Users\Administrator\.openclaw\workspace\feishu\code |
Agent名称 |
唯一标识符,即 AgentId,建议见名知意 | code-agent 、product-agent |
--model (可选) |
指定自定义模型 ID,不添加则使用默认模型 | bailian/qwen3-coder-plus |
1.3 实际示例
go
# 创建一个专门用于代码相关的 Agentopenclaw agents add --workspace openclaw agents add --workspace C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\code feishu-code
💡 提示:执行前请确保工作空间目录已存在,系统会自动创建必要的配置文件。
二、验证 Agent 是否创建成功
执行以下命令查看所有已创建的 Agent 列表:
go
openclaw agents list
你应该能看到刚创建的 Agent 出现在列表中。
三、飞书群组绑定
现在我们已经创建了多个 Agent,接下来需要将它们分别绑定到不同的飞书群聊中。
3.1 查看当前绑定关系
首先,让我们看看当前已经配置了哪些绑定:
go
openclaw config get bindings
3.2 获取飞书群 ID
在绑定群聊之前,我们需要先获取目标群聊的 ID。
操作步骤:
-
打开飞书群聊
-
点击右上角 设置 图标
-
在群信息中找到 会话 ID
⚠️ 注意:复制群 ID 时,注意不要包含多余的空格或字符。
3.3 查看飞书渠道配置
在配置绑定前,先了解你的飞书渠道配置信息:
go
openclaw config get channels.feishu
你会看到类似这样的配置结构:
go
{"channels":{"feishu":{"accounts":{"main":{//←这个是账号标识(accountId)"appId":"xxx","appSecret":"xxx"},"default":{"dmPolicy":"pairing"}},"enabled":true,"streaming":true,"footer":{"elapsed":true,"status":true}}}}
关键点 :记住 channels.feishu.accounts 下的账号名称(示例中是 main),后续配置绑定时会用到。
3.4 配置群组绑定
现在,我们使用以下命令将 Agent 绑定到具体的飞书群:
go
openclaw config set--json bindings '[ { "agentId": "feishu-code", // ← 你的 Agent ID "match": { "channel": "feishu", // ← 固定值,表示飞书渠道 "accountId": "main", // ← 对应 channels.feishu.accounts 中的账号名 "peer": { "kind": "group", // ← 固定值,表示群聊 "id": "oc_34fdfds3XXX" // ← 你的飞书群 ID } } }]'
参数说明:
| 参数 | 说明 | 示例 |
|---|---|---|
agentId |
要绑定的 Agent ID | feishu-code |
id |
飞书群 ID | oc_34fdfds3XXX |
accountId |
飞书渠道配置中的账号标识 | main |
3.5 配置安全策略(推荐)
默认情况下,channels.feishu.groupPolicy 是 open 模式,这意味着机器人会响应所有群组的消息。
建议 :将其设置为 allowlist 模式,只响应白名单中的群组消息,提高安全性。
go
# 设置策略为白名单模式openclaw config set channels.feishu.groupPolicy allowlist# 添加允许访问的群组列表openclaw config set--json channels.feishu.groupAllowFrom '["oc_34fdfxxx","oc_34fdfxxx"]'
四、完整配置示例
下面是一个完整的配置文件示例,展示了如何配置多个 Agent 和绑定关系:
go
{//============渠道配置============"channels":{"feishu":{"accounts":{"main":{"appId":"cli_a917dxxx","appSecret":"3PFfvN3xxxx"},"default":{"dmPolicy":"pairing"}},"enabled":true,"streaming":true,"footer":{"elapsed":true,"status":true}}},//============Agent配置============"agents":{"defaults":{"model":{"primary":"bailian/glm-5"},"models":{"zai/glm-4.7":{"alias":"GLM"},"zai/glm-4.7-flash":{"alias":"glm-4.7-flash"},"zai/glm-5":{"alias":"GLM"},"bailian/glm-5":{"alias":"GLM"}},"workspace":"C:\\Users\\Administrator\\clawd","timeoutSeconds":86400},"list":[//主Agent{"id":"main"},//代码专家Agent{"id":"feishu-code","name":"feishu-code","workspace":"C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\code","agentDir":"C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\code","model":{"primary":"bailian/qwen3-coder-plus","fallbacks":["bailian/qwen3.5-plus","zai/glm-5"]},"identity":{"name":"架构师","emoji":"💻"}},//产品经理Agent{"id":"feishu-product","name":"feishu-product","workspace":"C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\product","agentDir":"C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\product","model":{"primary":"bailian/glm-5","fallbacks":["bailian/qwen3.5-plus","zai/glm-5"]},"identity":{"name":"产品经理","emoji":"📋"}},//总监Agent{"id":"feishu-director","name":"feishu-director","workspace":"C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\director","agentDir":"C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\director","model":{"primary":"bailian/kimi-k2.5","fallbacks":["bailian/qwen3.5-plus","zai/glm-5"]},"identity":{"name":"总监","emoji":"👔"}}]},//============绑定关系配置============"bindings":[{"agentId":"feishu-code","match":{"channel":"feishu","accountId":"main","peer":{"kind":"group","id":"oc_ebfxxx"}}},{"agentId":"feishu-product","match":{"channel":"feishu","accountId":"main","peer":{"kind":"group","id":"oc_b99xxx"}}}]}
五、常见问题排查
❓ 问题 1: 绑定后机器人没有响应
可能原因:
-
群 ID 配置错误
-
Agent ID 不存在
-
群组策略设置为
allowlist但群 ID 未加入白名单
解决方法:
go
# 检查绑定是否正确openclaw config get bindings# 检查 Agent 是否存在openclaw agents list# 如果使用了 allowlist,检查白名单openclaw config get channels.feishu.groupAllowFrom
❓ 问题 2: 如何修改已存在的绑定?
方法一:使用命令重新设置(会覆盖整个 bindings)
方法二:直接编辑配置文件(适用于多个绑定的场景)
❓ 问题 3: 不同的 Agent 能否共享数据?
默认情况下,不同 Agent 的工作空间是独立的,数据相互隔离。如果需要共享数据,可以考虑:
-
使用统一的数据库后端
-
在 Agent 之间通过飞书机器人互相转发
六、最佳实践建议
✅ 推荐做法
-
命名规范
: Agent ID 使用
feishu-{功能}格式,如feishu-code、feishu-product -
工作空间分离
: 每个 Agent 使用独立的 workspace 路径,便于数据管理
-
模型选择
: 根据群聊性质选择合适的模型
-
技术群:coder 系列、deepseek-coder
-
通用群:GLM-5、Qwen3.5-plus
-
长文本:Kimi、Claude 系列
-
安全策略
:始终使用
allowlist模式,只允许授权群组访问
🎯 进阶技巧
-
为不同 Agent 设置不同的
identity.name和identity.emoji,让群成员一眼就能识别当前对话的 Agent 角色 -
配置
fallbacks确保主模型不可用时能自动降级 -
定期备份各 Agent 的工作空间数据
🎉 恭喜!你已经学会了如何配置一个飞书机器人对应多个 Agent。
现在你可以根据不同的业务场景,为每个群聊配置专属的 Agent,实现真正的智能化群聊管理!