--- name: a2a-collaboration-guide description: | A2A 群内协作规则速查手册。**仅在飞书群聊中使用,私聊时不适用。** **当以下情况时使用此 Skill**: (1) 不确定是否应该 @ 其他机器人 (2) 不确定如何正确使用 🔕仅通知 标记 (3) 收到其他机器人 @ 你的消息后不确定如何回应 (4) 用户询问"你们怎么协作的?" (5) 遇到协作边界情况需要参考 alwaysActive: true --- # A2A 群内协作规则速查 ## 核心原则 1. **克制 @**:默认不主动 @ 其他机器人,除非用户明确要求或触发协作关键字 2. **每次最多 @ 1 个**:一条回复中最多 @ 1 个机器人 3. **区分"提到"和"请求"**:提到用名字,请求才用 `` 标签 4. **任务必须闭环**:收到任务型 @ 后,完成任务必须 @ 回发起者汇报结果 ## 什么时候该 @ | 场景 | 是否 @ | 说明 | |------|--------|------| | 用户说"让后端看看" | ✅ @ | 用户明确要求 | | 用户说"群内协作完成这个需求" | ✅ @ | 触发协作关键字 | | 收到任务请求,完成后需要汇报 | ✅ @ 回发起者 | **必须 @ 回**,让发起者获得上下文 | | 回复中顺便提到某个 bot 的能力 | ❌ 不 @ | 只是提到,用名字即可 | | 只是通知对方一个信息 | 用 🔕仅通知 | 加标记避免回传 | ## 任务协作闭环(最重要的规则) 当用户 @ 你并要求你完成一个需求时,完整的协作链路是: ``` 用户 @ 主Agent → 主Agent 拆任务 @ 子Agent → 子Agent 完成后 @ 回主Agent → 主Agent 汇总回复用户 ``` **关键规则:** - 你作为子 Agent 被 @ 分配了任务 → 完成后**必须 @ 回发起者**,汇报结果 - 你作为主 Agent 收到子 Agent 的结果回传 → **不要再 @ 回子 Agent**,整理结果回复用户 - 每一步的 @ 回传都是必须的,否则主 Agent 会丢失上下文,不知道任务进展 **判断是否需要 @ 回:** - 对方给你分配了任务、请你执行操作、请你回答问题 → ✅ 必须 @ 回 - 对方只是通知你信息(带 🔕仅通知)→ ❌ 不需要 @ 回 - 对方是在回传结果给你 → ❌ 不需要 @ 回(你是主 Agent,汇总即可) ## `` 标签格式 ``` bot名字 ``` 直接写在回复正文中即可,飞书会原生投递给目标机器人。 ## 🔕仅通知 标记 当你 @ 其他机器人只是单向通知、共享结果,不需要对方回复或 @ 你时: ``` 🔕仅通知 bot名字 排期已确认,按原计划推进即可 ``` 对方收到后不需要 @ 回你。 ## 收到 @ 消息后的行为 当其他机器人 @ 你时,消息开头会自动注入发送者信息: ``` [来自机器人「mac-后端」— 如需 @ 回对方请使用:mac-后端] ``` 直接复制其中的 `` 标签即可 @ 回对方,不需要自己查找 ID。 ### 收到「任务请求」 1. 处理任务 2. 完成后**必须** @ 回发起者(使用消息开头提供的 `` 标签),汇报结果 ### 收到「结果回传」(你是主 Agent) 1. **不要** @ 回对方 2. 整理结果,直接回复用户 3. 如果还有其他子任务待分配,继续 @ 下一个 Agent ### 收到「仅通知」 1. **不要** @ 回对方 2. 阅读信息,自行处理即可 ## 常见错误 | 错误 | 正确做法 | |------|---------| | 收到任务后完成了但没 @ 回发起者 | **必须 @ 回**,否则发起者不知道你完成了 | | 收到结果回传后又 @ 回对方 | 直接整理结果回复用户,不要 @ | | 在回复中用 `` 标签提到 bot 但不需要它做事 | 用文字名字提到即可,不用标签 | | 一条消息 @ 了多个 bot | 每次最多 @ 1 个,需要多个就分多轮 | | 通知类消息没加 🔕仅通知 | 不需要回复的 @ 一定要加标记 | | 启动了服务但没有持久化,回复后服务就停了 | 用 `pm2` 或 `nohup` 启动,确保服务持续运行 | ## 协作关键字 以下关键字出现时,可以主动发起协作: - "群内协作"、"分配任务"、"协作完成" - "让 xxx 看看"、"问问 xxx" - "大家一起"、"各自负责"