一、架构概述

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   飞书应用 A     │     │   飞书应用 B     │     │   飞书应用 C     │
│  (cli_xxx)      │     │  (cli_yyy)      │     │  (cli_zzz)      │
│   default       │     │    coding       │     │   writing       │
└────────┬────────┘     └────────┬────────┘     └────────┬────────┘
         │                       │                       │
         └───────────────────────┼───────────────────────┘
                                 │
                    ┌────────────▼────────────┐
                    │    OpenClaw Gateway     │
                    │   (WebSocket 长连接)     │
                    └────────────┬────────────┘
                                 │
           ┌─────────────────────┼─────────────────────┐
           │                     │                     │
    ┌──────▼──────┐      ┌──────▼──────┐      ┌──────▼──────┐
    │  main Agent  │      │ coding Agent│      │writing Agent│
    │  (通用助手)   │      │  (编程专家)  │      │  (文案大师)  │
    │             │      │             │      │             │
    │ • workspace │      │ • workspace │      │ • workspace │
    │ • data/     │      │ • data/     │      │ • data/     │
    │ • config    │      │ • config    │      │ • config    │
    │ • 独立模型   │      │ • 独立模型   │      │ • 独立模型   │
    └─────────────┘      └─────────────┘      └─────────────┘

核心优势:

  • 每个飞书 Bot 对应独立 Agent
  • 每个 Agent 拥有独立的工作空间、知识库、模型配置
  • 通过 Bindings 实现精准路由
  • 运行时通过命令动态切换模型

二、核心概念

层级作用配置位置
飞书应用 (Feishu App)飞书开放平台的机器人应用,提供 App ID 和 App Secret飞书开放平台
OpenClaw Channel连接飞书的通道,管理 WebSocket 连接channels.feishu
AccountChannel 内的具体账号配置,对应一个飞书应用channels.feishu.accounts.<id>
AgentAI 处理单元,包含模型、提示词、工具、知识库agents.list + ~/.openclaw/agents/
Binding路由规则,将飞书消息映射到指定 Agentbindings
WorkspaceAgent 的独立工作目录创建 Agent 时指定

三、配置步骤

步骤 1:准备飞书应用

为每个 Agent 创建独立的飞书应用:

应用用途获取凭证
应用 Adefaultcli_a9145149cb395bca / Msgaj5nU6fqHAmSkqjquaeEkKuFLvsoj
应用 Bcodingcli_a9155b5842f81bdf / ucipaeCG7oBduoE6LLrPKh3TKnm621te
应用 Cwritingcli_... / ...

每个应用必须:

  1. 开启"机器人"能力
  2. 开通权限:im:message.receive_v1、im:message:send_as_bot
  3. 事件订阅:使用长连接接收事件(WebSocket)
  4. 创建版本并发布

步骤 2:创建 Agent(带独立工作空间)

# 创建 main Agent(通用助手)
openclaw agents add main `
  --model deepseek-lockin/deepseek-v3-250324 `
  --workspace C:\Users\EDY\.openclaw\workspace-main

# 创建 coding Agent(编程专家)
openclaw agents add coding `
  --model anthropic/claude-3-5-sonnet-20241022 `
  --workspace C:\Users\EDY\.openclaw\workspace-coding

# 创建 writing Agent(文案大师)
openclaw agents add writing `
  --model openai/gpt-4o `
  --workspace C:\Users\EDY\.openclaw\workspace-writing

参数说明:

  • --model:指定默认模型(可选,后续可动态切换)
  • --workspace:指定独立工作空间(实现数据隔离)

步骤 3:配置 OpenClaw

编辑 C:\Users\EDY\.openclaw\openclaw.json:

{
  "agents": {
    "list": [
      {
        "id": "main",
        "workspace": "C:\\Users\\EDY\\.openclaw\\workspace-main",
        "agentDir": "C:\\Users\\EDY\\.openclaw\\agents\\main\\agent"
      },
      {
        "id": "coding",
        "workspace": "C:\\Users\\EDY\\.openclaw\\workspace-coding",
        "agentDir": "C:\\Users\\EDY\\.openclaw\\agents\\coding\\agent"
      },
      {
        "id": "writing",
        "workspace": "C:\\Users\\EDY\\.openclaw\\workspace-writing",
        "agentDir": "C:\\Users\\EDY\\.openclaw\\agents\\writing\\agent"
      }
    ]
  },
  "channels": {
    "feishu": {
      "enabled": true,
      "domain": "feishu",
      "connectionMode": "websocket",
      "accounts": {
        "default": {
          "appId": "cli_a9145149cb395bca",
          "appSecret": "Msgaj5nU6fqHAmSkqjquaeEkKuFLvsoj",
          "botName": "主助手",
          "requireMention": true
        },
        "coding": {
          "appId": "cli_a9155b5842f81bdf",
          "appSecret": "ucipaeCG7oBduoE6LLrPKh3TKnm621te",
          "botName": "编程助手",
          "requireMention": false
        },
        "writing": {
          "appId": "cli_xxx",
          "appSecret": "xxx",
          "botName": "文案助手",
          "requireMention": false
        }
      }
    }
  },
  "bindings": [
    {
      "agentId": "main",
      "match": {
        "channel": "feishu",
        "accountId": "default"
      }
    },
    {
      "agentId": "coding",
      "match": {
        "channel": "feishu",
        "accountId": "coding"
      }
    },
    {
      "agentId": "writing",
      "match": {
        "channel": "feishu",
        "accountId": "writing"
      }
    }
  ]
}

关键配置说明:

字段说明注意事项
agents.list声明所有 Agent必须包含 id、workspace、agentDir
channels.feishu.accounts多账号配置键名(如 coding)即为 accountId
bindings路由规则accountId 必须与 accounts 键名一致
match.channel固定为 feishu表示飞书通道
match.accountId对应 accounts 的键区分大小写

步骤 4:验证与启动

# 1. 验证配置格式
openclaw doctor

# 2. 查看 Agent 列表
openclaw agents list

# 预期输出:
# Agents:
# - main (default)
#   Workspace: C:\Users\EDY\.openclaw\workspace-main
#   ...
# - coding
#   Workspace: C:\Users\EDY\.openclaw\workspace-coding
#   ...
# - writing
#   Workspace: C:\Users\EDY\.openclaw\workspace-writing
#   ...

# 3. 查看绑定关系
openclaw agents list --bindings

# 预期输出:
# - main: routing rules: 1 (feishu accountId=default)
# - coding: routing rules: 1 (feishu accountId=coding)
# - writing: routing rules: 1 (feishu accountId=writing)

# 4. 启动 Gateway
openclaw gateway restart

# 5. 验证通道状态
openclaw channels status --probe

# 预期输出:
# - Feishu default: enabled, configured, running, works
# - Feishu coding: enabled, configured, running, works
# - Feishu writing: enabled, configured, running, works

四、模型切换

OpenClaw 支持在飞书对话中实时切换模型,无需重启服务。

命令列表

命令作用示例
/model查看当前模型/model
/model <模型ID>切换到指定模型/model kimi
/status查看 Agent 状态/status
/reset重置会话(清空上下文)/reset

常用模型 ID

模型完整 ID适用场景
Kimikimi 或 moonshot/kimi-latest长文本处理、中文场景
DeepSeek-V3deepseek-lockin/deepseek-v3-250324代码生成、逻辑推理
Claude 3.5 Sonnetanthropic/claude-3-5-sonnet-20241022编程、分析、创意写作
GPT-4oopenai/gpt-4o通用任务、多模态
GPT-4o-miniopenai/gpt-4o-mini快速响应、低成本

操作示例

场景:coding Agent 默认使用 Claude,临时切换到 DeepSeek 处理特定任务

  1. 在 coding 飞书群 @机器人:

    /model deepseek-lockin/deepseek-v3-250324
    

    机器人回复:Model switched to deepseek-lockin/deepseek-v3-250324

  2. 发送编程问题,获得 DeepSeek 的回答

  3. 完成后切回 Claude:

    /model anthropic/claude-3-5-sonnet-20241022
    

隔离性说明

  • 每个 Agent 的模型状态完全独立
  • main Agent 切换到 Kimi 不影响 coding Agent
  • 模型切换仅对当前会话生效(持久化到 Agent 配置)

五、验证与排错

常见问题排查

现象原因解决方案
Feishu coding: not configured配置格式错误或混用旧格式确保完全使用 accounts 格式,删除顶层 appId
agentId not foundbindings 中的 agentId 不存在先运行 openclaw agents add 创建 Agent
unknown channel id: bindingsbindings 放在了 channels 内部将 bindings 移到与 channels 同级
机器人不响应飞书应用未发布或权限不足检查飞书后台:版本已发布、权限已开通
模型切换失败模型 ID 错误或不可用运行 openclaw models list 查看可用模型

验证命令速查

# 查看所有可用模型
openclaw models list

# 查看特定提供商模型
openclaw models list --provider deepseek
openclaw models list --provider anthropic
openclaw models list --provider openai

# 查看 Agent 详情(含当前模型)
openclaw agents describe main
openclaw agents describe coding

# 查看实时日志
openclaw logs --follow

# 查看配对列表(用于私聊授权)
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>

六、最佳实践

1. 命名规范

层级命名建议示例
飞书应用功能-环境-序号ai-helper-prod、ai-coding-dev
Account ID小写英文,无空格default、coding、writing、hr-helper
Agent ID与 Account ID 对应main、coding、writing
Workspace包含 Agent IDworkspace-coding、workspace-hr

2. 模型选择策略

Agent 类型推荐默认模型切换场景
通用助手DeepSeek-V3 / GPT-4o长文本切 Kimi,复杂推理切 Claude
编程专家Claude 3.5 Sonnet算法题切 DeepSeek,快速查询切 GPT-4o-mini
文案创作Claude 3.5 Sonnet / GPT-4o中文文案切 Kimi,营销文案切 GPT-4o
数据分析Claude 3.5 Sonnet大数据量切 DeepSeek,可视化切 GPT-4o

3. 数据隔离原则

  • 严格隔离:每个 Agent 独立 workspace 和 data 目录
  • 知识库分离:不同 Agent 的向量数据库不共享
  • 配置独立:config.json 中定义各自的 systemPrompt 和 tools

4. 生产环境建议

{
  "agents": {
    "list": [
      {
        "id": "coding",
        "workspace": "C:\\openclaw-prod\\workspace-coding",
        "agentDir": "C:\\openclaw-prod\\agents\\coding\\agent"
      }
    ]
  },
  "channels": {
    "feishu": {
      "accounts": {
        "coding": {
          "appId": "${FEISHU_CODING_APP_ID}",
          "appSecret": "${FEISHU_CODING_APP_SECRET}"
        }
      }
    }
  }
}
  • 使用环境变量注入敏感信息
  • 定期备份 workspace 和 agents 目录
  • 监控 Gateway 日志:openclaw logs --follow | Select-String "error|warning"

七、总结

通过本指南,您已完成:

✅ 多飞书应用配置 - 每个 Agent 绑定独立飞书 Bot
✅ 数据完全隔离 - 独立 workspace、data、config
✅ 动态模型切换 - 飞书内 /model 命令实时切换
✅ 灵活路由绑定 - 通过 bindings 精准控制消息流向

核心公式:

飞书应用 (App ID) → Account (accounts.<id>) → Binding (accountId) → Agent (id) → Model (/model 切换)

现在您可以在不同飞书群中@不同的机器人,每个机器人使用不同的模型和知识库,实现真正的多 Agent 智能协作!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐