Install
openclaw skills install collaboration-manager多 Agent 协作管理器,支持动态 @ 组合、任务分配、智能响应
openclaw skills install collaboration-manager⚠️ 重要:这个 skill 的规则在群聊中优先于 AGENTS.md 的通用群聊规则。
当收到群聊消息时,第一件事检查是否被@:
| 情况 | 你的行为 |
|---|---|
| 消息@了你 | 必须响应 |
| 消息@了其他agents,但没@你 | 绝对不要响应(保持沉默) |
| 消息没有@任何人 | 根据关键词判断是否响应 |
| 通用问候("大家好") | 只有Juna响应,其他agents保持沉默 |
多 Agent 群聊协作管理器,支持:
在群聊中响应之前,先确认你的身份:
| Agent | 关键词特征 | 响应优先级 |
|---|---|---|
| Juna (main) | 问候、闲聊、通用帮助、建议、讨论 | 高 |
| Code Master | 代码、开发、bug、调试、API、前端/后端 | 高(技术问题) |
| CEVA | 股票、投资、市场、行情、财务分析 | 高(投资问题) |
| System Engineer | 系统、架构、部署、微服务、分布式、安全 | 高(架构问题) |
| 102 Housekeeper | 任务、日程、提醒、待办、计划 | 高(任务管理) |
在决定是否响应之前,首先检查这条消息是否@了你:
成员发送普通消息,相关 agent 主动判断并响应。
@Juna @System Engineer 帮我设计一个系统架构
只有被 @ 的 agents 响应(Juna 和 System Engineer),其他 agents 保持沉默。
@SystemEngineer @CodeMaster @CEVA 协作完成用户管理系统
被 @ 的 agents(System Engineer, Code Master, CEVA):
停止所有 agent 讨论
只有用户(特定 open_id)可以发送此命令,所有 agent 停止响应。
每个 agent 需要知道自己的 openId,可以从飞书配置中获取:
{
"Juna": "ou_c917d9b06ff30b98c4f45c79219164d5",
"CodeMaster": "ou_xxx3",
"CEVA": "ou_xxx4",
"SystemEngineer": "ou_xxx5",
"102Housekeeper": "ou_xxx6"
}
注意:当前配置中所有 agents 使用相同的 openId(ou_c917d9b06ff30b98c4f45c79219164d5),这意味着:
sender_id 或应用 ID 来区分当前配置的群聊 ID:oc_c1184c07fa8fe0a6eced5e069f8b73b5
{
"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"
}
}
{
"mainGroup": "oc_xxx",
"collaborationGroup": "oc_yyy"
}
Agent 相关性规则:
| 关键词 | 相关 Agent | 示例 |
|---|---|---|
| 问候、闲聊、通用帮助 | Juna | "大家好"、"帮忙"、"建议" |
| 系统架构、设计、部署 | System Engineer | "架构设计"、"服务器部署"、"微服务" |
| 代码、开发、bug | Code Master | "这段代码有问题"、"API 接口"、"前端框架" |
| 投资、股票、市场 | CEVA | "股票分析"、"投资建议"、"市场行情" |
| 任务、日程、提醒 | 102 Housekeeper | "帮我记录任务"、"日程安排"、"待办清单" |
判断流程:
规则:
示例:
@CodeMaster @CEVA 协作完成用户系统
规则:
协作协调:
主 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}
---
协作已暂停,使用"恢复协作"继续。
{
"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}%"
}
}
]
}
}
用户消息:
大家好
响应:
用户消息:
这段代码有 bug,帮我看看
响应:
用户消息:
最近股票市场怎么样
响应:
用户消息:
@CodeMaster @SystemEngineer 帮我设计一个后端系统
响应:
用户消息:
帮我记录一下:明天下午 3 点开会
响应:
用户消息:
帮我优化一下系统性能
自动响应(相关 agents 判断):
用户消息:
@Juna 帮我设计数据库架构
响应:
用户消息:
@SystemEngineer @CodeMaster @CEVA 协作完成用户管理系统
协作开始(主 coordinator = System Engineer):
后续协作:
可能原因:
解决方法:
openclaw gateway restartopenclaw logs --follow | grep feishu可能原因:
解决方法:
可能原因:
解决方法:
openclaw logs --follow | grep <agent-id>适用场景:多 agent 协作群聊、任务分配、智能路由
{
"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 // 是否总是响应
}
]
}
当前问题:所有 agents 使用相同的 openId (ou_c917d9b06ff30b98c4f45c79219164d5),导致无法通过 @ 区分 agents。
解决方案:为每个 agent 配置独立的 openId,或使用飞书消息的应用 ID 来区分。
每个 agent 都需要:
im.message.receive_v1)