agent-squad
多代理AI编排框架:通过Classifier智能路由请求到最合适的专业代理,支持Claude/Bed
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
多代理AI编排框架:通过Classifier智能路由请求到最合适的专业代理,支持Claude/Bed
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你走进一家餐厅,点了一道牛排。厨房里不是一个人在忙——切配的切配、煎烤的煎烤、摆盘的摆盘——但你只需要对一个服务员说话,他会把需求精准地分配给最合适的人,最后把一盘完整的菜送到你面前。Agent Squad 就是那个「服务员」,只不过它服务的是大语言模型(LLM)。
作为 AWS Labs 孵化的开源项目,Agent Squad 最初托管于 awslabs/agent-squad,现已迁移至独立组织 2FastLabs 继续维护,在 GitHub 积累超过 7600 颗星,成为多代理编排领域最受欢迎的工具之一。
图1:Agent Squad Web 界面演示
早期的 AI 应用,大多是一个 LLM 包打天下——问答、写作、代码生成,全靠同一个模型。但当任务复杂度提升,这种模式的弊端开始显现:通用模型在专业任务上表现平庸,单独训练专用模型成本又太高。 多代理架构(Multi-Agent)是业界公认的解法:让多个专业化的小模型(代理)各司其职,再用一个「总代理」负责协调和路由。OpenAI 的 GPTs、Anthropic 的 Claude Function Calling,都在这一方向上探索。但如何将这套机制工程化落地,却是个实打实的技术难题——代理之间如何通信?上下文如何传递?路由逻辑如何动态调整? Agent Squad 正是在解决这个「工程化最后一公里」的问题。它不追求重新造轮子,而是站在现有 LLM(Claude、GPT、AWS Bedrock 等)的肩膀上,用一套优雅的架构把它们串联起来。
Agent Squad 的工作流程可以概括为「分类 → 路由 → 执行」三步走:
BedrockClassifier:基于 AWS Bedrock 模型AnthropicClassifier:基于 ClaudeOpenAIClassifier:基于 GPT
开发者也可以自行实现 Classifier 接口,替换默认的分类策略。
图2:Agent Squad 工作流程如果说普通的路由模式是「一个萝卜一个坑」,那么 SupervisorAgent 就是「经理-员工」式的层级协作。当一个复杂请求进来,SupervisorAgent 可以将任务分解为多个子任务,并行分发给多个专业子代理,最后汇总结果。 这种模式非常适合:客服场景(查单、推荐、退款分别由不同代理处理)、数据分析场景(有的代理负责 SQL 查询、有的负责可视化、有的负责文字解读)。
Agent Squad 内置了丰富的代理类型,开发者无需从零实现:
| 代理类型 | 适用场景 |
|---|---|
AnthropicAgent | Claude 系列模型对话 |
OpenAIAgent | GPT 系列模型对话 |
BedrockLLMAgent | AWS Bedrock 基础对话 |
BedrockFlowsAgent | AWS Bedrock Flows 复杂编排 |
LexBotAgent | AWS Lex 聊天机器人集成 |
ChainAgent | 串联多个代理的链式调用 |
StrandsAgent | AWS Strands 代理框架集成 |
SupervisorAgent | 层级化任务分解 |
Python 端还额外提供了 LambdaAgent——可以直接将代理部署为 AWS Lambda 函数,实现 Serverless 无服务器架构。这对于需要在生产环境弹性扩展的 AI 应用来说,是极具吸引力的特性。 |
Agent Squad 的一大亮点是 Python 和 TypeScript 双语言完全对等的实现。Python 端采用 src/agent_squad/ 模块化结构,TypeScript 端对应 typescript/src/,两者功能完全一致:
python/src/agent_squad/
├── agents/ # 15+ 种代理实现
├── classifiers/ # 分类器
├── orchestrator.py # 核心编排器
├── retriever/ # 检索器
├── storage/ # 存储层(InMemory/Dynamic)
└── types/ # 类型定义
两种语言都可以通过一行命令安装:
# Python
pip install agent-squad
# TypeScript
npm install agent-squad
这让 Agent Squad 的适用范围横跨数据科学(Python 生态)和 Web 开发(Node.js 生态)两大阵营。
Agent Squad 的设计哲学是轻量和灵活,因此:
InMemoryChatStorage),也支持 DynamoDB 和 Langfuse,方便接入生产环境。LambdaAgent 可以将整个编排逻辑封装为 AWS Lambda 函数,冷启动时间短、成本低。
官方 examples 目录提供了丰富的参考应用:chat-chainlit-app:基于 Chainlit 的 Web 聊天界面(需要本地运行 Ollama)fast-api-streaming:FastAPI + 流式响应后端langfuse-demo:集成 Langfuse 追踪 AI 调用链路strands-agents-demo:AWS Strands 代理集成Agent Squad 并非银弹,以下几点需要特别注意:
Agent Squad 的价值,不仅在于它本身是一个好用的框架,更在于它代表了一种趋势:AI 应用正在从「一个模型服务所有人」走向「多个模型协同」。 随着 Claude 3.5、GPT-4o 等模型能力持续增强,单个模型的上下文窗口和工具调用能力已经非常强大。但在复杂企业场景中,多代理协作仍然是不可替代的架构选择。Agent Squad 通过提供现成的编排骨架,让开发者不需要从零设计代理通信协议、上下文管理、错误处理——这些脏活累活框架都替你干了。 项目从 AWS Labs 迁移到独立组织 2FastLabs 运营,表明社区对其独立发展的认可。如果你正在构建需要多种 AI 能力协同的应用,Agent Squad 是一个值得纳入技术选型列表的框架。