跳转到主要内容

概述

Swarm 工作流通过在任务上下文中设置 force_swarm: true 来触发。它使用与所有其他工作流相同的 POST /api/v1/tasks 端点——无需单独的端点。 Swarm 模式将查询分解为子任务,生成持久化智能体并行工作,支持智能体间消息传递,并将结果综合为统一响应。

提交 Swarm 任务

端点

请求体

Swarm 专用上下文参数

所有标准任务参数(session_idmodemodel_tiermodel_overrideprovider_override)均适用于 Swarm 任务。
force_swarm 标志必须设置在 context 对象内,而非顶级参数。同时服务端配置中必须启用 Swarm(features.yamlworkflows.swarm.enabled: true)。

示例:基本 Swarm 任务

响应

响应头:
  • X-Workflow-ID:Temporal 工作流标识符(与 task_id 相同)
  • X-Session-ID:会话标识符

提交 + 流式传输

使用合并端点一步提交并获取流式传输 URL:
响应(201 Created):

监控 Swarm 进度

SSE 事件流

Swarm 专用事件

SSE 输出示例

任务状态响应

Swarm 元数据

当 Swarm 工作流完成时,状态响应包含 Swarm 专用元数据:

元数据字段

服务端配置

Swarm 参数在 config/features.yamlworkflows.swarm 下配置:

错误处理和回退

部分失败

如果部分智能体失败但至少一个成功,Swarm 工作流仍会使用成功智能体的输出生成结果。 如果所有智能体都失败,响应将包含错误信息:

自动回退

如果整个 Swarm 工作流失败(分解错误、所有智能体失败等),Shannon 会自动回退到标准工作流路由(DAG 或 Supervisor)。force_swarm 标志会从上下文中移除以防止递归失败。

相关端点

提交任务

POST /api/v1/tasks(完整参考)

获取状态

GET /api/v1/tasks/

流式事件

SSE 事件流

取消任务

POST /api/v1/tasks//cancel