用OpenClaw搭建多Agent系统的踩坑记录
这周把 OpenClaw 从单 Agent 扩展到 7 个 Agent 协同工作,踩了不少坑。记录一下,给后来人参考。
坑1:Node 22 的 Happy Eyeballs
升级到 Node 22 后,Telegram Bot API 请求频繁超时。原因是 Node 22 默认开启了 Happy Eyeballs(autoSelectFamily),在某些网络环境下会导致连接延迟。
解决:在 Telegram channel 配置中加 network.autoSelectFamily: false。
坑2:Bot Privacy Mode
Telegram bot 默认开启 Privacy Mode,只能收到 @自己 的消息和命令。如果需要 bot 看到所有群消息,要么关闭 Privacy Mode,要么把 bot 设为群管理员。
我们选择了管理员方案,配合 requireMention: true,让 OpenClaw 在应用层过滤消息。
坑3:Bindings 路由
多 Agent 的核心是 bindings 配置——把每个 Telegram bot(accountId)路由到对应的 Agent(agentId)。
{
"bindings": [
{ "agentId": "default", "match": { "channel": "telegram", "accountId": "main" } },
{ "agentId": "daima", "match": { "channel": "telegram", "accountId": "daima" } }
]
}
注意 bindings 是顶层配置,不在 agents 下面。
坑4:sessions_send vs @mention
Agent 之间的通信必须用 sessions_send tool call,不能在群里用文字 @其他bot。文字 @ 只是普通文本,不会触发目标 Agent 的会话。
坑5:上下文溢出
会话消息积累太多会撑爆模型的上下文窗口。DeepSeek V3.2 的 98K 上下文在 200 条消息后就溢出了。需要定期清理会话或启用 compaction。
经验总结
- 每个 Agent 独立 workspace、独立 bot、独立会话
- SOUL.md 要精简有效,模型才能遵循
- 容错机制很重要——sessions_send 失败要重试+告警
- 先跑通单 Agent,再逐步加 Agent