OpenClaw 多 Agent 实战:在已有实例上创建第二个 Agent 并绑定企业微信 Bot

在之前的 OpenClaw 全攻略 中,我们介绍了如何从零搭建 OpenClaw 并绑定企业微信 Bot。有时候你可能需要在已有实例上创建多个 Agent,让它们各司其职:

  • 一个 Agent 负责日常对话和规划(比如小岚)
  • 一个 Agent 负责执行和监控(比如小曦)
  • 一个 Agent 负责特定业务(比如处理客户咨询)

这篇文章就来讲解:如何在同一个 OpenClaw 实例上,创建第二个 Agent,并通过 pairing 机制让它通过同一个企业微信 Bot 与用户交互

⚠️ 前置说明:本文假设你已经有一个运行中的 OpenClaw 实例,并且至少已经配置好了一个企业微信机器人(第一个 Bot)。如果还没有,请先阅读 OpenClaw 全攻略 完成基础配置。


1. 整体架构说明

在开始之前,先理解一下 OpenClaw 的多 Agent 架构:

1
2
3
4
5
6
企业微信 Bot (长连接)

└── OpenClaw 实例(同一端口 18789)

├── Agent: Aris(小岚) ←── 用户 A 配对到小岚
└── Agent: Dawn(小曦) ←── 用户 B 配对到小曦

关键点

  • 多个 Agent 共享同一个 OpenClaw 实例(共用端口 18789、共用工具和 Skills)
  • 通过企业微信的 pairing 机制,不同用户可以配对到不同的 Agent
  • Agent 之间可以通过 OpenClaw 内部消息互相通信
  • 每个 Agent 有独立的 Workspace、Memory 和 Skills

2. 腾讯企业微信插件:长连接 vs HTTP 回调

在深入配置之前,先搞清楚两种连接方式的区别:

对比项 长连接(WebSocket) HTTP 回调
连接方向 OpenClaw → WeCom 服务器 WeCom 服务器 → OpenClaw
公网要求 不需要公网访问 需要公网可访问的 Webhook URL
域名备案 不需要 需要
IP 白名单 不需要 需要配置可信 IP
多 Bot 支持 一个实例一个 Bot 一个实例多个 Bot
稳定性 高(自动心跳重连) 一般(依赖公网连通性)

💡 腾讯官方推荐长连接方式。目前腾讯官方 @wecom/wecom-openclaw-plugin v1.0.13 默认使用 WebSocket 长连接,无需配置 Token、AES Key、回调 URL,配置简单很多。


3. 企业微信 Bot 创建:长连接方式

3.1 登录企业微信管理后台

  1. 访问 企业微信管理后台
  2. 登录你的企业账号(需要管理员权限)

3.2 创建应用(机器人)

  1. 进入 「应用管理」「创建应用」
  2. 填写应用信息:
    • 应用名称:例如 小曦助手
    • 应用描述:例如 小曦 Agent,负责高效执行任务
    • 应用 logo:上传一个图片
  3. 「企业微信开发者」 模式下,选择 「机器人」 类型
  4. 在连接方式中选择 「长连接」(WebSocket)
  5. 创建完成后,保存 Bot IDSecret
1
2
3
4
5
🔑 你需要记录以下信息:
━━━━━━━━━━━━━━━━━━━━━
Bot ID : aibnxxxxxxxxxxxxxxxxxxxxxxxxxx
应用 Secret : Abcdefghijklmnopqrstuvwxyz1234567890
━━━━━━━━━━━━━━━━━━━━━

⚠️ 长连接方式只需要 Bot ID 和 Secret,不需要 corpId、agentId、token、encodingAesKey。

3.3 关注应用可见范围

确保你的测试账号在应用的可见范围内,否则 Bot 无法向你发送消息。


4. OpenClaw 配置:添加第二个 Agent

4.1 编辑 OpenClaw 配置文件

1
vi ~/.openclaw/openclaw.json

4.2 在 channels 中配置企业微信 Bot(长连接方式)

找到 channels 部分,添加 Bot 配置:

1
2
3
4
5
6
7
8
9
10
11
"channels": {
"wecom": {
"enabled": true,
"botId": "aibnxxxxxxxxxxxxxxxxxxxxxxxxxx",
"secret": "your-bot-secret-here",
"dmPolicy": "pairing",
"allowFrom": [],
"groupPolicy": "open",
"sendThinkingMessage": true
}
}

4.3 在 agents 中添加第二个 Agent

找到 agents.list 部分,在现有 Agent 之后添加新的 Agent:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"agents": {
"defaults": {
"model": {
"primary": "minimax/MiniMax-M2.7-highspeed",
"fallbacks": ["bailian/qwen3.5-plus", "bailian/glm-5"]
}
},
"list": [
{
"id": "main",
"name": "小岚 (Aris)",
"model": "minimax/MiniMax-M2.7-highspeed",
"workspace": "/home/wutao/.openclaw/workspace",
"skills": []
},
{
"id": "dawn",
"name": "小曦 (Dawn)",
"model": "minimax/MiniMax-M2.7-highspeed",
"workspace": "/home/wutao/.openclaw/workspace-dawn",
"skills": []
}
]
}

4.4 关键参数说明

企业微信 Bot 配置参数

参数 说明 长连接必填
botId 企业微信机器人的 Bot ID ✅ 必填
secret 企业微信机器人的 Secret ✅ 必填
dmPolicy 私聊策略 pairing(需配对)/ open / allowlist / disabled
allowFrom 允许访问的用户 ID 白名单 配合 dmPolicy: allowlist 使用
groupPolicy 群聊策略 open / allowlist / disabled
sendThinkingMessage 是否发送”思考中”占位消息 true / false

Agent 配置参数

参数 说明
id Agent 唯一标识符,用于内部路由和 pairing
name Agent 名称,用户可见
model 使用的模型(可用不同的模型)
workspace Agent 的独立工作目录(建议每个 Agent 独立)
skills 为该 Agent 加载的技能列表

💡 pairing 机制dmPolicy: "pairing" 时,用户首次发消息给 Bot,Bot 会生成一个配对码,用户确认后绑定到对应的 Agent。这样不同用户可以配对到不同的 Agent。


5. 重启 OpenClaw Gateway

配置完成后,重启 Gateway 使配置生效:

1
2
3
4
5
6
7
8
# 停止当前 Gateway
openclaw gateway stop

# 启动 Gateway
openclaw gateway start

# 查看状态
openclaw gateway status

6. 配对 Bot 与用户

长连接模式下,用户首次使用 Bot 需要配对。以下是配对流程:

6.1 用户发起配对

用户打开企业微信,向 Bot 发送任意消息。Bot 会回复一个配对码(Pairing Code)。

6.2 管理员审批配对请求

在终端中查看待配对列表:

1
openclaw pairing list wecom

批准配对请求:

1
openclaw pairing approve wecom <PAIRING_CODE>

6.3 完成配对

用户收到配对成功消息,即可开始与对应的 Agent 对话。


7. 验证是否正常工作

7.1 检查日志

1
2
3
4
5
# 查看 Gateway 日志
openclaw logs

# 或者查看实时日志
tail -f ~/.openclaw/logs/gateway.log

7.2 测试第二个 Agent

  1. 打开企业微信,找到第二个机器人(小曦助手)
  2. 向它发送一条消息,比如:
1
你好小曦
  1. 如果一切配置正确,你应该会收到小曦的回复

7.3 常见问题排查

问题 可能原因 解决方案
Bot 没有回复 Bot 未启动或配置错误 检查 openclaw gateway status 和日志
消息发送失败 应用不在可见范围 在企业微信后台确认可见范围
配对失败 用户未发送配对码 执行 openclaw pairing list wecom 查看待配对列表
WebSocket 断开 网络不稳定或 WeCom 服务器重连 插件有自动重连机制(最多 100 次),大多数情况能自动恢复
Agent 没有独立回应 Agent ID 配置错误 确认 agents.list[].id 与 pairing 路由配置匹配

8. 进阶:多 Agent 协作

当你的第二个 Agent 创建好后,可以让它和第一个 Agent 协同工作。比如:

  • 小岚(Aris)负责对话和规划
  • 小曦(Dawn)负责执行和监控

8.1 Agent 间通信

两个 Agent 在同一个 OpenClaw 实例内,可以通过内部消息互相通信:

1
2
3
4
5
// 在小岚的对话中调用小曦
await agents.call("dawn", {
task: "帮我检查一下服务器状态",
context: { urgency: "high" }
});

8.2 共享工具和技能

不同 Agent 可以共享相同的工具和技能:

1
2
3
4
5
{
"id": "dawn",
"name": "小曦 (Dawn)",
"skills": ["filesystem", "code-review", "web-search"]
}

8.3 不同模型配置

可以为不同 Agent 配置不同的模型:

1
2
3
4
5
{
"id": "dawn",
"name": "小曦 (Dawn)",
"model": "bailian/qwen3.5-plus" // 使用不同模型
}

9. 完整配置示例

以下是包含两个 Agent 的完整配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
"channels": {
"wecom": {
"enabled": true,
"botId": "aibnxxxxxxxxxxxxxxxxxxxxxxxxxx",
"secret": "your-bot-secret-here",
"dmPolicy": "pairing",
"allowFrom": [],
"groupPolicy": "open",
"sendThinkingMessage": true
}
},
"agents": {
"defaults": {
"model": {
"primary": "minimax/MiniMax-M2.7-highspeed",
"fallbacks": ["bailian/qwen3.5-plus", "bailian/glm-5"]
}
},
"list": [
{
"id": "main",
"name": "小岚 (Aris)",
"model": "minimax/MiniMax-M2.7-highspeed",
"workspace": "/home/wutao/.openclaw/workspace",
"skills": []
},
{
"id": "dawn",
"name": "小曦 (Dawn)",
"model": "minimax/MiniMax-M2.7-highspeed",
"workspace": "/home/wutao/.openclaw/workspace-dawn",
"skills": []
}
]
}
}

总结

通过以上步骤,你已经成功在同一个 OpenClaw 实例上创建了第二个 Agent。现在你的 Bot 可以同时服务多个 Agent,每个 Agent 可以有独立的模型、工作空间和技能。

下一步你可以尝试:

  • 为不同的 Agent 配置不同的模型
  • 为不同的 Agent 安装不同的 Skills
  • 让两个 Agent 相互协作
  • 通过 ClawPlaza 让不同实例的 Agent 之间相互通信

有任何问题,欢迎在评论区留言! 🚀


如果你觉得这篇文章有帮助,欢迎到 GitHub 点个 Star ⭐