OpenClaw(龙虾) 进阶:多机器人、多 Agent 配置——AI团队协同的前提

默认情况下添加飞书频道绑定一个机器人之后,这时每个机器人对应的是一个Agent。你将该机器人拉到不同的群中他对应的也只是同一个机器人,在OpenClaw端背后对应着同一个Agent。

单机器人多群聊多Agent:配置多个群聊对应单机器人多个不同Agent,每个Agent之间数据隔离、模型可以不一样,实现群数据隔离。
多机器人多Agent:添加多个机器人连接到同一个OpenClaw,不同的机器人可以对应不同Agent,Agent之间数据隔离、模型可以不一样。
image

一、多群聊多Agent

多个群组同时往一个机器人发消息时由于它背后对应的是同一个Agent此时如果Agent有在处理任务其他消息会进入队列等待。如果想让同一个机器人在不同的群中扮演不同的角色,对应不同的技能,不同群组之间数据进行隔离能否做到?答案是可以做得到,这就是本章节要介绍的主要内容。

多群聊单个机器人对应OpenClaw中多个不同的Agent,就能达到上面所说的目标:不同的技能,不同群组间数据隔离。

备份OpenClaw

备份是为了避免误操作之后无法回复数据。

 cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak_$(date +%Y%m%d_%H%M%S)

 ls -l ~/.openclaw/openclaw.json*

恢复OpenClaw的配置。

 cp ~/.openclaw/openclaw.json.bak_YYYYMMDD_HHMMSS ~/.openclaw/openclaw.json

 ##openclaw.json.back_YYYYMMDD_HHMMSS为备份时的实际文件名

1、新增 Agents

使用openclaw agents add 命令可以添加新 Agent,需要把workspace 路径和Agent 的名称换为自己设置的路径和名称:

 openclaw agents add --workspace 工作空间路径 Agent名称  
 参数说明:
 • --workspace:独立的工作空间路径,如:/root/.openclaw/workspace-feishu-code
 •  Agent名称:此名称唯一,也啊AgentId,可为任意名称,推荐见名知意,如:code-agent
 • --model:需要使用自定义模型,可以添加此参数填写模型 ID,否则使用默认模型

这里以创建一个Code Agent 为例,命名为code agent,对应的 workspace 设置为/root/.openclaw/workspace-code-agent。

 openclaw agents add --workspace /root/.openclaw/workspace-code-agent code-agent

2、验证 Agent

查看创建的Agent是否成功。

 openclaw agents list

image

3、飞书群组绑定

配置飞书群组与Agent的绑定关系,先查看当前是否还有其他绑定数据,现在需要新增一个群组与Agent的绑定关系。
查看当前的绑定关系:
openclaw config get bindings

在原来的基础上添加新的绑定关系,如果当前绑定为空,可以在替换 id 为实际的飞书群组会话id后直接执行下面语句。

openclaw config set --json bindings '[
  {
    "agentId": "code-agent",
    "match": {
      "channel": "feishu",
      "peer": {
        "kind": "group",
        "id": "oc_34fdfds3333jkjjjjhhhhbdd222"
      }
    }
  }
]'

对于存在绑定关系的可以先get bindings得到原先关系,在按照下面方法设置新关系。路由的匹配规则:从精确到模糊、从上到下。精确的路由规则尽量放在上面,Default 为兜底规则。
执行:config set --json bindings '[ 原绑定, 新飞书群绑定 ]'
绑定完后可再次执行:openclaw config get bindings 确认是否绑定正确。

4、群组允许列表

默认channels.feishu.groupPolicy是open,允许响应所有群组的消息,可以将其设置为allowlist。只响应经过授权的群组消息。
使用 allowlist 策略确保配置在 groupAllowFrom 中的群组才可访问 OpenClaw。

 openclaw config set channels.feishu.groupPolicy allowlist
 openclaw config set --json channels.feishu.groupAllowFrom '["oc_34fdfds3333jkjjjjhhhhbdd222"]'

在非授权群组@机器人时OpenClaw日志如下:

 [feishu] feishu[default]: received message from ou_29474ba1e15f058a10da8b83c037734d in oc_12c8eec3fcb22fc9aa634dfe29fddf2d (group)
 [feishu] feishu[default]: group oc_12c8eec3fcb22fc9aa634dfe29fddf2d not in groupAllowFrom (groupPolicy=allowlist)

5、重启Gateway

 openclaw gateway restart

配置完后可看到新的agent。

同一个机器人在不同的群组中绑定不同Agent,数据按群组隔离。

image

二、多机器人多Agent

上面使用过了 openclaw config 指令完成 OpenClaw 配置的更新,这里直接修改 openclaw.json 文件完成多机器人多Agent的配置。

1、创建工作空间

 mkdir -p /root/.openclaw/workspace-news-agent

编辑openclaw.json文件
vim /root/.openclaw/openclaw.json
在 agents 键的 list 数组中添加一个 Agent,这里新增的 Agent 为 news-agent。

"list": [
    {
      "id": "main"
    },
    {
      "id": "code-agent",
      "name": "code-agent",
      "workspace": "/root/.openclaw/workspace-feishu-code",
      "agentDir": "/root/.openclaw/agents/code-agent/agent"
    },
    {
      "id": "news-agent",
      "name": "news-agent",
      "workspace": "/root/.openclaw/workspace-feishu-news",
      "agentDir": "/root/.openclaw/agents/news-agent/agent",
      "model": {
        "primary": "minimax-cn/MiniMax-M2.5"
      }
    }
  ]

id: Agent 唯一标识
agentDir: agent目录
default: 标记默认 Agent 只有一个可为 true
workspace: 工作空间路径
model.primary:  Agent 使用的模型  

这里 id 为 main 的为默认主Agent,可以不要此Agent,添加 default 为 true 的key将其他Agent设置为主Agent。

2、配置飞书机器人

channels.feishu 键中新添加一个机器人:

"channels": {
   "feishu": {
     "enabled": true,
     "accounts": {
         "main":{
              "appId": "cli_a911111111111111",
              "appSecret": "WeiX4e8rjfLR91Uz0N7xTeqffffffffff"
         },
         "news-agent":{
              "appId": "cli_a922222222222222",
              "appSecret": "f9oDvGGhVRjDeAbXjEL1hggggggggggggg"
         }
     },
     "domain": "feishu",
     "groupPolicy": "open",
     "dmPolicy": "open",
     "allowFrom": [
       "*"
     ],
     "renderMode": "card",
     "streaming": true,
     "footer": {
       "status": true,
       "elapsed": true
     },
     "groupAllowFrom": [
       "oc_12xxxxxxxxxxxxxxxxx"
     ]
   }
 }

每个accounts 的 key(如code-agent)与每个 Agent ID 一一对应。 appId 和 appSecret 为每个飞书机器人的应用凭证。

3、配置绑定路由

"bindings": [
    {     
      "agentId": "code-agent",
       "match": {
        "channel": "feishu",
        "accountId": "main",
        "peer": {
          "kind": "group",
          "id": "oc_12xxxxxxxxxxxxxxxxx"
        }
      }
    },{
        "agentId": "news-agent",
        "match": {
         "channel": "feishu",
         "accountId": "news-agent"
       }
    }
  ]

修改完openclaw.json后执行 openclaw config get bindings 检查绑定对不对。

match.channel: 固定为 "feishu"
match.accountId: 对应飞书机器人的 key 这里是 news-agent
agentId:  消息路由到的 Agent

还可以为每个Agent创建记忆文件,如IDENTITY、SOUL.md、AGENTS.md、MEMORY.md等。

4、重启Gateway

##重启
openclaw gateway restart
## 查看状态
openclaw gateway status

重启完之后即可看到新接入的不同Agent的机器人。

描述性文字

完成上面的配置后OpenClaw同时具备了单机器人多群聊多Agent、多机器人多Agent的能力。

总结

这里使用了两种方式来完成 OpenClaw 多 Agent 的配置。使用命令行完成 Agent 的添加、配置的修改可能对非IT人员来说更简单下,直接修改~/.openclaw/openclaw.json 文件也许对于非码农来说可能难度更高。当然还可以直接使用小龙虾来完成上述模型,如果你用的是比较差的模型,你还是慎重,小龙虾比较容易把自己搞死。

image

单Agent如果职责过多可能会造成完成任务的质量下降,或记忆混乱。 为了职责分明,可以在多Agent的基础上让各个Agent之间相互通讯,进行分工协作完成任务。

文章首发地址:https://mp.weixin.qq.com/s/HgfTDZrDyZpNY8OaLe1MRQ

posted @ 2026-03-09 08:22  AiFly  阅读(1120)  评论(0)    收藏  举报