--- name: a2a-task-decompose description: | A2A 任务分解与分配指南。**仅在飞书群聊中使用,私聊时不适用。** **当以下情况时使用此 Skill**: (1) 用户提出复杂需求,需要多个 bot 协作完成 (2) 需要将大任务拆解成子任务并分配给不同 bot (3) 用户说"群内协作"、"分配任务"等关键字 (4) 需要规划多 bot 协作的执行顺序 alwaysActive: true --- # A2A 任务分解与分配 ## 核心原则:任务闭环 **所有通过 @ 分配出去的任务,子 Agent 完成后必须 @ 回你汇报结果。** 这是协作能运转的基础——你需要知道每个子任务的进展和结果,才能汇总回复用户。 ## 分解流程 1. **理解需求** — 明确用户的最终目标和交付物 2. **识别子任务** — 按职能拆分,每个子任务对应一个 bot 的能力 3. **确定依赖** — 哪些可以并行,哪些必须串行 4. **逐个分配** — 每次回复只 @ 1 个 bot,串行发起 5. **等待回传** — 每个子 Agent 完成后会 @ 回你,收到后再进行下一步 6. **汇总交付** — 所有子任务完成后,整理结果回复用户 ## 依赖关系模式 ### 串行链(A → B → C) 适用于:后一步依赖前一步的输出 ``` 第 1 轮:@ 产品 → "请整理需求文档" 等待产品 @ 回你,带上需求文档 第 2 轮:@ 后端 → "根据以下需求设计接口:{产品的输出}" 等待后端 @ 回你,带上接口设计 第 3 轮:@ 前端 → "根据以下接口对接前端:{后端的输出}" 等待前端 @ 回你,带上实现结果 第 4 轮:汇总所有结果,回复用户 ``` ### 并行扇出(A → B, A → C) 适用于:多个子任务互不依赖 ``` 第 1 轮:@ 后端 → "请设计用户模块的数据库方案" 等待后端 @ 回你 第 2 轮:@ 前端 → "请设计用户模块的页面原型" 等待前端 @ 回你 第 3 轮:汇总两方结果,回复用户 ``` 注意:因为每次只能 @ 1 个 bot,"并行"实际上是依次发起,但各子任务之间不互相依赖。 ## 任务分配消息模板 ``` bot名字 **任务**:{一句话描述任务} **背景**:{必要的上下文信息} **预期输出**:{明确的交付物格式} **注意事项**:{约束条件或特殊要求} 完成后请 @ 回我汇报结果。 ``` ### 示例 ``` mac-后端 **任务**:设计用户注册接口 **背景**:我们在做一个新的用户系统,需要支持手机号和邮箱两种注册方式 **预期输出**:接口文档,包含 URL、请求参数、响应格式、错误码 **注意事项**:需要考虑防刷和频率限制 完成后请 @ 回我汇报结果。 ``` ## 选择合适的 bot 根据可用机器人列表中的描述匹配: | 任务类型 | 适合分配给 | |---------|-----------| | 需求分析、PRD 编写 | 产品类 bot | | 接口设计、数据库方案 | 后端类 bot | | 页面实现、交互设计 | 前端类 bot | | 测试用例、质量检查 | 测试类 bot | | 部署、CI/CD、监控 | 运维类 bot | ## 注意事项 - 分配任务前先确认该 bot 在可用列表中 - 任务描述要具体,避免模糊指令如"帮我看看" - 如果子任务的输出是下一个 bot 的输入,在分配时附上前一步的结果 - 预估每个子任务的复杂度,复杂任务给充分的上下文 - **分配消息末尾加上"完成后请 @ 回我汇报结果"**,确保子 Agent 知道要回传 - **持续运行的服务**:如果子任务产出是需要持续运行的服务(API server、dev server 等),必须在分配时明确要求对方用 `pm2` 或 `nohup` 启动,确保服务在回复后仍然存活。回传结果时应附上服务地址和停止命令