本案例展示了一个基于 Apache RocketMQ Lite 版本与 LangGraph 集成的多 Agent 异步协同架构,通过消息中间件实现跨 Agent 的解耦通信与事件驱动交互,支持高并发、低延迟的分布式智能体协作场景。
部署 Apache RocketMQ 的 LiteTopic 版本,或购买支持 LiteTopic 的 RocketMQ 商业版实例,并创建以下资源:
WorkerAgentResponse(supervisor_agent 用于接收响应结果)WorkerAgentResponse 绑定的轻量级消费者 ID:CID_HOST_AGENT_LITE(supervisor_agent 中用于订阅 WorkerAgentResponse)WeatherAgentTask(weather_agent 用于接收任务请求)WeatherAgentTaskConsumerGroup(weather_agent 中用于订阅 WeatherAgentTask)TravelAgentTask(travel_agent 用于接收任务请求)TravelAgentTaskConsumerGroup(travel_agent 中用于订阅 TravelAgentTask)部署大模型服务(或使用云平台提供的大模型与 Agent 调用服务),并实现以下功能的 Agent 服务:
3.1 进入阿里云百炼平台
3.2 创建对应的模型调用服务与 Agent 调用服务的 apiKey
3.3 在百炼平台中创建天气助手应用与创建行程助手应用
3.4 创建天气助手 Agent
在阿里云百炼的应用管理页面,单击创建应用按钮。
在弹窗中选择智能体应用,应用名称填写天气助手,单击立即创建。
在应用中选择通义千问 3(通义千问-Plus-Latest)模型,最长回复长度设定为 8192,关闭思考模式。
在提示词中输入以下内容。
# 角色 你是一位专业的天气查询助手,能够根据用户提供的城市和时间信息,提供简洁明了的天气预报。你的任务是帮助用户获取准确的天气信息,以便他们做好相应的准备。 ## 技能 ### 技能 1: 获取用户需求 - 询问用户所需查询的城市和具体时间。 - 确认用户的需求并确保信息准确无误。 ### 技能 2: 查询天气信息 - 使用天气查询工具(如API)获取实时天气数据。 - 回复简单的天气预报信息即可,不用过于复杂,包括温度、湿度、风速、降水概率等。 ### 技能 3: 解读天气信息 - 将获取到的天气数据以易于理解的方式呈现给用户。 - 根据天气情况,给出相应的建议,例如穿衣建议或出行提示。 ## 约束 - 只提供与天气相关的信息和服务。 - 所有天气信息必须通过调用天气查询工具来获取,不得凭空猜测。 - 提供的信息应准确且及时,确保用户能够做出合理的决策。 - 保持简洁明了的沟通方式,避免使用过于专业或复杂的术语。
## 角色 你是一个智能出行助手,你会给客户推荐最全面的出行建议,为客户的出行保驾护航! ## 技能 ### 技能1 : 查询车票 1,你可以根据客户要去的目的地来帮助客户查询高铁/动车,普通列车。 2,当客户未提供出发点你需要询问出发点。并帮助客户查询相关车票 3,输出形式,以为表格的形式列举出所有相关要查询的车票信息。 4,你会根据列举出的车票信息,来推荐最佳的车票。 ### 技能2:航班查询 1,你可以帮助客户查询目的地相关航班信息 2,你可以将航班信息以表格的形式列举出来,要求信息详细 3,你会根据列举出的航班信息,推荐最佳的航班。 ### 技能3 :充电站查询 1,你能根据客户输入的地点来实时查询所在地的充电站信息 2,你会推荐最近且有可用充电桩的充电站。 ### 技能4:驾车路径规划 1,你会根据输入的目的地来推荐最佳的驾车路径规划 ### 技能5:周边查询 1,当客户出差时,你可以根据目的地来推荐附近的商务酒店 2,以及附近的商务酒店哪里有停车场。 3,酒店,停车场如果有图片的话,请展示相关图像。 ## 执行步骤 1,当客户没有明确选择出行方式时,你需要询问需要哪种出行方式 2,当客户选择了出行方式,你需要查询相关信息,然后根据要去的目的地,查询当地的天气,以及未来三天的天气情况 ## 约束 1,当客户查询相关车票的时候,你需要将高铁/动车,航班信息以表格的形式列举出来。 2,信息查询结果要求语言简练,文本信息不要有冗余。只输出相关信息即可,不要有无关信息的输出。 3,当客户想要查询充电站信息,你只给出相关信息即可。 4,当客户需要出行时,你必须询问客户要使用哪种出行方式,例如:高铁/动车,航班,驾车等然后再规划出行。 5,你需要根据目的地查询当日的天气情况,以及未来三天的天气晴朗并且提醒客户关于天气出行的一些建议或注意事项 6,你需要完全理解客户的意思,在任务中不要有缺漏和疏忽。
12306车票查询 飞常准-Aviation 新电途-ChargeStation Amap Maps
单击发布按钮。
返回应用列表,将应用ID(appId)保存到本地用于后续配置。
uv sync
本项目提供了构建脚本用于创建独立的可部署包:
python scripts/build_packages.py
此脚本将创建以下三个独立的部署包:
dist/supervisor-agent/: Supervisor Agent 部署包 (包含 common + supervisor_agent)dist/travel-agent/: Travel Agent 部署包 (包含 common + travel_agent)dist/weather-agent/: Weather Agent 部署包 (包含 common + weather_agent)dist/.env: 共享配置文件| 参数名称 | 基本介绍 | 是否必填 |
|---|---|---|
| ROCKETMQ_ENDPOINT | RocketMQ 服务接入点 | 是 |
| ROCKETMQ_ACCESS_KEY | RocketMQ 账号(AK) | 否 |
| ROCKETMQ_SECRET_KEY | RocketMQ 密码(SK) | 否 |
| DASHSCOPE_API_KEY | 百炼平台调用 apiKey | 是 |
| APP_ID_WEATHER | 天气助手应用 appId | 是 |
| APP_ID_TRAVEL | 行程助手应用 appId | 是 |
编辑 dist/.env 文件,填入您的配置:
#=== Aliyun Bailian Configuration === DASHSCOPE_API_KEY=your_bailian_api_key # Worker application IDs APP_ID_WEATHER=your_weather_agent_app_id APP_ID_TRAVEL=your_travel_agent_app_id #=== RocketMQ Configuration === ROCKETMQ_ENDPOINT=your_rocketmq_endpoint ROCKETMQ_ACCESS_KEY=your_access_key ROCKETMQ_SECRET_KEY=your_secret_key
以下三个 Agent 进程建议分别在不同的窗口中运行
cd dist/weather-agent && ./start.sh
cd dist/travel-agent && ./start.sh
cd dist/supervisor-agent && ./start.sh
本项目包含三个核心组件:
WorkerAgentResponse Topic 接收工作智能体的响应WeatherAgentTask Topic 接收任务WorkerAgentResponse TopicTravelAgentTask Topic 接收任务WorkerAgentResponse Topicsupervisor_agent_start.py