OpenClaw 多 Agent 架构与 Telegram 机器人全链路接入指南

折腾了一天,终于完成了 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 状态。

  • 注意:必须将机器人上面两项设置完再拉进群,否则需要从群组中踢出并重新加入,该设置才会生效。

    配置 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 去自动设置)

  • Gemini 3 Flash) ➔ 投资分析 & 前端工程:追求极致的工具调用(Tool Calling)速度和代码推导能力。

  • MiniMax-M2.5 ➔ 博客写作:利用其在中文语境下卓越的叙事逻辑和长文本润色能力。

  • Qwen 3.5 27B➔ 系统运维:取其在 Linux 指令执行上的高稳定性。

下面是一份 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 机器人全链路接入指南

赞 (0)

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)