系列 · OpenClaw超简单 14/ 15

OpenClaw超简单14:多 Agent 配置

大多数人用一个 Agent 就够了。但随着使用深入,你可能会想要:一个 Agent 专门处理工作事务,另一个专门做生活助理;或者给家人提供一个权限受限的 Bot,自己用另一个功能完整的。这些都可以用多 Agent 实现。 一、什么是多 …

最近更新于 2026年3月25日

大多数人用一个 Agent 就够了。但随着使用深入,你可能会想要:一个 Agent 专门处理工作事务,另一个专门做生活助理;或者给家人提供一个权限受限的 Bot,自己用另一个功能完整的。这些都可以用多 Agent 实现。

一、什么是多 Agent

在 OpenClaw 里,Agent 是一个完全独立的”大脑”单元,有自己的:

  • 独立工作目录(workspace)
  • 独立的会话存储
  • 独立的工具权限设置
  • 独立的 Channel 绑定

多个 Agent 运行在同一个 Gateway 实例里,共用同一个进程,但彼此完全隔离、互不干扰。

二、什么时候需要多 Agent

场景说明
功能隔离工作 Bot 能读写文件,生活 Bot 只能聊天
权限隔离给家人一个只能聊天的 Bot,自己用功能完整的
个性隔离不同 Channel 上的 Bot 有不同的名字和风格
模型隔离日常对话用便宜的模型,专业任务用强模型

三、创建新 Agent

openclaw agents add <agentId>

例如创建一个叫 family 的 Agent:

openclaw agents add family

这条命令会:

  • ~/.openclaw/agents/family/ 下创建独立的状态目录
  • ~/.openclaw/workspace-family/ 下创建工作目录

查看所有 Agent:

openclaw agents list

四、在配置文件里配置多 Agent

~/.openclaw/openclaw.json 里用 agents.list 数组定义每个 Agent:

{
  agents: {
    // 默认设置,所有 Agent 继承
    defaults: {
      model: {
        primary: "anthropic/claude-sonnet-4-6"
      }
    },

    // Agent 列表
    list: [
      {
        id: "main",                             // 默认 Agent,必须有
        agentDir: "~/.openclaw/agents/main",
        workspace: "~/.openclaw/workspace",
        tools: { profile: "full" }
      },
      {
        id: "family",
        agentDir: "~/.openclaw/agents/family",
        workspace: "~/.openclaw/workspace-family",
        model: {
          primary: "groq/llama-3.3-70b-versatile"  // 这个 Agent 用不同的模型
        },
        tools: {
          profile: "messaging"                  // 只允许聊天,不能操作文件
        }
      }
    ]
  }
}

五、Channel 绑定:消息路由到哪个 Agent

创建了多个 Agent 之后,还需要告诉 OpenClaw:哪些消息路由给哪个 Agent。这通过 bindings(绑定规则) 来配置。

方案一:按 Channel 类型路由

Telegram 的消息给 main,Feishu 的消息给 family

{
  agents: {
    list: [
      { id: "main", /* ... */ },
      { id: "family", /* ... */ }
    ],
    bindings: [
      { channel: "feishu", agentId: "family" },
      { channel: "telegram", agentId: "main" }
    ]
  }
}

方案二:按用户 ID 路由

同一个 Channel,不同用户路由到不同 Agent:

{
  agents: {
    bindings: [
      // 家人的 Telegram ID 路由给 family Agent
      { channel: "telegram", peer: "家人的user_id", agentId: "family" },
      // 其他人(包括自己)默认走 main
      { channel: "telegram", agentId: "main" }
    ]
  }
}

路由优先级

当多条规则都匹配时,更精确的规则优先:

  1. peer(指定用户 ID)— 最高优先级
  2. guild/team ID(指定群组)
  3. account ID(指定 Channel 账户)
  4. channel(Channel 类型)— 最低优先级

同一层级有多条规则时,配置文件里靠前的优先

六、验证路由配置

openclaw agents list --bindings

这条命令会列出所有 Agent 及其绑定规则,方便确认配置是否正确。

七、常见配置示例

工作 Bot + 家用 Bot

{
  agents: {
    defaults: {
      model: { primary: "anthropic/claude-sonnet-4-6" }
    },
    list: [
      {
        id: "work",
        agentDir: "~/.openclaw/agents/work",
        workspace: "~/work-workspace",
        tools: { profile: "coding" }         // 可以操作文件和执行命令
      },
      {
        id: "home",
        agentDir: "~/.openclaw/agents/home",
        workspace: "~/.openclaw/workspace-home",
        model: { primary: "groq/llama-3.3-70b-versatile" },  // 用更便宜的模型
        tools: { profile: "messaging" }      // 只能聊天
      }
    ],
    bindings: [
      { channel: "telegram", peer: "自己的user_id", agentId: "work" },
      { channel: "telegram", agentId: "home" }   // 其他人走 home
    ]
  }
}

给不同 Channel 设置不同个性

每个 Agent 的工作目录里可以放 SOUL.md 文件,定义 Bot 的个性和行为风格:

# work Agent 的个性
echo "你是一个专业的工作助理,回答简洁、重点突出。" > ~/work-workspace/SOUL.md

# home Agent 的个性
echo "你是一个友善的家庭助理,语气温暖,适合全家人使用。" > ~/.openclaw/workspace-home/SOUL.md
OpenClaw超简单15:多智能体路由实战——自动辩论系统 OpenClaw超简单13:工具权限控制