📦 Collaboration Manager — 多智能体协作

v1.0.0

在飞书群聊中按@动态分派任务,智能体仅在被提及时响应,支持暂停/恢复、并行/串行任务追踪与卡片进度汇报,避免消息泛滥。

0· 315·1 当前·1 累计
by @tazio7 (Tazio7)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/9
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能描述的飞书/多智能体协调行为与文件基本一致,但存在若干不一致及范围/授权缺口,安装前需了解。
评估建议
此技能实现了飞书@提及/关键词路由,整体一致但请谨慎操作。安装前:1)确认你信任其读取 OPENCLAW_WORKSPACE 下的文件,因钩子会从工作区加载 config.json(若不存在则回退至绝对开发者路径),请移除其中任何密钥。2)修复智能体身份:config.json 当前为所有智能体使用相同 openId——需更新以便区分,否则“仅在被@时响应”逻辑可能出错或允许冒充。3)注意 SKILL.md 要求智能体优先采用本规则而非 AGENTS.md,并强制绝对沉默除非被@——确保该覆盖符合预期且不会破坏其他工作流。4)stop/resume 授权已描述但钩子未强制执行;如需访问控制,请自行实现/认证(如验证 sender_id 是否在白名单)。5)先在沙盒工作区测试行为(无外部网络调用,但会读取本地文件)。若需更高保障,请要求作者移除硬编码路径、声明所需环境变量并为 stop/resume 实现显式授权。...
详细分析 ▾
用途与能力
该技能声称是飞书多智能体协作管理器,代码与 SKILL.md 专注于群聊中的@/关键词路由及任务协调——功能一致。但 config.json 中所有智能体使用相同 openId(无法区分),与 SKILL.md 依赖 openId 识别身份相矛盾。技能文档还称支持 stop/resume 及智能体控制,但钩子未实现。
指令范围
SKILL.md 指示智能体始终优先采用本技能的群聊规则(而非 AGENTS.md)并强制执行“绝对”沉默除非被@——属于范围蔓延:要求覆盖其他策略文件。文档还声明授权规则(仅配置 open_id 可 stop/resume)但钩子未提供验证或强制机制。该指令赋予本技能广泛决定智能体何时沉默的权力,可能影响其他技能行为。
安装机制
无安装规范/无外部下载。技能仅为指令加小型钩子文件,读取本地配置;从安装/执行分发角度看风险较低。
凭证需求
技能未声明所需环境变量,但钩子读取 process.env.OPENCLAW_WORKSPACE(硬编码回退至 /Users/wangbotao/.openclaw/workspace)并从该工作区加载 skills/collaboration-manager/config.json。读取工作区配置属预期行为,但硬编码回退暴露开发者路径并会尝试读取本地文件。技能未请求飞书 API 令牌或其他凭证——因此无法自行发消息,但依赖本地配置(可能包含标识符)。
持久化与权限
always: false,默认允许自主调用。技能不请求常驻或修改其他技能。钩子仅记录协调决策,代码中不会自动启用自身或更改全局设置。
安装前注意事项
  1. 确认你信任该技能读取 OPENCLAW_WORKSPACE 下的文件,因为钩子会从工作区加载 config.json(若不存在则回退至绝对开发者路径)。请从配置中移除任何密钥。
  2. 修复智能体身份:config.json 当前为所有智能体使用相同 openId——请更新以区分各智能体,否则“仅在被@时响应”逻辑可能出错或允许冒充。
  3. 注意 SKILL.md 要求智能体优先采用本规则而非 AGENTS.md 并强制绝对沉默除非被@——确保该覆盖符合预期且不会破坏其他工作流。
  4. stop/resume 授权已描述但钩子未强制执行;如需访问控制,请自行实现/认证(如验证 sender_id 是否在白名单)。
  5. 先在沙盒工作区测试行为(无外部网络调用,但会读取本地文件)。若需更高保障,请要求作者移除硬编码路径、声明所需环境变量并为 stop/resume 实现显式授权。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/3/10

Collaboration Manager Skill 1.0.0 – 初始版本 - 引入支持动态@提及处理、任务分配与智能响应规则的多智能体协作管理器。 - 实施严格的“@优先”群聊逻辑;智能体仅在被提及或相关时响应,避免消息泛滥。 - 定义清晰的智能体角色(Juna、Code Master、CEVA、System Engineer、102 Housekeeper)并基于关键词路由消息。 - 支持协作的结构化工作流、并行/串行任务划分、任务跟踪与进度汇报。 - 提供实时暂停、恢复或静音智能体的管理控制。 - 包含用于协作任务与进度更新的详细消息格式及飞书(Lark)卡片模板。 - 提供故障排除指南及群聊集成的设置/配置说明。

无害

安装命令

点击复制
官方npx clawhub@latest install collaboration-manager
镜像加速npx clawhub@latest install collaboration-manager --registry https://cn.longxiaskill.com

技能文档

⚠️ 重要:该 skill 的规则在群聊中优先于 AGENTS.md 的通用群聊规则。

---

🚨 第一条规则:@优先

收到群聊消息时,第一件事是检查是否被@

| 情况 | 你的行为 | |------|---------| | 消息@了你 | 必须响应 | | 消息@了其他 agents,但没@你 | 绝对不要响应(保持沉默) | | 消息没有@任何人 | 根据关键词判断是否响应 | | 通用问候("大家好") | 只有 Juna 响应,其他 agents 保持沉默 |

多 Agent 群聊协作管理器,支持:

  • 智能判断消息相关性
  • 动态 @ 多个 agent 时的协作逻辑
  • 任务分配和跟踪
  • 停止/恢复 agent 响应

⚡ 快速响应规则

你是哪个 Agent?

在群聊中响应之前,先确认你的身份:

| Agent | 关键词特征 | 响应优先级 | |-------|-----------|-----------| | Juna (main) | 问候、闲聊、通用帮助、建议、讨论 | 高 | | Code Master | 代码、开发、bug、调试、API、前端/后端 | 高(技术问题)| | CEVA | 股票、投资、市场、行情、财务分析 | 高(投资问题)| | System Engineer | 系统、架构、部署、微服务、分布式、安全 | 高(架构问题)| | 102 Housekeeper | 任务、日程、提醒、待办、计划 | 高(任务管理)|

何时响应?

🔴 最重要规则:检查是否被@

在决定是否响应之前,首先检查这条消息是否@了你
  • 如果消息中没有@任何人:根据消息内容判断(见下文)
  • 如果消息中@了特定的 agents
- ✅ 如果@列表中有你:必须响应 - ❌ 如果@列表中没有你:绝对不要响应 - 这是硬规则,不是可选项

✅ 你应该响应的情况

  • 消息中 @ 了你
- 直接被点名,必须响应(最高优先级)
  • 消息没有@任何人,但包含你的关键词
- 相关问题,可以响应
  • 通用问候/聊天(仅 Juna)
- "大家好"、"你好"等,只有 Juna 应该响应
  • 你被明确请求
- "请帮忙..."

❌ 你不应该响应的情况

  • 消息 @ 了其他 agent 但没有你
- 硬规则,绝对不要响应
  • 消息内容完全无关
- 不属于你的专业领域
  • 已经有 agent 回答了
- 避免重复回答(除非补充信息)
  • 简单确认消息
- "OK"、"收到"等不需要 AI 响应

响应策略

  • 先判断
- 这条消息与我有关吗?
  • 看其他人
- 已经有 agent 回答了吗?
  • 简洁回复
- 一句话能说完就不要长篇大论
  • 避免刷屏
- 不要和多个 agents 同时回答同样的问题

适用场景

场景 1:普通消息

成员发送普通消息,相关 agent 主动判断并响应。

场景 2:@ 特定 agent

@Juna @System Engineer 帮我设计一个系统架构
只有被 @ 的 agents 响应(Juna 和 System Engineer),其他 agents 保持沉默。

场景 3:@ 多个 agent(动态协作)

@SystemEngineer @CodeMaster @CEVA 协作完成用户管理系统
被 @ 的 agents(System Engineer, Code Master, CEVA):
  • 协同完成任务
  • 关注其他被 @ 的 agents 的发言
  • 分享进度和状态

场景 4:用户控制

停止所有 agent 讨论
只有用户(特定 open_id)可以发送此命令,所有 agent 停止响应。

配置

Agent 身份识别

每个 agent 需要知道自己的 openId,可以从飞书配置中获取:
{
  "Juna": "ou_c917d9b06ff30b98c4f45c79219164d5",
  "CodeMaster": "ou_xxx3",
  "CEVA": "ou_xxx4",
  "SystemEngineer": "ou_xxx5",
  "102Housekeeper": "ou_xxx6"
}
注意:当前配置中所有 agents 使用相同的 openId(ou_c917d9b06ff30b98c4f45c79219164d5),这意味着:
  • 无法通过 openId 区分 agents
  • 需要通过飞书消息的 sender_id 或应用 ID 来区分
  • 或者每个 agent 应该有独立的 openId

群组 chat_id

当前配置的群聊 ID:oc_c1184c07fa8fe0a6eced5e069f8b73b5

飞书成员 open_id 列表

{
  "members": {
    "user_1": "ou_xxx1",
    "user_2": "ou_xxx2"
  },
  "agents": {
    "Juna": "ou_c917d9b06ff30b98c4f45c79219164d5",
    "SystemEngineer": "ou_xxx3",
    "CodeMaster": "ou_xxx4",
    "CEVA": "ou_xxx5",
    "102Housekeeper": "ou_xxx6"
  }
}

群组 chat_id

{
  "mainGroup": "oc_xxx",
  "collaborationGroup": "oc_yyy"
}

智能判断逻辑

相关性判断

Agent 相关性规则:

| 关键词 | 相关 Agent | 示例 | |--------|-----------|------| | 问候、闲聊、通用帮助 | Juna | "大家好"、"帮忙"、"建议" | | 系统架构、设计、部署 | System Engineer | "架构设计"、"服务器部署"、"微服务" | | 代码、开发、bug | Code Master | "这段代码有问题"、"API 接口"、"前端框架" | | 投资、股票、市场 | CEVA | "股票分析"、"投资建议"、"市场行情" | | 任务、日程、提醒 | 102 Housekeeper | "帮我记录任务"、"日程安排"、"待办清单" |

判断流程:

  • 提取消息中的关键词
  • 匹配相关 agents
  • 如果匹配成功,标记为相关
  • 最多响应 3 个相关 agents(避免刷屏)

@mentions 优先

规则:
  • 如果消息 @ 了特定 agents,只有被 @ 的 agents 响应
  • 未被 @ 的 agents 保持沉默
  • 除非消息同时是通用问候("大家好")

示例:

@CodeMaster @CEVA 协作完成用户系统
  • ✅ Code Master 响应
  • ✅ CEVA 响应
  • ❌ Juna 保持沉默
  • ❌ System Engineer 保持沉默
  • ❌ 102 Housekeeper 保持沉默

@ 逻辑

规则:
  • 提取所有被 @ 的 agent 名称
  • 查询配置中的 open_id
  • 验证 agent 是否在当前群组中
  • 返回有效 agent 列表

协作协调:

  • 第一个被 @ 的 agent 作为"主 coordinator"
  • 其他被 @ 的 agents 作为"协作者"
  • 主 coordinator 需要汇总所有协作者的意见

协作流程

开始协作

主 Coordinator:
  • 确认任务理解
  • 分配子任务给协作者
  • 设定协作模式(并行/串行)
  • 跟踪进度

协作者:

  • 执行分配的子任务
  • 定期汇报进度
  • 关注其他协作者的意见
  • 请求反馈或帮助

协作模式

并行协作

适用场景:独立任务(如不同模块开发)
@SystemEngineer @CodeMaster
System Engineer: 负责后端 API 设计
Code Master: 负责前端开发

串行协作

适用场景:依赖性任务(如架构评审后实现)
@SystemEngineer @CodeMaster @CEVA
System Engineer: 设计数据库架构
CEVA: 审计数据库安全
Code Master: 根据设计实现

任务分配

任务结构

{
  "taskId": "task_20260306_001",
  "title": "用户管理系统开发",
  "description": "完整的用户管理系统",
  "coordinator": "SystemEngineer",
  "collaborators": ["CodeMaster", "CEVA", "102Housekeeper"],
  "status": "in_progress",
  "mode": "parallel",
  "subtasks": [
    {
      "id": "subtask_001",
      "title": "数据库设计",
      "assignee": "SystemEngineer",
      "status": "in_progress"
    },
    {
      "id": "subtask_002",
      "title": "后端 API 开发",
      "assignee": "CodeMaster",
      "status": "pending"
    },
    {
      "id": "subtask_003",
      "title": "安全审计",
      "assignee": "CEVA",
      "status": "pending"
    },
    {
      "id": "subtask_004",
      "title": "任务管理",
      "assignee": "102Housekeeper",
      "status": "pending"
    }
  ]
}

停止/恢复机制

停止命令

只有配置的成员(用户的 open_id)可以发送:
停止当前协作
所有 agent 停止响应当前任务。

恢复命令

恢复协作
所有 agent 恢复响应能力。

临时静音

Juna 静音 5 分钟
只有 Juna 静音,其他 agents 继续协作。

消息格式

协作开始

🤝 协作开始
任务:{title}
主协调者:{coordinator}
协作者:{collaborators}
模式:{mode}

开始分配子任务...

进度更新

📊 进度更新
任务:{taskId}
汇报人:{reporter}
状态:{status}

{details}

协作完成

协作完成
任务:{title}
完成时间:{completionTime}
总耗时:{duration}

总结: {summary}

协作停止

⏸️ 协作已停止
停止人:{requester}
停止时间:{stopTime}

协作已暂停,使用"恢复协作"继续。

注意事项

防止刷屏

  • 每个协作最多响应 3 个 agents
  • 使用进度汇总而不是频繁更新
  • 避免短时间内重复发言

理解歧义

  • 协作开始前确认任务理解
  • 定期对齐目标和期望
  • 遇到歧义及时沟通

状态一致性

  • 使用共享的任务状态(存储在 workspace)
  • 定期同步进度
  • 避免状态不一致

飞书消息卡片

协作开始卡片

{
  "msg_type": "interactive",
  "card": {
    "header": {
      "title": "🤝 协作开始",
      "template": "blue"
    },
    "elements": [
      {
        "tag": "div",
        "text": {
          "tag": "lark_md",
          "content": "任务:{title}\n\n主协调者:{coordinator}\n\n协作者:{collaborators}"
        }
      },
      {
        "tag": "div",
        "text": {
          "tag": "lark_md",
          "content": "模式:{mode}\n\n---\n{subtaskList}"
        }
      }
    ]
  }
}

进度更新卡片

{
  "msg_type": "interactive",
  "card": {
    "header": {
      "title": "📊 进度更新",
      "template": "green"
    },
    "elements": [
      {
        "tag": "div",
        "text": {
          "tag": "lark_md",
          "content": "任务:{title}\n\n进度:{progress}%"
        }
      }
    ]
  }
}

使用示例

示例 1:通用问候

  • 只有 Juna 响应

用户消息:

大家好
响应:
  • Juna: "你好!有什么可以帮你的吗?"
  • 其他 agents:保持沉默 ❌

示例 2:技术问题

  • Code Master 响应

用户消息:

这段代码有 bug,帮我看看
响应:
  • Code Master: "把代码发给我看看,我来帮你分析。"
  • 其他 agents:保持沉默 ❌

示例 3:投资问题

  • CEVA 响应

用户消息:

最近股票市场怎么样
响应:
  • CEVA: "我来帮你分析一下最近的市场走势..."
  • 其他 agents:保持沉默 ❌

示例 4:@ 多个 agents

  • 协作响应

用户消息:

@CodeMaster @SystemEngineer 帮我设计一个后端系统
响应:
  • System Engineer: "好的,我来设计系统架构。@CodeMaster 你负责具体的代码实现?"
  • Code Master: "没问题,架构设计好了我就开始写代码。"
  • 其他 agents:保持沉默 ❌

示例 5:任务管理

  • 102 Housekeeper 响应

用户消息:

帮我记录一下:明天下午 3 点开会
响应:
  • 102 Housekeeper: "已记录:明天下午 3 点开会"
  • 其他 agents:保持沉默 ❌

普通消息

  • 自动响应

用户消息:

帮我优化一下系统性能
自动响应(相关 agents 判断):
  • System Engineer: "我来分析性能瓶颈..."
  • Code Master: "代码优化方面我可以协助..."

@ 单个 agent

用户消息:

@Juna 帮我设计数据库架构
响应:
  • Juna 独自响应,其他 agents 保持沉默

@ 多个 agent

  • 协作模式

用户消息:

@SystemEngineer @CodeMaster @CEVA 协作完成用户管理系统
协作开始(主 coordinator = System Engineer):
  • System Engineer: "好的,我来协调这次任务。@CodeMaster 负责后端 API 开发,@CEVA 负责安全审计,@102Housekeeper 负责任务管理。"
  • Code Master: "收到,后端 API 开发开始。"
  • CEVA: "安全审计准备就绪。"
  • 102 Housekeeper: "任务管理功能已启动。"

后续协作:

  • Code Master: "后端 API 设计文档已完成..."
  • CEVA: "安全方面需要考虑数据加密..."
  • 102 Housekeeper: "我已创建任务清单..."

故障排除

❌ 问题 1:发了消息没有任何 agent 响应

可能原因:
  • Gateway 没有重启,agents 没有加载 skill
  • groupPolicy 配置问题,agents 不在群组白名单
  • 飞书机器人没有加入群聊
  • 消息事件订阅没有启用

解决方法:

  • 重启 Gatewayopenclaw gateway restart
  • 检查 groupAllowFrom:确认群聊 ID 在允许列表中
  • 检查群成员:确保所有飞书机器人都加入了群聊
  • 查看日志openclaw logs --follow | grep feishu

❌ 问题 2:多个 agents 同时响应同一问题

可能原因:
  • 关键词匹配冲突
  • agents 没有检查是否已有响应

解决方法:

  • 优化关键词,避免重叠
  • 在响应前检查历史消息
  • 使用明确的 @ 指定特定的 agent

❌ 问题 3:@ 某个 agent 但它不响应

可能原因:
  • agent 的 openId 配置错误
  • 该 agent 的技能或配置有问题

解决方法:

  • 检查 config.json 中的 openId
  • 查看该 agent 的日志:openclaw logs --follow | grep

更新日志

  • 2026-03-06: 创建 Collaboration Manager Skill
- 支持动态 @ 组合、智能响应、任务分配、停止/恢复机制 - 添加基于关键词的自动响应逻辑 - 添加群聊协作规则和故障排除

--- 适用场景:多 agent 协作群聊、任务分配、智能路由

📝 配置文件说明

config.json 结构

{
  "chatId": "oc_xxx", // 群聊 ID
  "members": ["ou_xxx"], // 成员 openId 列表
  "agents": [ // Agents 配置
    {
      "id": "main", // Agent ID(与 openclaw.json 中一致)
      "name": "Juna", // 显示名称
      "openId": "ou_xxx", // 飞书 openId(需要配置)
      "keywords": [...], // 关键词列表
      "alwaysRespond": false // 是否总是响应
    }
  ]
}

⚠️ 重要:每个 agent 需要独立的 openId

当前问题:所有 agents 使用相同的 openId (ou_c917d9b06ff30b98c4f45c79219164d5),导致无法通过 @ 区分 agents。 解决方案:为每个 agent 配置独立的 openId,或使用飞书消息的应用 ID 来区分。

飞书机器人配置

每个 agent 都需要:
  • 独立的飞书应用(App ID + App Secret)
  • 应用已安装到飞书账号
  • 机器人已加入到群聊中
  • 事件订阅已启用(im.message.receive_v1
数据来源ClawHub ↗ · 中文优化:龙虾技能库