多技能编排模式
在复杂工作流中协调多个技能的详细指南。
1. 顺序流水线
一个技能的输出为下一个输入提供数据。
何时使用
- 混合"生产者"技能(data-extraction、government-data、analytics)和"消费者"技能(messaging、social-media、content-management)
- 任务有不同阶段:收集 -> 处理 -> 交付
流程
user_query -> 技能 A(生产者)-> 数据 -> 技能 B(消费者)-> 结果具体示例
请求:“收集圣保罗州拍卖师的价格并通过 WhatsApp 发送”
1. junta-leiloeiros:为圣保罗州执行抓取,导出数据 2. whatsapp-cloud-api:将数据格式化为消息并发送上下文规则
- 每个步骤的输出必须作为上下文传递给下一步
- 常见传递格式:JSON、Markdown 表格、摘要文本
- 如果某一步失败,中断流水线并向用户报告
2. 并行执行
技能独立地在不同方面工作。
何时使用
- 所有技能具有相同角色(全部为生产者或全部为消费者)
- 任务的各个方面彼此独立
- 技能之间没有数据依赖关系
流程
┌─> 技能 A ─> 输出 A ─┐ user_query ──>├─> 技能 B ─> 输出 B ─├──> 聚合结果 └─> 技能 C ─> 输出 C ─┘具体示例
请求:“在 Instagram 上发布促销信息并通过 WhatsApp 发送”
1. (并行) instagram:创建并发布促销帖子 1. (并行) whatsapp-cloud-api:发送促销消息 -> 聚合:报告两个发布的状态上下文规则
- 每个技能接收完整的原始查询
- 输出聚合为统一响应
- 如果一个技能失败,其他技能继续正常运行
- 分别报告每个技能的成功/失败
3. 主要 + 支持
一个主要技能主导;其他提供支持数据。
何时使用
- 一个技能的相关性分数远高于其他(>= 2 倍于下一个)
- 主要任务清晰,但可以从额外数据中受益
- 支持技能是可选的 / “nice to have”
流程
user_query -> 技能 A(主要)──────────────> 结果 ↑ 技能 B(支持)─> 额外数据具体示例
请求:“配置 WhatsApp 聊天机器人以响应拍卖师数据”
1. (主要) whatsapp-cloud-api:配置 webhook 和聊天机器人逻辑 2. (支持) junta-leiloeiros:提供聊天机器人查询的端点/数据上下文规则
- 主要技能引导工作流
- 支持技能按需查询
- 如果支持技能失败,主要技能应继续(优雅降级)
错误处理
一般规则
- 单个技能失败:向用户报告哪个技能失败及原因
- 流水线失败:中断并显示到达了哪一步
- 并行部分失败:继续其他技能,报告失败
- 技能不完整:在尝试使用前,警告技能状态不完整
回退
- 如果一个技能失败,检查是否有其他技能具有类似能力
- 如果没有替代方案,没有该技能继续运行并通知用户
上下文序列化
技能之间传递数据的标准格式:
{"source_skill":"web-scraper","target_skill":"whatsapp-cloud-api","data_type":"table","data":[{"name":"Joao Silva","uf":"SP","registration":"12345"},{"name":"Maria Santos","uf":"RJ","registration":"67890"}],"metadata":{"total_items":2,"collected_at":"2026-02-25T12:00:00","query":"SP and RJ auctioneers"}}