1.当前系统环境

  • OS : Ubuntu 26.04

  • Node : v22.22.1

  • 内存 : 8GB RAM

  • 网络 : 可访问外网(用于调用 LLM API)

2.系统架构概览

  • 本部署采用 单节点多 Agent ​ 架构,通过 OpenClaw Gateway 统一对外提供服务,并接入飞书(Feishu)作为消息渠道。

3.openclaw创建多agent

  • 创建命令
# 添加agent,名称为manager
openclaw agents add manager

## 流程和openclaw onboard配置基本一致,建议工作目录独立,默认就是以agent名称的工作目录,模型可以根据自己情况配置,每个agent对应一个模型最好,消息渠道我选择飞书
-- 确认Agent的工作目录

-- 请选择默认模型:

-- 请选择消息渠道

# 删除agent
openclaw agents delete manager

# 配置好后的目录结构
/root/.openclaw/
├── openclaw.json         # 主配置文件
├── workspace/            # 全局工作区
│   ├── manager/          # manager agent 数据
│   └── writer/           # writer agent 数据
├── agents/
│   ├── manager/agent/    # manager agent 配置
│   └── writer/agent/     # writer agent 配置

4. 核心配置详解 (openclaw.json)

4.1 Agents 定义

  • 系统配置了 3 个 Agent,各自独立工作区与模型

"agents": {
    "defaults": {
      "workspace": "/root/.openclaw/workspace",
      "models": {
        "deepseek/deepseek-v4-flash": {
          "alias": "DeepSeek"
        },
        "zai/glm-4.5-air": {
          "alias": "GLM"
        },
        "sensenova/sensenova-6.7-flash-lite": {
          "alias": "SenseNova"
        }
      },
      "model": {
        "primary": "deepseek/deepseek-v4-flash"
      }
    },
    "list": [
      {
        "id": "main",
        "model": "sensenova/sensenova-6.7-flash-lite"
      },
      {
        "id": "manager",
        "name": "manager",
        "workspace": "/root/.openclaw/workspace/manager",
        "agentDir": "/root/.openclaw/agents/manager/agent",
        "model": "deepseek/deepseek-v4-flash"
      },
      {
        "id": "writer",
        "name": "writer",
        "workspace": "/root/.openclaw/workspace/writer",
        "agentDir": "/root/.openclaw/agents/writer/agent",
        "model": "zai/glm-4.5-air"
      }
    ]
  },

4.2 Model Providers (模型服务)

  • 已配置三个国产模型供应商,注:SenseNova 模型直接在openclaw.json配置文件中配置的,所以添加了apikey,DeepSeek 和 ZAI 是在openclaw setup配置的,apikey在auth profiles 中配置

"models": {
    "mode": "merge",
    "providers": {
      "deepseek": {
        "baseUrl": "https://api.deepseek.com",
        "api": "openai-completions",
        "models": [
          {
            "id": "deepseek-v4-flash",
            "name": "DeepSeek V4 Flash",
            "reasoning": true,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0.14,
              "output": 0.28,
              "cacheRead": 0.028,
              "cacheWrite": 0
            },
            "contextWindow": 1000000,
            "maxTokens": 384000,
            "compat": {
              "supportsReasoningEffort": true,
              "supportsUsageInStreaming": true,
              "maxTokensField": "max_tokens"
            },
            "api": "openai-completions"
          },
          {
            "id": "deepseek-v4-pro",
            "name": "DeepSeek V4 Pro",
            "reasoning": true,
            "input": [
              "text"
            ],
            "cost": {
              "input": 1.74,
              "output": 3.48,
              "cacheRead": 0.145,
              "cacheWrite": 0
            },
            "contextWindow": 1000000,
            "maxTokens": 384000,
            "compat": {
              "supportsReasoningEffort": true,
              "supportsUsageInStreaming": true,
              "maxTokensField": "max_tokens"
            },
            "api": "openai-completions"
          },
          {
            "id": "deepseek-chat",
            "name": "DeepSeek Chat",
            "reasoning": false,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0.28,
              "output": 0.42,
              "cacheRead": 0.028,
              "cacheWrite": 0
            },
            "contextWindow": 131072,
            "maxTokens": 8192,
            "compat": {
              "supportsUsageInStreaming": true,
              "maxTokensField": "max_tokens"
            },
            "api": "openai-completions"
          },
          {
            "id": "deepseek-reasoner",
            "name": "DeepSeek Reasoner",
            "reasoning": true,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0.28,
              "output": 0.42,
              "cacheRead": 0.028,
              "cacheWrite": 0
            },
            "contextWindow": 131072,
            "maxTokens": 65536,
            "compat": {
              "supportsReasoningEffort": false,
              "supportsUsageInStreaming": true,
              "maxTokensField": "max_tokens"
            },
            "api": "openai-completions"
          }
        ]
      },
      "zai": {
        "baseUrl": "https://open.bigmodel.cn/api/paas/v4",
        "api": "openai-completions",
        "models": [
          {
            "id": "glm-4.5-air",
            "name": "GLM-4.5 Air",
            "reasoning": true,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0.2,
              "output": 1.1,
              "cacheRead": 0.03,
              "cacheWrite": 0
            },
            "contextWindow": 131072,
            "maxTokens": 98304
          }
        ]
      },
      "sensenova": {
        "baseUrl": "https://token.sensenova.cn/v1",
        "apiKey": "sk-huU1Nwjac611111XRVyyZo888pZgoBPhi",
        "api": "openai-completions",
        "models": [
          {
            "id": "sensenova-6.7-flash-lite",
            "name": "SenseNova V6.7 Flash-Lite",
            "reasoning": true,
            "input": ["text", "image"],
            "cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0},
            "contextWindow": 128000,
            "maxTokens": 32000
          }
        ]
      }
    }
  },

5. 飞书 (Feishu) 集成配置

5.1 账号映射

  • 系统通过 bindings 将飞书机器人账号与内部 Agent 绑定

"channels": {
    "feishu": {
      "enabled": true,
      "defaultAccount": "main",
      "accounts": {
        "main": {
          "appId": "cli_aa83f01aa59999cbd",
          "appSecret": "CQ9pHgmikiJj99999991GsDtDEt0iQ",
          "name": "Primary bot",
          "tts": {
            "providers": {
              "openai": {
                "voice": "shimmer"
              }
            }
          }
        },
        "manager": {
          "appId": "cli_aa82222dbb78dcc4",
          "appSecret": "7ThoS222222222222222g21WWBCriWN",
          "name": "Manager bot"
        },
        "writer": {
          "appId": "cli_aa811119deb9dcc6",
          "appSecret": "XCZq86IH31111111111d8cVkNNWTYY7s",
          "name": "Writer bot"
        }
      },
      "domain": "feishu",
      "dmPolicy": "allowlist",
      "allowFrom": [
        "ou_75dce55c2f11111111152c8bc526c294",
        "ou_89a264d331222222222e74f63be35f23",
        "ou_01dac560d833333333317083ff49b741"
      ],
      "groupPolicy": "open",
      "requireMention": true
    }
  },
  "bindings": [
    {
      "agentId": "main",
      "match": {
        "channel": "feishu",
        "accountId": "main",
        "peer": { "kind": "direct", "id": "ou_75dce55c2f11111111152c8bc526c294" }
      }
    },
    {
      "agentId": "manager",
      "match": {
        "channel": "feishu",
        "accountId": "manager"
      }
    },
    {
      "agentId": "writer",
      "match": {
        "channel": "feishu",
        "accountId": "writer"
      }
    }
  ],

5.2 权限控制 (DM Policy)

  • mainAgent 启用了严格的白名单机制:
  • 允许的用户 Open IDs:
     "allowFrom": [
        "ou_75dce55c2f11111111152c8bc526c294",
        "ou_89a264d331222222222e74f63be35f23",
        "ou_01dac560d833333333317083ff49b741"
      ],
  • 群聊策略: open(允许群聊 @ 触发)

5.3 飞书情况

  • 目前是三个角色,一二(main)、一四(manager)和一五(writer),他们可以分工干活。

至此,多agent就部署完了,下边把他们放到一个群聊中通过@对应的agent,分配不同的任务!!!

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐