OpenClaw 系统架构详解

第7部分:Multi-Agent Routing (多代理路由)

Multi-Agent Routing 管理多个独立的 AI 代理,根据消息来源智能路由到正确的代理。

🚦 Multi-Agent Routing (多代理路由) - 智能分发

职责

什么是"一个代理"?

一个代理是一个完全独立的大脑,拥有:

代理定义

{
  "agents": {
    "list": [
      {
        "id": "main",
        "workspace": "~/.openclaw/workspace",
        "agentDir": "~/.openclaw/agents/main/agent"
      },
      {
        "id": "coding",
        "workspace": "~/.openclaw/workspace-coding",
        "agentDir": "~/.openclaw/agents/coding/agent"
      }
    ]
  }
}

路由规则(优先级从高到低)

  1. peer 匹配(精确的 DM/group/channel id)
  2. parentPeer 匹配(线程继承)
  3. guildId + roles(Discord 角色路由)
  4. guildId(Discord)
  5. teamId(Slack)
  6. accountId 匹配
  7. channel 级别匹配
  8. 默认代理

多代理 = 多个人,多个人格

使用多个代理,每个 agentId 成为一个完全独立的人格:

跨代理 QMD 记忆搜索

如果一个代理应该搜索另一个代理的 QMD 会话转录,添加额外的集合:

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "qmd": {
          "extraCollections": [
            { "path": "~/agents/family/sessions", "name": "family-sessions" }
          ]
        }
      }
    }
  }
}

一个 WhatsApp 号码,多个人(DM 分割)

可以在一个 WhatsApp 账户上将不同的 WhatsApp DM 路由到不同的代理:

{
  "bindings": [
    {
      "agentId": "alex",
      "match": { "channel": "whatsapp", "peer": { "kind": "direct", "id": "+15551230001" } }
    },
    {
      "agentId": "mia",
      "match": { "channel": "whatsapp", "peer": { "kind": "direct", "id": "+15551230002" } }
    }
  ]
}