多代理编排实战:5分钟让一句提问被路由到最合适的AI代理
【免费下载链接】agent-squadFlexible and powerful framework for managing multiple AI agents and handling complex conversations项目地址: https://gitcode.com/GitHub_Trending/mu/agent-squad
你正在做一个客服聊天机器人,用户上一句在问天气,下一句就开始问订单。单个模型配一套提示词硬扛所有角色,效果一定打折。多代理编排就是来解决这件事的:把多个专业代理放到同一张桌子上,再安排一个"前台"决定每句话该谁接。开源框架 Multi-Agent Orchestrator 干的就是这活儿。
多代理编排框架能做什么
Multi-Agent Orchestrator 是一个管理多个AI代理、处理复杂对话的轻量级开源框架。你只需要注册一堆代理,路由、上下文和历史记忆都由它接管,Python 和 TypeScript 两个版本功能完全对等。
最核心的几个能力点:
- 多代理智能路由
- Python 与 TypeScript 双实现
- 流式与非流式响应
- 每代理独立对话记忆
- 内置代理与分类器
- 可插拔存储后端
分类器把用户输入路由到不同的代理团队
跑通第一个对话demo
环境只要 Python 3.8+,再配一个开通了 Bedrock 模型访问权限的 AWS 账号并配置好凭证——默认分类器就是一个 Bedrock 模型。
git clone https://gitcode.com/GitHub_Trending/mu/agent-squad cd agent-squad装依赖,两条命令搞定:
python -m venv venv && source venv/bin/activate pip install "multi-agent-orchestrator[aws]"建一个quickstart.py,八行代码让一个代理接起对话:
import asyncio from multi_agent_orchestrator.orchestrator import MultiAgentOrchestrator from multi_agent_orchestrator.agents import BedrockLLMAgent, BedrockLLMAgentOptions orch = MultiAgentOrchestrator() orch.add_agent(BedrockLLMAgent(BedrockLLMAgentOptions( name="Tech Agent", description="Answers questions about software, hardware and AI"))) print(asyncio.run(orch.route_request("AI 领域最近有什么新趋势?", "u1", "s1")))python quickstart.py你会看到一个完整的响应对象:哪个代理接了手、回复内容是什么。试试把问题换成健康类,再往 orchestrator 里加一个 Health Agent——不用改任何路由代码,分类器会自动把问题分给新代理。TypeScript 版本 API 完全对称,入口叫routeRequest,写法可以看 typescript/ 目录。
跟随一次请求看路由逻辑
现在跟着"杭州今天天气怎么样?"走一遍route_request,框架内部的分工就清楚了:
- 分类器先上岗。它从存储里取出这个会话的全部历史,再结合每个代理的名字和描述做判断,返回
selected_agent和置信度。没人够自信时,如果配了默认代理会自动兜底。 - 派单给代理。编排器取该代理自己的历史,调用它的
process_request。代理如果挂了工具(比如天气代理里的 open-meteo 查询),会先调工具拿数据再组织回答。 - 落库存历史。用户问题和代理回答都写进存储(默认是内存版 InMemoryChatStorage),下一轮分类才有上下文可依,对话不会聊着聊着失忆。
- 返回响应。开流的代理返回流式 chunk,metadata 里带着代理名和置信度。
官方聊天demo里挂了六个专业代理,覆盖旅行、天气、数学、健康等域,话题来回切换时上下文始终不掉线:
6个专业代理随话题切换上下文
核心源码就在python/src/multi_agent_orchestrator/orchestrator.py的route_request里,配合分类器和代理目录对照着看,半天就能吃透整个流转。
跑一个AI电影制片厂场景
如果你想让AI帮你"拍"部片子,组合方式大致是三个角色加一个总监:
- 编剧代理(Claude 3 Sonnet):根据片名创意和类型,产出大纲、人物设定和剧情反转
- 选角代理(Claude 3 Haiku + 联网搜索工具):查每个角色的候选演员及其近况
- 制片人代理:负责协调前两位,最后汇总出概念概览
关键在 SupervisorAgent:它把 lead 代理当总指挥,其他代理是团队成员,用"agent-as-tools"架构并行派发子任务,整个团队共享同一份对话上下文。
demo 是一个 Streamlit 应用,装好examples/python的依赖就能起:
cd examples/python streamlit run main-app.py填上电影创意、类型和受众,点一下生成:
填上创意和类型即可生成概念
几秒后拿到概念概述、三幕结构和推荐演员名单:
生成结果:概念概述加选角建议
再往前一步:写自己的代理和换分类器
跑通之后可以开始改造成自己的:
- 自定义代理:继承
Agent类,实现处理方法,注册进 orchestrator,入口在 docs/src/content/docs/agents/custom-agents.mdx - 内置代理任选:python/src/multi_agent_orchestrator/agents/ 下有 Bedrock、Anthropic、OpenAI、Lex bot、Lambda 函数、翻译器等12种现成实现
- 换个前台:python/src/multi_agent_orchestrator/classifiers/ 里把分类器换成 Anthropic 或 OpenAI 版本
- 长对话持久化:存储可换成 DynamoDB 或 SQL,见 docs/src/content/docs/storage/
同一套框架用在电商客服上
电商客服模拟器是很完整的进阶参照:简单问题自动答复,复杂问题转人工,人还在环里。
把一次请求跟完,你对这套多代理编排框架的全貌就清楚了:前台(分类器)、专员(代理)、记忆(存储),三个件件可换。更多场景去 examples/ 里翻,完整文档在 docs/。
【免费下载链接】agent-squadFlexible and powerful framework for managing multiple AI agents and handling complex conversations项目地址: https://gitcode.com/GitHub_Trending/mu/agent-squad
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考