折腾了一天,终于完成了+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。
不过我设置之后机器人就罢工了,如果你也这样,还是把 groupPolicy 设为 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