共计 4425 个字符,预计需要花费 12 分钟才能阅读完成。
📋 导读
在 OpenClaw 内实现多 Agent 的核心机制是:
- Agent 是隔离的 ” 脑 ”:拥有独立 workspace(记忆、技能等均在 workspace 中)、独立 sessions
- 路由到哪个 Agent:由配置里的
bindings决定(最具体规则优先) - 每个 Agent 用哪个模型:可在
agents.list[].model单独配置;运行时会优先用该 Agent 的 model 覆盖默认值
本文方案:默认主 Agent 继续处理全部私聊,每个群绑定到不同的群组 Agent,每个 Agent 的记忆、技能、模型均可完全隔离。
🎯 核心原理
多 Agent 架构
每个 Agent 都是独立的工作空间,包含:
- ✅ 独立的记忆文件(MEMORY.md、memory/)
- ✅ 独立的技能目录(skills/)
- ✅ 独立的会话记录(sessions/)
- ✅ 独立的模型配置(可选)
路由机制
bindings 配置决定消息路由到哪个 Agent:
"bindings": [
{"peer": {"type": "feishu", "id": "oc_xxx"},
"agentId": "feishu-writer"
}
]
规则:最具体的绑定优先匹配。
⚙️ 前置条件
在开始配置前,请先确认:
- ✅ 已通过腾讯云轻量应用服务器 Lighthouse 一键部署 OpenClaw
- ✅ 已完成飞书应用配置并接入到 OpenClaw
- ✅ 拥有飞书群组创建权限
📝 完整配置流程(9 步)
步骤一:创建飞书群组并获取 ID
1.1 创建飞书群组
- 打开飞书客户端,点击 + 按钮
- 选择 创建群组
- 输入名称并添加成员,完成群组创建
1.2 获取会话 ID
- 打开群组,点击右上角的 … 按钮
- 选择 设置
- 拉到设置页面最底端,找到 群组信息
- 点击 复制 按钮,复制会话 ID
会话 ID 格式:oc_5b6799cff4a754c15e5ff3025becc648
⚠️ 注意:复制到的会话 ID 需要妥善保存,后续配置步骤会用到。
步骤二:登录服务器
- 登录腾讯云 Lighthouse 控制台,找到你的 OpenClaw 实例
- 点击实例卡片上的 登录 按钮
- 等待 OrcaTerm 终端窗口打开,完成登录
步骤三:备份配置文件
⚠️ 强烈建议:在修改配置前先备份,以便出现问题时快速恢复。
# 备份配置文件
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup.$(date +%Y%m%d_%H%MSS)
# 确认备份文件已创建
ls -la ~/.openclaw/openclaw.json.backup.*
恢复命令:
cp ~/.openclaw/openclaw.json.backup.YYYYMMDD_HHMMSS ~/.openclaw/openclaw.json
openclaw gateway restart
步骤四:配置新增 Agent
使用 openclaw agents add 命令添加新的 Agent:
openclaw agents add --workspace /root/.openclaw/workspace-feishu- 团队名 新 Agent 的名称(ID)
参数说明:
| 参数 | 说明 |
|---|---|
--workspace |
指定独立的数据空间路径,建议格式为 /root/.openclaw/workspace-feishu- 团队名 |
Agent 名称(ID) |
推荐格式为 feishu- 团队名 - 用途 |
--model |
可选,如果需要使用自定义模型,添加此参数并填写模型 ID |
示例:创建用于写文档的 Agent:
openclaw agents add --workspace /root/.openclaw/workspace-feishu-writer feishu-writer
验证 Agent 是否添加成功:
openclaw agents list
步骤五:配置飞书群组绑定
配置飞书群组与新 Agent 的绑定关系:
⚠️ 警告:openclaw config set --json bindings '[...]' 会整体替换当前的 bindings 配置。如果已有其他绑定(QQ、Telegram 等),需要先导出再追加。
# 1. 导出当前绑定
openclaw config get bindings
# 2. 添加飞书群组绑定(替换 oc_xxx 为实际会话 ID)openclaw config set --json bindings '[
{"peer": {"type": "feishu", "id": "oc_xxx"},
"agentId": "feishu-writer"
}
]'
追加绑定示例(保留原有绑定):
openclaw config set --json bindings '[{"peer": {"type": "telegram", "id": "123456"}, "agentId": "main"},
{"peer": {"type": "feishu", "id": "oc_xxx"}, "agentId": "feishu-writer"}
]'
步骤六:配置飞书群组允许列表
# 设置允许访问策略为 allowlist
openclaw config set feishu.groupAccessPolicy allowlist
# 设置允许访问的群组列表(替换 oc_xxx 为实际会话 ID)openclaw config set --json feishu.groupAllowFrom '["oc_xxx"]'
✅ 说明:使用 allowlist 策略可以确保只有配置在 groupAllowFrom 中的群组才能访问 OpenClaw。
步骤七:重启 Gateway
openclaw gateway restart
# 确认 Gateway 状态
openclaw gateway status
✅ 成功:如果 Gateway 状态显示为 running,说明配置文件格式正确且加载成功。
步骤八:添加机器人到群组
- 打开飞书群组,点击右上角的 更多 → 设置 → 群机器人
- 选择你的机器人,添加到群组中
- 确认机器人添加成功后,在群组中会看到机器人入群通知
⚠️ 注意:默认情况下,在群组内和机器人互动需要 @ 它。
步骤九:测试验证 Agent 隔离效果
测试 1:群组消息使用独立 Agent
- 在新创建的飞书群组中,向机器人提问:
你所在的工作空间路径是什么? - 验证机器人是否返回了新 Agent 的 workspace 路径:
/root/.openclaw/workspace-feishu-writer
测试 2:主 Agent 与独立 Agent 隔离
- 与机器人进行 1 对 1 私聊(不通过群组)
- 提问:
你所在的工作空间路径是什么? - 验证主 Agent 是否返回了默认的 workspace 路径:
/root/.openclaw/workspace
测试 3:数据隔离验证
- 在群组中让机器人记住某个信息,例如:
记住:我们团队的代号是 "北极星"。 - 在私聊中询问机器人:
你记得我们团队的代号是什么吗? - 验证主 Agent 是否无法获取群组中的信息
✅ 成功:如果主 Agent 回答 ” 我不知道 ” 或类似的回复,说明独立 Agent 和主 Agent 的数据完全隔离,配置成功。
🔍 故障排查
问题 1:Gateway 启动失败
# 检查配置文件格式
cat ~/.openclaw/openclaw.json | python -m json.tool
# 恢复备份配置
cp ~/.openclaw/openclaw.json.backup.YYYYMMDD_HHMMSS ~/.openclaw/openclaw.json
openclaw gateway restart
问题 2:群组中机器人无响应
# 检查 Gateway 日志
tail -f ~/.openclaw/logs/gateway.log
常见原因:
- ❌ 会话 ID 未正确配置到
bindings中 - ❌ 会话 ID 未添加到
groupAllowFrom中 - ❌ 机器人未正确添加到群组中
问题 3:Agent 未起到隔离作用
# 检查 bindings 配置
openclaw config get bindings
确认:
- ✅
agentId是否与openclaw agents list中看到的 Agent ID 匹配 - ✅
peer.id是否为正确的会话 ID
问题 4:配置命令执行失败
如果遇到 JSON 格式错误,请确保:
- JSON 格式正确,注意引号和逗号的使用
- 字符串必须使用双引号
- 数组的最后一个元素后不要有逗号
🚀 进阶操作
为 Agent 配置自定义模型
openclaw agents add --workspace /root/.openclaw/workspace-feishu-writer feishu-writer --model qwen/qwen-plus
为多个群组配置不同 Agent
重复上述步骤,为每个群组创建独立 Agent:
- 为每个群组创建独立 Agent
- 在
bindings中添加多个群组绑定 - 在
groupAllowFrom中添加多个会话 ID
配置示例:
openclaw config set --json bindings '[{"peer": {"type": "feishu", "id": "oc_team1"}, "agentId": "feishu-team1"},
{"peer": {"type": "feishu", "id": "oc_team2"}, "agentId": "feishu-team2"},
{"peer": {"type": "feishu", "id": "oc_team3"}, "agentId": "feishu-team3"}
]'openclaw config set --json feishu.groupAllowFrom'["oc_team1", "oc_team2", "oc_team3"]'
删除已配置的 Agent
openclaw agents remove feishu-writer
此命令会删除 Agent 的配置以及相关的 workspace 和 state 数据。
❓ 常见问题
Q:能否为一个群组配置多个 Agent?
A:目前 OpenClaw 不支持为一个群组配置多个 Agent。每个群组只能绑定一个 Agent,但你可以为多个不同的群组配置不同的 Agent。
Q:独立 Agent 是否继承主 Agent 的配置?
A:独立 Agent 不继承主 Agent 的配置,它们拥有完全独立的 workspace、记忆和状态。但它们可以继承 agents.defaults 中的默认模型和默认 workspace 路径配置。
Q:能否将已配置的 Agent 切换到另一个群组?
A:可以。只需修改 bindings 配置中的 peer.id 为新的会话 ID,同时更新 groupAllowFrom 并重启 Gateway 即可。需要注意的是,原群组中的数据不会自动迁移到新群组。
Q:使用命令行配置会不会比手动编辑配置文件更复杂?
A:对于初学者来说,使用 openclaw agents add 和 openclaw config set 命令比直接用 nano 等编辑器手动修改配置文件更简单也更安全。这些命令会自动处理配置文件的格式,减少出错的可能性。
📚 相关资源
原文来源:腾讯云开发者社区 | 整理发布:丘丘