Agent Squad 多智能体编排框架
将用户请求路由给合适的专用智能体,并持续维护跨轮对话上下文。
- Star 数
- ★ 7.8k
- 最近更新
- 29 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 31/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 为客服团队构建电商支持入口:按问题把订单、商品或人工核验任务路由给不同专用智能体。
- 不适合
- 只想开箱即用、不愿自己接入模型供应商的团队
- 需要单一部署目标覆盖所有运行环境的团队
这个 Agent 能做什么,适合哪些场景?
Agent Squad 是一个用于多智能体编排的开源框架,提供 Python、TypeScript 和 Swift 三套运行时。其核心流程由 Classifier 根据用户输入、智能体描述和对话历史选择 Agent,再由 Orchestrator 保存交互并返回结果。框架提供 Bedrock、Anthropic、OpenAI、Lex 和 Lambda 等预构建智能体,也允许替换自定义智能体、分类器、存储和检索器。Python 与 TypeScript 可运行于 AWS Lambda、容器或本地环境;Swift 运行时面向 iOS 16+ 与 macOS 14+,支持设备端路由、MCP 工具、实时语音、追踪及本地聊天存储。它适合需要把多个专业能力整合进单一对话入口的开发团队,而不是提供现成业务机器人的托管服务。
应用通过 AgentSquad(Python/TypeScript)或 Swift 的 Orchestrator 接收用户文本和 userId、sessionId。Classifier 参考已注册 Agent 的 description 及会话历史进行路由,选中的 Agent 处理请求,并可在需要时调用工具;Orchestrator 随后保存本轮交互并输出流式或非流式响应。TypeScript 可调用 orchestrator.addAgent(...) 和 routeRequest(...);Python 使用 add_agent(...) 与 route_request(...),并可处理 AgentStreamResponse。Swift 可通过 Orchestrator.route(.text(...), userId:..., sessionId:...) 迭代事件;该运行时的工具可来自原生 Swift 函数、声明式 HTTP 工具或 MCP server。SupervisorAgent 可并行协调子智能体并合成答复,GroundedAgent 则让 gatherer 获取工具结果,再由隔离的 presenter 仅依据整理后的结果作答。
- 为客服团队构建电商支持入口:按问题把订单、商品或人工核验任务路由给不同专用智能体。
- 为旅行产品团队构建多领域对话助手:在旅行、天气、餐厅和计算等智能体之间保留追问上下文。
- 为 AWS 开发团队在 Lambda 或容器中部署带 Bedrock、Lex 或 Lambda 智能体的对话编排层。
- 为需要价格、赔率、余额或库存准确性的应用采用 GroundedAgent,将最终回答限制在已获取的工具数据内。
- 为 iPhone、iPad 或 Mac 应用开发离线优先的智能体体验,结合设备端存储、MCP 工具和实时语音。
如何安装或部署这个 Agent?
选择一个运行时安装。TypeScript:npm install agent-squad。Python:pip install "agent-squad[aws]";README 还列出 [anthropic]、[openai] 和 [all] 可选项,且要求 Python 3.11+。Swift:在 Package.swift 的 dependencies 中加入 .package(url: "https://github.com/2FastLabs/agent-squad", branch: "main"),或通过 Xcode 的 Add Package Dependencies 添加。README 的 Swift 示例要求为 ChatCompletionsClient 提供 apiKey;Bedrock 示例未说明 AWS 凭证的具体配置步骤。
如何使用这个 Agent?
TypeScript 的首个调用可写为:import { AgentSquad, BedrockLLMAgent } from "agent-squad"; const orchestrator = new AgentSquad(); orchestrator.addAgent(new BedrockLLMAgent({ name: "Tech Agent", description: "Specializes in technology: software, hardware, AI, cybersecurity, cloud.", streaming: true })); const response = await orchestrator.routeRequest("What is AWS Lambda?", "user123", "session456"); 若 response.streaming 为 true,则用 for await 迭代 response.output;否则读取 response.output。Swift 可创建 Agent(name: "Shop", description: "Shopping assistant", model: ChatCompletionsClient(model: "gpt-4o-mini", apiKey: apiKey)),再用 Orchestrator(agents: [agent], store: try DeviceChatStorage(userId: "u1")) 调用 route。
这个 Agent 有哪些优点和局限?
- 同一编排模型覆盖 Python、TypeScript 和 Swift,Swift 还明确支持完全在设备端运行。
- 路由不只依据当前文本:Classifier 使用智能体描述和对话历史选择处理者。
- GroundedAgent 将工具获取与最终表述隔离,适用于必须忠实呈现价格、库存或余额等外部数据的场景。
- SupervisorAgent 支持并行子智能体查询、共享上下文和层级团队组合。
- Swift 工具层可统一接入原生函数、HTTP 工具和 MCP server。
- 三套运行时的要求不同:Python 需 3.11+,Swift 仅支持 iOS 16+ 或 macOS 14+,因此无法以单一二进制覆盖全部目标。
- README 只展示依赖安装和示例调用,未给出 Bedrock 或其他服务提供商凭证配置的具体步骤。
- 使用 Bedrock、Anthropic 或 OpenAI 等预构建智能体时,应用仍需集成相应模型提供商。
- Swift 包示例引用 main 分支而非固定版本,采用该方式可能带来版本漂移风险。
- 项目已从 awslabs/agent-squad 迁移且曾名为 multi-agent-orchestrator,旧克隆地址、书签和依赖名需要更新。
这个 Agent 与同类方案有什么区别?
仓库明确提供 Bedrock、Anthropic、OpenAI、Lex 与 Lambda 等智能体实现;它们是可在同一 Agent Squad 编排层中注册的集成选项,而非互斥的框架替代品。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Agent Squad 多智能体编排框架 当前 | 31 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 7.8k | 29 天前 | Python | OpenAI API · Claude API |
| Shannon | 53 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 2.3k | 2 个月前 | Go | OpenAI API · Claude API |
| AutoGen 多智能体框架 | 52 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 62k | 9 天前 | Python | OpenAI API |
| Open Swarm 智能体集群控制台 | 40 · 缺口较多 | — | ★ 827 | 25 天前 | JavaScript | Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示仓库未提供权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的说明。所有信任相关标准均得0分,因为没有任何相关文档或代码证据。
自一致性得2分:README描述了多运行时(Python、TypeScript、Swift)和功能,但未提供详细代码或测试来验证一致性。依赖可用性得1分:README提到了npm和PyPI包,但未提供版本锁定或依赖清单。失败消息得0分:未提供错误处理或失败消息的文档。
受众与场景得2分:README明确了目标受众(开发者)和多种使用场景(云、设备端)。能力边界得1分:描述了可扩展性,但未明确限制。触发精度得0分:未提供触发机制或精确条件。环境适配得2分:说明了支持的环境(Python 3.11+、Node.js、iOS 16+等)。
信息架构得2分:README结构清晰,有目录和分节。安装说明得2分:提供了npm、pip和Swift包安装命令。命名稳定性得1分:提到项目更名和迁移,但未提供版本历史。示例与FAQ得2分:提供了多个示例和文章链接。已知限制得0分:未提及任何限制。许可证得2分:明确Apache-2.0。版本与变更日志得0分:未提供CHANGELOG或版本历史。维护责任得1分:列出了作者和贡献者,但未明确维护政策。
输出可用性得2分:提供了API示例和输出格式。边际价值得2分:框架提供了多运行时和独特功能(如GroundedAgent)。成本效益得1分:未提供性能或成本数据。
声明可追溯性得1分:README中的声明未链接到具体代码或测试。跨来源佐证得1分:有外部文章和播客,但未提供独立验证。事实与推断分离得1分:部分区分了功能描述和推断,但不够明确。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 未提供安全相关文档,如权限管理、数据流透明、敏感数据处理等,使用前需自行评估。
- 依赖安全未提及,建议检查依赖清单和已知漏洞。
- 未提供已知限制和失败处理说明,可能影响生产环境使用。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
typescript_1.1.5 TypeScript 1.1.5
发布说明摘录
What's new - Added JevClassifier: routes with TypeSafe's Jev decision model instead of an LLM. The registered agents become a typed choice question, and Jev returns the chosen agent plus a calibrated confidence, billed on input tokens only. Uses the built-in fetch, no new dependencies. See the [docs](https://2fastlabs.github.io/agent-squad/classifiers/built-in/jev-classifier) (#699) - MCP protocol 2026-07-28 support via @modelcontextprotocol/client v2 (#642) - Streamable HTTP transport in MCPToolProvider (#639) …在 GitHub 查看 ↗ -
python_1.1.4 Python 1.1.4
发布说明摘录
What's new - Added JevClassifier: routes with TypeSafe's Jev decision model instead of an LLM. The registered agents become a typed choice question, and Jev returns the chosen agent plus a calibrated confidence, billed on input tokens only. Standard library only, no new dependencies. See the [docs](https://2fastlabs.github.io/agent-squad/classifiers/built-in/jev-classifier) (#699) - MCP protocol 2026-07-28 support via mcp 2.x, keeping 1.x compatible (#643) - Streamable HTTP transport in MCPToolProvider (#639) - MCP tool-UI passthrough in MCPToolProvider (#604) …在 GitHub 查看 ↗ -
typescript_1.1.4 TypeScript 1.1.4
发布说明摘录
What's new - Added SummarizingChatStorage: wraps any ChatStorage and automatically compresses long conversation histories via a user-supplied LLM summarizer. Uses lazy buffer activation and eager save-time compression — raw messages are always preserved in the inner store.在 GitHub 查看 ↗