Agent Squad 是一个灵活、轻量级的开源多 AI 智能体编排框架,用于管理多个 AI 智能体并处理复杂对话。该项目原名为 multi-agent-orchestrator,此前托管于 awslabs/agent-squad,现已迁移至 2fastlabs/agent-squad。
主要用途 Agent Squad 将每个用户查询路由到最合适的专用智能体,并在多个智能体之间维护对话上下文。它提供预置智能体、分类器和存储以实现快速部署,同时保留小型、明确定义的扩展接缝,便于接入自定义组件。
主要能力
- 智能意图分类:根据上下文和内容路由查询。
- 流式与非流式智能体响应。
- 上下文管理:跨智能体和会话保持连贯对话。
- 可扩展设计:支持自定义智能体、分类器、存储和检索器。
- 预置智能体:包括 Bedrock、Anthropic、OpenAI、Lex、Lambda 等。
- 三种运行时:Python 与 TypeScript 功能对等,可运行在 AWS Lambda、容器或本地;新增 Swift 运行时面向 Apple 平台,支持完全设备端编排,包括分类器路由、原生及 MCP 工具、实时语音、追踪和本地优先聊天存储。
工作流程
- 用户输入由分类器(Classifier)分析。
- 分类器根据智能体描述和对话历史选择最适合本轮对话的智能体。
- 被选中的智能体处理输入(按需调用工具)。
- 编排器保存交互并返回响应。
JevClassifier JevClassifier 提供 TypeScript 和 Python 中的类型化决策路由。它不使用 LLM,而是将智能体作为类型化选择题发送给 Jev(TypeSafe AI 的 System One 模型),返回获胜智能体及校准置信度,无需解析自由文本或处理工具调用管道。特点包括:
- 两种运行时零额外依赖:TypeScript 使用内置 fetch,Python 仅用标准库,均配有完整模拟测试套件。
- 快速且低成本:亚秒级决策,仅按输入 token 计费(输出 token 免费),相比每次路由决策调用完整 LLM 更经济。
- 上下文感知追问:即使对话中途切换主题,“yes, go ahead”也能路由回正在等待回答的智能体。
- 内置未知选项:超出范围的请求返回无智能体,而非强制匹配,校准置信度可用于阈值判断。
- 一行接入:new AgentSquad({ classifier: new JevClassifier() }) 或 AgentSquad(classifier=JevClassifier()),并设置 TYPESAFE_API_KEY。
SupervisorAgent SupervisorAgent 用于团队协调:一个主导智能体使用“智能体即工具”架构并行协调一组专用智能体,维护共享上下文并交付一个连贯响应。支持并行子智能体查询、动态委派子任务给合适的团队成员,适用于所有智能体类型,并可注册到分类器中构建分层团队。
GroundedAgent GroundedAgent 在三种运行时中均可用,是框架的抗幻觉模式,使用两个 LLM 而非一个:
- 收集器(gatherer)调用工具并查看原始结果,但从不与用户对话。
- 隔离的呈现器(presenter)仅根据整理后的工具输出撰写回复,不使用工具、工具记录或聊天历史。它无法编造未实际获取的价格、评分或库存状态。
- 无工具轮次跳过呈现器,一次通过作答。 适用于答案必须与数据完全一致的场景,如价格、赔率、余额、可用性等。
Swift 运行时 Swift 运行时以协议驱动的 Swift 6 包形式为 Apple 平台重建了上述编排模型,整个循环在设备端运行:
- 可替换智能体:Agent、GroundedAgent 或自定义 AgentProtocol 实现,由可选的 LLMClassifier 路由。
- 任意来源工具:原生 Swift 函数、声明式 HTTP 工具或任何 MCP 服务器,统一在一个接缝后组合。
- 实时语音:自然语音对话,支持打断说话,共享同一套接地收集器→呈现器核心。
- 一等追踪:开发期使用 OSLog,生产环境可导出 OTLP(Langfuse、LangSmith、Datadog 等)。
- 本地优先聊天历史:设备端 JSON 文件或 SwiftData 持久化,可像其他组件一样替换。
示例与演示
- Streamlit Global Demo:AI 电影制作工作室、AI 旅行规划器等集成在一个应用中。
- chat-demo-app:多专用智能体的 Web 聊天界面。
- ecommerce-support-simulator:带人工介入的 AI 客户支持。
- chat-chainlit-app:使用 Chainlit 构建的聊天应用。
- fast-api-streaming:FastAPI 流式示例。
- text-2-structured-output:自然语言到结构化数据。
- bedrock-inline-agents、bedrock-prompt-routing:Bedrock 示例。
- jev-demo:JevClassifier 多轮路由演示,以及 Jev 与 Bedrock 分类器的延迟和成本对比。
安装与使用 Swift 可通过 Package.swift 添加包(或在 Xcode 中 Add Package Dependencies),完整说明见 Swift README。其他运行时的安装和使用方式暂未提供。
辅助开发 每个运行时提供一份 skill 文件,作为与助手无关的指南,为 AI 助手提供心智模型、真实 API 签名、任务配方和注意事项。这些文件不会自动安装,需手动指向。例如:在编写任何 agent-squad Python 代码前阅读 python/SKILL.md。适用于任何助手(Claude、Cursor、Copilot 等)。
社区与贡献 欢迎在 discussions 中提问、分享想法或展示成果(Show & Tell / General / Ideas 板块)。贡献采用 issue-first 政策:每个 pull request 必须关联一个 issue(在 PR 正文中写 Fixes #123 或使用 GitHub 的 Link an issue),并有必需的 CI 检查强制执行。请先开 issue 讨论提案,再参阅 Contributing Guide 了解各运行时的构建和测试说明。
许可证 项目采用 Apache 2.0 许可,详见 LICENSE 文件。使用了 JetBrainsMono NF 字体,遵循 SIL Open Font License 1.1。