Skip to content

Latest commit

 

History

History
262 lines (217 loc) · 8.6 KB

File metadata and controls

262 lines (217 loc) · 8.6 KB

创建 multi-agent

长期使用 openclaw 就会发现,一只虾还是难以处理多种类型的任务,因此,我们需要创建多个虾,每个虾负责不同的任务。在这里,我将分享如何创建多个虾,每个虾负责不同的任务。以下是具体步骤:

  1. 定义虾的角色和任务: 首先,明确每个虾的角色和任务。例如,一个虾负责工程代码(高工),另一个虾负责论文和基金撰写(小智),第三个虾负责其他工作(管家)。
  2. 创建飞书机器人: 在 飞书开放平台 创建对应的机器人应用,并为每个应用配置必要的权限和回调 URL。
  3. 创建虾的实例: 使用 openclaw 在后台创建多个虾的实例。每个实例代表一个虾,并分配给它专属的工作空间和智能体配置。
  4. 配置虾的参数: 根据任务的需求,配置每个虾的参数。例如,数据分析虾可能需要更多的计算资源,而文本生成虾可能需要更多的语言模型参数。
  5. 启动虾: 启动所有虾的实例,使它们开始工作。可以使用脚本或命令行工具来批量启动。

1. 定义虾的角色和任务

  • 高工:高级工程师

包括数据处理与分析、模型实验与调优、工程开发与部署、文档与知识管理。具体如下: 1.数据处理与分析:数据清晰与预处理、特征工程、数据可视化、构建数据管道 2.模型实验与调优:复现基线模型、超参数调优辅助、A/B测试支持、结果整理与归档 3.工程开发与部署:代码封装与测试、模型服务优化、性能优化辅助、CI/CD支持 4.文档与知识管理:技术文档撰写、竞品/论文调研

  • 小智:小智博士

包括论文与基金撰写、文档与知识管理、数据处理与分析、模型实验与调优。具体如下: 1.论文与基金撰写:论文撰写、基金撰写、文档撰写、知识管理 2.文档与知识管理:技术文档撰写、竞品/论文调研、数据可视化、构建数据管道 3.数据处理与分析:数据清洗与预处理、特征工程、数据可视化、构建数据管道 4.模型实验与调优:复现基线模型、超参数调优辅助、A/B测试支持、结果整理与归档

  • 管家:管家

包括工程代码、论文与基金撰写、其他工作。具体如下: 1.工程代码:代码封装与测试、模型服务优化、性能优化辅助、CI/CD支持 2.论文与基金撰写:论文撰写、基金撰写、文档撰写、知识管理 3.其他工作:其他工作

2. 创建飞书机器人

2.1 进入飞书开放平台

访问 飞书开放平台,使用对应的飞书账号登录。

2.2 创建三个机器人应用

为每个虾创建一个独立的飞书机器人应用:

  1. 高工机器人

    • 点击"创建应用" → 选择"企业内部应用"
    • 应用名称:高工
    • 应用图标:上传合适的图标(建议使用工程师/工具类图标)
    • 应用描述:`负责工程代码、数据处理、模型实验与部署的高级工程师助手·
  2. 小智机器人

    • 点击"创建应用" → 选择"企业内部应用"
    • 应用名称:小智
    • 应用图标:上传合适的图标(建议使用博士帽/学术类图标)
    • 应用描述:负责论文与基金撰写、知识管理的学术助手
  3. 管家机器人

    • 点击"创建应用" → 选择"企业内部应用"
    • 应用名称:管家
    • 应用图标:上传合适的图标(建议使用管家/助手类图标)
    • 应用描述:负责日常事务管理和综合工作的全能助手

2.3 配置机器人权限

为每个机器人配置必要的权限:

  1. 进入应用后台 → 左侧菜单选择"权限与 JS 调用"
  2. 申请以下权限(根据实际需求):
    • chat:message:write - 发送消息
    • user:read - 读取用户信息
    • calendar:write - 创建/管理日程
    • bitable:write - 操作多维表格
    • doc:write - 创建/编辑文档
    • task:write - 创建/管理任务
    • drive:write - 文件管理
  3. 配置回调 URL(如果是 webhook 模式):
    • 在"基础设置"中配置事件订阅和回调 URL
    • 对于本地开发,可以使用 ngrok 等工具做内网穿透

2.4 获取应用凭证

每个机器人创建完成后,记录下以下信息:

  1. 应用 ID (App ID):格式如 cli_xxxxxxxx
  2. 应用密钥 (App Secret):格式如 xxxxxxxx
  3. Bot 用户 ID:在"应用信息"页面可以找到

2.5 发布并安装机器人

  1. 发布应用:
    • 点击"发布" → 选择"发布到企业"
    • 填写应用信息,提交审核(企业内部应用通常自动通过)
  2. 添加机器人到群聊或私聊:
    • 在飞书桌面端/手机端,搜索机器人名称
    • 可以添加到群聊,或直接私聊

3. 创建虾的实例

3.1 备份配置文件

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

3.2 为每个虾创建独立工作区和Agent文件夹

# openclaw agents add --workspace 工作空间路径 新Agent的名称(ID)

openclaw agents add --workspace ./workspace-gaogong gaogong
openclaw agents add --workspace ./workspace-xiaozhi xiaozhi
openclaw agents add --workspace ./workspace-guanjia guanjia

openclaw agents list

4 配置虾的参数

{
  ...
  # 在 agents/list 添加新的 agent
  "agents": {
    "defaults": {...},
    "list": [
      {
        "id": "gaogong",
        "name": "高工", 
        "workspace": "/root/.openclaw/workspace",
        "agentDir": "/root/.openclaw/agents/main/agent",
        "model": "xxx/xxxx"     # 选配,不指定则使用默认模型
      },
      {
        "id": "xiaozhi",
        "name": "小智",
        "workspace": "/root/.openclaw/workspace-xiaozhi",
        "agentDir": "/root/.openclaw/agents/xiaozhi/agent",
        "model": "xxx/xxxx"     # 选配,不指定则使用默认模型
      },
      {
        "id": "guanjia",
        "name": "管家",
        "workspace": "/root/.openclaw/workspace-guanjia",
        "agentDir": "/root/.openclaw/agents/guanjia/agent",
        "model": "xxx/xxxx"     # 选配,不指定则使用默认模型
      }
    ]
  },
  ...
  # 在 bindings 设置 agent 与 feishu 账号的关联信息
  "bindings": [
    {
      "agentId": "guanjia",
      "match": {
        "channel": "feishu",
        "accountId": "guanjia"
      }
    },
    {
      "agentId": "xiaozhi",
      "match": {
        "channel": "feishu",
        "accountId": "xiaozhi"
      }
    },
    {
      "agentId": "guanjia",
      "match": {
        "channel": "feishu",
        "accountId": "guanjia"
      }
    }
  ],
  ...
  # 在 channels 设置 feishu 机器人的信息
  "channels": {
    "feishu": {
      "enabled": true,
      "domain": "feishu",
      "defaultAccount": "guanjia",
      "accounts": {
        "gaogong": {
          "appId": "cli_xxxxxxxx",          # 高工-飞书机器人的 appId
          "appSecret": "xxxxx",             # 高工-飞书机器人的 appSecret
          "botName": "高工"
        },
        "xiaozhi": {
          "appId": "cli_xxxxxxxx",          # 小智-飞书机器人的 appId
          "appSecret": "xxxxx",             # 小智-飞书机器人的 appSecret
          "botName": "小智"
        },
        "guanjia": {
          "appId": "cli_xxxxxxxx",          # 管家-飞书机器人的 appId
          "appSecret": "xxxxx",             # 管家-飞书机器人的 appSecret
          "botName": "管家"
        },
        "default": {
          "dmPolicy": "pairing"
        }
      }
    }
  },
  ...
  # 在 tools 设置 agent 之间的通信
  "tools": {
    "sessions": {
      "visibility": "all"
    },
    "agentToAgent": {
      "enabled": true,
      "allow": [
        "gaogong",
        "xiaozhi",
        "guanjia"
      ]
    }
  },
  ...
  # 在 session 设置 agent 之间的最大通信次数
  "session": {
    "agentToAgent": {
      "maxPingPongTurns": 5
    }
  },
  ...
}

至此,三只虾的配置工作已经完成,接下来启动虾群开始工作。

5. 启动虾

# 重启 Gateway
openclaw gateway run

# 验证 Agent 列表和绑定关系
openclaw agents list --bindings

# 验证飞书频道状态
openclaw channels status --probe

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

启动后,回到飞书上与每一个机器人进行沟通,完成openclaw和飞书Bot的配对授权。

6. 虾与飞书Bot配对授权

在飞书上与高工、小智、管家每个Bot进行对话,完成openclaw和飞书Bot的配对授权。

openclaw pairing approve feishu XXXXXXXX