飞书单机器人配置多个 Agent 实践指南

臭大佬 2026-03-13 15:44:48 123
AI 
简介 飞书单机器人配置多个 Agent 实践指南

📖 背景说明

在默认情况下,当你为飞书频道绑定一个机器人后,这个机器人对应的是一个独立的 Agent。无论你把这个机器人拉到多少个不同的群聊中,它在 OpenClaw 后端始终对应着同一个 Agent。

但这种配置存在一个局限性:所有群聊共享同一个 Agent 的数据、上下文和模型配置。
多bot多agents: 需要申请多个机器人,麻烦而且也没有必要。

本教程将教你如何实现:一个飞书机器人对应多个不同的 Agent,每个 Agent 拥有独立的数据隔离、可以使用不同的模型,从而实现群聊级别的数据隔离和个性化配置。


🎯 典型应用场景

  • 技术群:使用编程能力强的模型(如 qwen-coder),Agent 身份为”架构师”
  • 产品群:使用理解能力强的模型(如 GLM-5),Agent 身份为”产品经理”
  • 管理群:使用综合能力强的模型(如 Kimi),Agent 身份为”总监”

一、新增 Agents

1.1 命令格式

openclaw agents add --workspace 工作空间路径 Agent名称

1.2 参数详解

参数 说明 示例
--workspace Agent 的独立工作空间路径,用于数据隔离 Linux: /root/.openclaw/workspace/feishu/code<br>Windows: openclaw agents add —workspace C:\Users\Administrator\.openclaw\workspace\feishu\code
Agent名称 唯一标识符,即 AgentId,建议见名知意 code-agentproduct-agent
--model (可选) 指定自定义模型 ID,不添加则使用默认模型 bailian/qwen3-coder-plus

1.3 实际示例

# 创建一个专门用于代码相关的 Agent
openclaw agents add --workspace openclaw agents add --workspace C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\code feishu-code

💡 提示:执行前请确保工作空间目录已存在,系统会自动创建必要的配置文件。


二、验证 Agent 是否创建成功

执行以下命令查看所有已创建的 Agent 列表:

openclaw agents list

你应该能看到刚创建的 Agent 出现在列表中。


三、飞书群组绑定

现在我们已经创建了多个 Agent,接下来需要将它们分别绑定到不同的飞书群聊中。

3.1 查看当前绑定关系

首先,让我们看看当前已经配置了哪些绑定:

openclaw config get bindings

3.2 获取飞书群 ID

在绑定群聊之前,我们需要先获取目标群聊的 ID。

操作步骤:

  1. 打开飞书群聊
  2. 点击右上角 设置 图标
  3. 在群信息中找到 会话 ID

⚠️ 注意:复制群 ID 时,注意不要包含多余的空格或字符。

3.3 查看飞书渠道配置

在配置绑定前,先了解你的飞书渠道配置信息:

openclaw config get channels.feishu

你会看到类似这样的配置结构:

{
  "channels": {
    "feishu": {
      "accounts": {
        "main": {              // ← 这个是账号标识(accountId)
          "appId": "xxx",
          "appSecret": "xxx"
        },
        "default": {
          "dmPolicy": "pairing"
        }
      },
      "enabled": true,
      "streaming": true,
      "footer": {
        "elapsed": true,
        "status": true
      }
    }
  }
}

关键点:记住 channels.feishu.accounts 下的账号名称(示例中是 main),后续配置绑定时会用到。

3.4 配置群组绑定

现在,我们使用以下命令将 Agent 绑定到具体的飞书群:

openclaw config set --json bindings '[
  {
    "agentId": "feishu-code",        // ← 你的 Agent ID
    "match": {
      "channel": "feishu",            // ← 固定值,表示飞书渠道
      "accountId": "main",            // ← 对应 channels.feishu.accounts 中的账号名
      "peer": {
        "kind": "group",              // ← 固定值,表示群聊
        "id": "oc_34fdfds3XXX"        // ← 你的飞书群 ID
      }
    }
  }
]'

参数说明:

参数 说明 示例
agentId 要绑定的 Agent ID feishu-code
id 飞书群 ID oc_34fdfds3XXX
accountId 飞书渠道配置中的账号标识 main

3.5 配置安全策略(推荐)

默认情况下,channels.feishu.groupPolicyopen 模式,这意味着机器人会响应所有群组的消息。

建议:将其设置为 allowlist 模式,只响应白名单中的群组消息,提高安全性。

# 设置策略为白名单模式
openclaw config set channels.feishu.groupPolicy allowlist

# 添加允许访问的群组列表
openclaw config set --json channels.feishu.groupAllowFrom '["oc_34fdfxxx","oc_34fdfxxx"]'

四、完整配置示例

下面是一个完整的配置文件示例,展示了如何配置多个 Agent 和绑定关系:

{
  // ============ 渠道配置 ============
  "channels": {
    "feishu": {
      "accounts": {
        "main": {
          "appId": "cli_a917dxxx",
          "appSecret": "3PFfvN3xxxx"
        },
        "default": {
          "dmPolicy": "pairing"
        }
      },
      "enabled": true,
      "streaming": true,
      "footer": {
        "elapsed": true,
        "status": true
      }
    }
  },

  // ============ Agent 配置 ============
  "agents": {
    "defaults": {
      "model": {
        "primary": "bailian/glm-5"
      },
      "models": {
        "zai/glm-4.7": {
          "alias": "GLM"
        },
        "zai/glm-4.7-flash": {
          "alias": "glm-4.7-flash"
        },
        "zai/glm-5": {
          "alias": "GLM"
        },
        "bailian/glm-5": {
          "alias": "GLM"
        }
      },
      "workspace": "C:\\Users\\Administrator\\clawd",
      "timeoutSeconds": 86400
    },

    "list": [
      // 主 Agent
      {
        "id": "main"
      },

      // 代码专家 Agent
      {
        "id": "feishu-code",
        "name": "feishu-code",
        "workspace": "C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\code",
        "agentDir": "C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\code",
        "model": {
          "primary": "bailian/qwen3-coder-plus",
          "fallbacks": [
            "bailian/qwen3.5-plus",
            "zai/glm-5"
          ]
        },
        "identity": {
          "name": "架构师",
          "emoji": "💻"
        }
      },

      // 产品经理 Agent
      {
        "id": "feishu-product",
        "name": "feishu-product",
        "workspace": "C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\product",
        "agentDir": "C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\product",
        "model": {
          "primary": "bailian/glm-5",
          "fallbacks": [
            "bailian/qwen3.5-plus",
            "zai/glm-5"
          ]
        },
        "identity": {
          "name": "产品经理",
          "emoji": "📋"
        }
      },

      // 总监 Agent
      {
        "id": "feishu-director",
        "name": "feishu-director",
        "workspace": "C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\director",
        "agentDir": "C:\\Users\\Administrator\\.openclaw\\workspace\\feishu\\director",
        "model": {
          "primary": "bailian/kimi-k2.5",
          "fallbacks": [
            "bailian/qwen3.5-plus",
            "zai/glm-5"
          ]
        },
        "identity": {
          "name": "总监",
          "emoji": "👔"
        }
      }
    ]
  },

  // ============ 绑定关系配置 ============
  "bindings": [
    {
      "agentId": "feishu-code",
      "match": {
        "channel": "feishu",
        "accountId": "main",
        "peer": {
          "kind": "group",
          "id": "oc_ebfxxx"
        }
      }
    },
    {
      "agentId": "feishu-product",
      "match": {
        "channel": "feishu",
        "accountId": "main",
        "peer": {
          "kind": "group",
          "id": "oc_b99xxx"
        }
      }
    }
  ]
}

五、常见问题排查

❓ 问题 1: 绑定后机器人没有响应

可能原因:

  • 群 ID 配置错误
  • Agent ID 不存在
  • 群组策略设置为 allowlist 但群 ID 未加入白名单

解决方法:

# 检查绑定是否正确
openclaw config get bindings

# 检查 Agent 是否存在
openclaw agents list

# 如果使用了 allowlist,检查白名单
openclaw config get channels.feishu.groupAllowFrom

❓ 问题 2: 如何修改已存在的绑定?

方法一:使用命令重新设置(会覆盖整个 bindings)

方法二:直接编辑配置文件(适用于多个绑定的场景)

❓ 问题 3: 不同的 Agent 能否共享数据?

默认情况下,不同 Agent 的工作空间是独立的,数据相互隔离。如果需要共享数据,可以考虑:

  • 使用统一的数据库后端
  • 在 Agent 之间通过飞书机器人互相转发

六、最佳实践建议

✅ 推荐做法

  1. 命名规范: Agent ID 使用 feishu-{功能} 格式,如 feishu-codefeishu-product
  2. 工作空间分离: 每个 Agent 使用独立的 workspace 路径,便于数据管理
  3. 模型选择: 根据群聊性质选择合适的模型
    • 技术群:coder 系列、deepseek-coder
    • 通用群:GLM-5、Qwen3.5-plus
    • 长文本:Kimi、Claude 系列
  4. 安全策略:始终使用 allowlist 模式,只允许授权群组访问

🎯 进阶技巧

  • 为不同 Agent 设置不同的 identity.nameidentity.emoji,让群成员一眼就能识别当前对话的 Agent 角色
  • 配置 fallbacks 确保主模型不可用时能自动降级
  • 定期备份各 Agent 的工作空间数据

🎉 恭喜!你已经学会了如何配置一个飞书机器人对应多个 Agent。

现在你可以根据不同的业务场景,为每个群聊配置专属的 Agent,实现真正的智能化群聊管理!