折腾了一天,终于完成了 OpenClaw 部署的一个重要里程碑:从单体 Agent 进化到了由多个 Agent 独立工作区和专属 Telegram 机器人组成的“专家团”架构。每个 Agent 代理都可以有自己独立的工作空间,独立的职责和记忆,互不干扰。通过主 Agent 指挥子 Agent 更好的完成工作,还是很好玩的。过程中解决了不少关于权限、安全和模型适配的硬核问题。
以下是本次架构升级的技术复盘与实战总结。
架构转型:从个人到团队
不同于简单的“一个机器人管所有”,多 Agent 采取了物理隔离的绑定策略,让每个 Agent 拥有独立的身份。
独立 Agent 模式:通过 openclaw agents add 创建拥有独立身份、工作空间和会话状态的 Agent。
扁平化工作区:采用官方推荐的 ~/.openclaw/workspace-<agent-id> 结构,确保文件系统互不干扰,逻辑清晰。
比如我们创建两个 Agent,investor 负责投资分析,blogger 负责写文章,下面介绍这两个 Agent 的绑定和使用:(也可以直接告诉 OpenClaw 增加两个 Agent,并把生成的 token 直接发给它进行添加和)
1. 注册与添加通道
首先通过 @BotFather 分别创建 bots 获取 Token,在 OpenClaw 中,使用以下命令添加:
# 添加多个 Telegram 账户 openclaw channels add --channel telegram --token <TOKEN_1> --account investor_bot openclaw channels add --channel telegram --token <TOKEN_2> --account blogger_bot
2. 路由绑定 (Routing Bindings)
通过绑定将特定的 Telegram 账号流量直接导向对应的 Agent 工作区:
# 将机器人账户与 Agent 实例绑定 openclaw agents bind --agent investor --bind telegram:investor_bot openclaw agents bind --agent blogger --bind telegram:blogger_bot
创建群组:建立工作群
创建群聊
首先创建群聊,将机器人拉进群。需要注意,机器人加群的一两个前提:
开启允许加群权限
在
@BotFather聊天窗口发送/mybots查看机器人列表,点击Allow Groups?确保是enable状态。关闭群组隐私
返回设置,点击
Groups Privacy确保是disabled状态。Gemini 3 Flash) ➔ 投资分析 & 前端工程:追求极致的工具调用(Tool Calling)速度和代码推导能力。
MiniMax-M2.5 ➔ 博客写作:利用其在中文语境下卓越的叙事逻辑和长文本润色能力。
Qwen 3.5 27B➔ 系统运维:取其在 Linux 指令执行上的高稳定性。
注意:必须将机器人上面两项设置完再拉进群,否则需要从群组中踢出并重新加入,该设置才会生效。
配置 groupPolicy
在 openclaw.json 中,进行以下调整:
测试阶段:将 groupPolicy 设为 open,允许处理所有入站消息。
加固阶段:改为 allowlist,并精准配置 groupAllowFrom。
不过我设置之后机器人就罢工了,如果你也这样,还是把 gromatchupPolicy 设为 open 吧。
执行命令示例:(也可以直接修改配置文件)
# 设置允许响应的群组 ID(需先通过 /id 指令获取) openclaw config set channels.telegram.accounts.investor_bot.groupAllowFrom '["-100"]' # 开启白名单策略 openclaw config set channels.telegram.accounts.investor_bot.groupPolicy allowlist
策略分配:为专家选择“最强大脑”
不同的 Agent 职责对应不同的模型特质。根据模型评测结果重新分配算力,以下可以作为参考:(可以让 OpenClaw 去自动设置)
下面是一份 openclaw.json 配置部分参考:
{
"agents": {
"defaults": {
"model": {
"primary": "google/gemini-3-flash-preview",
"fallbacks": [
"scnet/MiniMax-M2.5",
"scnet/Qwen3-235B-A22B"
]
},
"models": {
"google/gemini-3-flash-preview": {
"alias": "g3"
},
"scnet/Qwen3-235B-A22B": {
"alias": "Qwen"
},
"scnet/MiniMax-M2.5": {
"alias": "MiniMax"
}
}
},
"list": [
{
"id": "main",
"model": "g3"
},
{
"id": "investor",
"name": "investor",
"workspace": "/home/node/.openclaw/workspace-investor",
"agentDir": "/home/node/.openclaw/agents/investor",
"model": "g3"
},
{
"id": "blogger",
"name": "blogger",
"workspace": "/home/node/.openclaw/workspace-blogger",
"agentDir": "/home/node/.openclaw/agents/blogger",
"model": "scnet/MiniMax-M2.5"
}
]
},
"bindings": [
{
"type": "route",
"agentId": "investor",
"match": {
"channel": "telegram",
"accountId": "investor_bot",
"peer": {
"kind": "group",
"id": "-1001234567890"
}
}
},
{
"type": "route",
"agentId": "blogger",
"match": {
"channel": "telegram",
"accountId": "blogger_bot",
"peer": {
"kind": "group",
"id": "-1001234567890"
}
}
}
],
"channels": {
"telegram": {
"enabled": true,
"dmPolicy": "pairing",
"groupPolicy": "open",
"groups": {
"*": {
"requireMention": true
}
},
"streaming": "partial",
"accounts": {
"default": {
"dmPolicy": "pairing",
"botToken": "123456789:AAbbccDDee",
"groupPolicy": "open"
},
"investor_bot": {
"enabled": true,
"dmPolicy": "pairing",
"botToken": "123456789:AAbbccDDee",
"groupPolicy": "open"
},
"blogger_bot": {
"enabled": true,
"dmPolicy": "pairing",
"botToken": "123456789:AAbbccDDee",
"groupPolicy": "open"
}
}
}
},
"plugins": {
"allow": [
"telegram"
]
}
}避坑清单与注意事项
1. Token 唯一性:一个 Bot Token 只能在一个 OpenClaw 实例中使用,多处登录会导致 WebSocket 频繁断开。
2. Emoji 标识:在 openclaw agents set-identity 中一定要设置 Emoji。当你在群里同时 @ 多个机器人时,不同的 Emoji 能帮你快速分辨回复来源。
3. Identity.md 步调一致:确保 openclaw.json 中的 agentId 与工作区内的 IDENTITY.md 描述一致,避免逻辑错位。
4. 日志监控:如果机器人不回话,第一时间执行 openclaw channels logs。如果日志里没有入站信号,那一定是 Telegram 的 Privacy Mode 或群组权限没开。
未经允许不得转载:前端资源网 - w3h5 » OpenClaw 多 Agent 架构与 Telegram 机器人全链路接入指南
前端资源网 - w3h5