Swarm 多智能体工作流
本教程演示如何使用 Shannon 的 SwarmWorkflow 部署由 LLM 驱动的 Lead Agent 协调的持久化协作智能体。智能体并行工作,支持智能体间消息传递、共享工作区和动态任务重新分配。你将学到
- 如何通过 API 和 Python SDK 提交 Swarm 任务
- Lead Agent 如何通过事件协调智能体
- 如何通过 SSE 流式传输监控智能体进度
- 如何配置 Swarm 参数和预算控制
- 实际用例与最佳实践
前置条件
- 已运行的 Shannon 堆栈(Docker Compose)
- Gateway 可通过
http://localhost:8080访问 config/features.yaml中已启用 Swarm(默认启用)- 鉴权默认:
- Docker Compose:默认关闭鉴权(
GATEWAY_SKIP_AUTH=1)。 - 本地构建:默认开启鉴权。可设置
GATEWAY_SKIP_AUTH=1关闭;或在请求中加入 API key 头-H "X-API-Key: $API_KEY"。
- Docker Compose:默认关闭鉴权(
快速开始
一步提交 + 流式传输
对于前端应用,使用合并的提交+流式传输端点:Python SDK
基本用法
带流式传输
自定义上下文
智能体协作方式
Lead Agent 协调
Lead Agent 作为事件驱动的协调者。它不执行任务本身,而是基于事件进行规划、分配和重新分配工作:- 当智能体变为 idle 时,Lead 检查是否有依赖已满足的待处理任务并分配下一个
- 当智能体 完成 时,Lead 评估是否重新分配它、关闭它或修订计划
- 在定期 检查点(每 120 秒)时,Lead 审查整体进度并可调整计划
- 当没有空闲智能体且没有可操作的待处理任务时,Lead 跳过不必要的 LLM 调用
团队名册
每个智能体都会收到团队名册,显示所有智能体及其任务分配。这使智能体知道就特定信息联系谁:发布发现
智能体通过共享工作区分享发现。这些内容会出现在每个智能体的提示上下文中:发送直接消息
智能体可以向特定队友发送直接消息:请求帮助
当智能体需要额外支持时,可以向 Lead Agent 请求帮助:配置
features.yaml
配置参数
实际用例
协作编码
智能体协作审查、实现和测试代码,支持沙箱化执行。
金融分析
多空分析师、情绪智能体和投资组合经理协作综合投资洞察。
数据处理
并行数据流水线,支持沙箱化 Python 执行、JSON 查询和统计分析。
竞争情报
同时监控竞争对手网站、定价和社交媒体,发现自动交叉共享。
示例:协作代码审查
developer 角色的智能体,并创建依赖于所有审查完成的最终综合任务。
示例:多站点价格监控
理解响应元数据
Swarm 工作流返回包含模型执行明细和 Token 用量的元数据:提示与最佳实践
- 入门
- 性能
- 预算控制
- 不适用场景
- 设置
context.force_swarm: true路由到 SwarmWorkflow - 从默认配置开始,根据结果进行调整
- 通过 SSE 事件监控 Lead Agent 决策和智能体行为
- 使用会话(
session_id)进行多轮 Swarm 对话 - 关注
LEAD_DECISION事件以理解协调逻辑
故障排除
回退行为
如果 Swarm 工作流失败(规划错误、所有智能体失败等),Shannon 会自动回退到标准 DAG/Supervisor 工作流路由。force_swarm 标志会从上下文中移除以防止递归失败。
下一步
Swarm 概念
深入了解 Swarm 架构
深度研究
带引用的多阶段研究
API 参考
完整 API 文档