首页/新闻资讯/正文详情

Java多智能体系统实战:用ADK构建旅游规划助手,让AI智能体协作完成任务_google adk java-CSDN博客

发布时间:2026/9/25 7:58:32 来源:云帆数科 栏目:资讯中心
Java多智能体系统实战:用ADK构建旅游规划助手,让AI智能体协作完成任务_google adk java-CSDN博客
首屏导读 · 本教程配套付费专栏 大模型工程师修炼手记19.9 元AI 编程 / Agent 实战 本文同主题系统课程· AI时代程序员的自我提升49.9 元AI 时代成长方法论。单篇不过瘾订阅解锁全量源码、实战与答疑文末附资料包领取方式 ↓引言近年来AI智能体Agent技术飞速发展从单一功能的聊天机器人进化为能够自主决策、调用工具、协同工作的多智能体系统。多智能体系统Multi-Agent System通过将复杂任务拆分为多个子任务由不同专业智能体并行或顺序执行最终整合结果大幅提升了AI处理复杂问题的能力。本文将带你用Java实现一个旅游规划多智能体系统包含天气查询、景点推荐、行程规划三个专业智能体它们将协作完成一次完整的旅行规划任务。为什么用Java实现多智能体Java作为企业级开发的主流语言拥有庞大的生态、出色的稳定性和跨平台能力。Google开源的ADK for JavaAgent Development Kit为Java开发者提供了构建、编排智能体的强大工具支持多种协作模式顺序、并行、循环等并能与MCPModel Context Protocol协议无缝集成让智能体轻松调用外部工具和服务。项目概述我们将构建一个“旅游规划师”多智能体系统包含三个核心智能体天气查询智能体查询目的地的实时天气并根据天气提供出行建议。景点推荐智能体结合天气和用户偏好历史、美食、自然等推荐景点。行程规划智能体整合天气和景点信息生成详细的每日行程。系统采用并行执行 顺序汇总的混合流程先让天气和景点智能体并行工作再由行程智能体整合结果输出完整的旅行计划。技术选型Java 17Google ADK for Java 0.3.0智能体框架Maven项目构建JacksonJSON处理可选环境准备Maven依赖在pom.xml中添加以下依赖dependencies!-- Google ADK for Java --dependencygroupIdcom.google.adk/groupIdartifactIdadk-java/artifactIdversion0.3.0/version/dependency!-- Jackson for JSON (可选用于工具类) --dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.15.2/version/dependency/dependencies配置API密钥在src/main/resources/application.properties中配置Google AI Studio的API密钥从Google AI Studio获取google.ai.api.keyYOUR_API_KEY_HERE项目结构travel-planner-multiagent/ ├── pom.xml ├── src/main/java/com/example/travel/ │ ├── TravelPlannerApplication.java # 主类 │ ├── agents/ │ │ ├── WeatherAgent.java # 天气智能体 │ │ ├── AttractionAgent.java # 景点智能体 │ │ └── ItineraryAgent.java # 行程智能体 │ └── tools/ │ └── WeatherTool.java # 天气查询工具 └── src/main/resources/application.properties代码实现1. 工具类WeatherTool首先我们创建一个工具类用于模拟天气查询。实际应用中可替换为调用真实天气API。packagecom.example.travel.tools;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.databind.node.ObjectNode;importjava.util.Random;publicclassWeatherTool{privatestaticfinalObjectMapperMAPPERnewObjectMapper();privatestaticfinalRandomRANDOMnewRandom();publicJsonNodegetWeather(Stringcity){String[]conditions{晴朗,多云,小雨,大雨,阴天};Stringconditionconditions[RANDOM.nextInt(conditions.length)];inttemperature5RANDOM.nextInt(30);// 5~34度ObjectNoderesultMAPPER.createObjectNode();result.put(city,city);result.put(condition,condition);result.put(temperature,temperature);returnresult;}publicStringgetWeatherAdvice(JsonNodeweather){Stringconditionweather.get(condition).asText();if(condition.contains(雨)){return建议携带雨具选择室内活动;}elseif(condition.equals(晴朗)){return适合户外活动注意防晒;}return天气适宜可正常出行;}}2. 智能体1WeatherAgent使用LlmAgent创建天气查询智能体并注册WeatherTool。packagecom.example.travel.agents;importcom.example.travel.tools.WeatherTool;importcom.google.adk.agents.LlmAgent;publicclassWeatherAgent{publicstaticLlmAgentcreate(){WeatherTooltoolnewWeatherTool();returnLlmAgent.builder().name(weather-agent).description(查询目的地天气并提供出行建议).instruction( 你是一个专业的天气查询助手。 根据用户提供的城市名称使用WeatherTool查询天气 返回包含温度、天气状况和出行建议的格式化报告。 ).model(gemini-2.0-flash).tools(tool).outputKey(weatherInfo)// 输出键供后续智能体引用.build();}}3. 智能体2AttractionAgent景点推荐智能体它依赖天气信息通过{weatherInfo}占位符引用和用户偏好。packagecom.example.travel.agents;importcom.google.adk.agents.LlmAgent;publicclassAttractionAgent{publicstaticLlmAgentcreate(){returnLlmAgent.builder().name(attraction-agent).description(根据天气和用户偏好推荐景点).instruction( 你是一个景点推荐专家。 根据天气信息 {weatherInfo} 和用户偏好如历史文化、美食等 推荐3-5个适合的景点包含简介和建议游览时间。 ).model(gemini-2.0-flash).outputKey(attractions).build();}}4. 智能体3ItineraryAgent行程规划智能体整合天气和景点信息生成每日行程。packagecom.example.travel.agents;importcom.google.adk.agents.LlmAgent;publicclassItineraryAgent{publicstaticLlmAgentcreate(){returnLlmAgent.builder().name(itinerary-agent).description(整合天气和景点信息生成完整行程).instruction( 你是一个行程规划师。 根据天气信息 {weatherInfo} 和景点推荐 {attractions} 结合用户天数要求生成详细的每日行程包含餐饮和交通建议。 ).model(gemini-2.0-flash).outputKey(itinerary).build();}}5. 主类组合多智能体系统在TravelPlannerApplication中我们使用ParallelAgent和SequentialAgent编排智能体。packagecom.example.travel;importcom.example.travel.agents.AttractionAgent;importcom.example.travel.agents.ItineraryAgent;importcom.example.travel.agents.WeatherAgent;importcom.google.adk.agents.LlmAgent;importcom.google.adk.agents.ParallelAgent;importcom.google.adk.agents.SequentialAgent;importcom.google.adk.runners.FlowRunner;importcom.google.adk.sessions.InMemorySessionStore;publicclassTravelPlannerApplication{publicstaticvoidmain(String[]args){// 创建智能体LlmAgentweatherAgentWeatherAgent.create();LlmAgentattractionAgentAttractionAgent.create();LlmAgentitineraryAgentItineraryAgent.create();// 并行执行天气和景点查询ParallelAgentresearchAgentParallelAgent.builder().name(research-agent).description(并行收集天气和景点信息).subAgents(weatherAgent,attractionAgent).build();// 顺序执行先研究再规划行程SequentialAgenttravelPlannerSequentialAgent.builder().name(travel-planner).description(旅游规划师).subAgents(researchAgent,itineraryAgent).build();// 运行器FlowRunnerrunnerFlowRunner.builder().sessionStore(newInMemorySessionStore()).build();StringuserQuery我想去北京旅游3天喜欢历史文化和美食帮我规划一下;System.out.println(用户输入: userQuery);System.out.println(.repeat(50));Stringresultrunner.run(travelPlanner,userQuery);System.out.println(最终行程:\nresult);}}运行效果运行主类后控制台输出示例用户输入: 我想去北京旅游3天喜欢历史文化和美食帮我规划一下 最终行程: 【第一天】 上午参观故宫博物院历史文化的精髓建议3-4小时 中午在故宫附近的四季民福烤鸭店享用北京烤鸭 下午游览景山公园俯瞰故宫全景 晚上逛王府井小吃街品尝北京特色小吃 【第二天】 上午前往颐和园皇家园林建议3-4小时 中午在颐和园附近品尝老北京炸酱面 下午参观圆明园遗址公园 晚上观看老舍茶馆的京剧表演 【第三天】 上午游览天坛公园了解古代祭天文化 中午在前门大街品尝爆肚、卤煮等小吃 下午逛大栅栏商业街购买伴手礼 傍晚结束愉快的北京之旅扩展集成MCP工具ADK for Java支持通过MCP协议调用外部工具。假设我们有一个基于SSE的MCP天气服务器如前文所述可以轻松集成McpToolClientweatherMcpClientMcpToolClient.builder().serverUrl(http://localhost:8080/sse).build();LlmAgentagentLlmAgent.builder().name(weather-agent).tools(weatherMcpClient)// 使用MCP工具.build();更多协作模式除了并行和顺序ADK还支持LoopAgent循环执行直到满足条件Sub-Agents主智能体动态调用子智能体如研究总监模式混合流程嵌套组合多种模式例如Sub-Agents模式适用于主智能体根据用户问题灵活决定调用哪些子智能体的场景。总结本文通过一个旅游规划多智能体系统demo展示了如何使用Google ADK for Java构建能够协作完成任务的多智能体应用。我们实现了三个专业智能体天气查询、景点推荐、行程规划并行顺序混合流程提升效率并保证依赖关系工具注册与使用与MCP协议的集成扩展Java开发者可以借助ADK for Java快速构建复杂的智能体工作流将AI能力无缝集成到现有企业应用中。多智能体系统正在成为AI应用的新范式掌握这一技术将为你打开无限可能。参考资源ADK for Java官方文档ADK for Java GitHub示例MCP协议文档希望这篇实战文章能帮助你开启Java多智能体开发的旅程如果你有任何问题或想法欢迎在评论区交流讨论。hrefhttps://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-e1cc28b339.css relstylesheet hrefhttps://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-d1e89cace4.css relstylesheetAI 智能体本地部署实战OpenClaw 从环境搭建到避坑全攻略本地跑通你的 AI 代理一键订阅内容来源csdn.net作者昵称Tom·Ge原文链接https://blog.csdn.net/gedonshen/article/details/158343458作者主页https://blog.csdn.net/gedonshen标签#人工智能 #AI编程确定要放弃本次机会福利倒计时::立减 ¥普通VIP年卡可用立即使用延伸阅读 · 我的付费专栏觉得这篇文章对你有帮助我把同类主题的系统化内容沉淀成了付费专栏欢迎订阅支持持续输出专栏定价内容大模型工程师修炼手记19.9 元AI 编程 / Agent 深度实战AI时代程序员的自我提升49.9 元AI 时代成长方法论本文配套代码 / 资料包欢迎在评论区留言「求代码」我会私信发送完整资源

相关推荐

幼儿园大班名胜古迹主题测评方案设计与实践
幼儿园大班名胜古迹主题测评方案设计与实践

1. 项目背景与设计思路这个幼儿园大班上学期期末的中文测评项目,以《名胜古迹》为主题设计社会课程,是典型的幼教领域跨学科教学实践。我在参与多家幼儿园课程设计时发现,将语言能力测评与文化认知相结合,能有效提升5-6岁儿童的学… · 2026/9/25 7:58:32

如何安全删除死代码:Fallow trace 证据链 + fix 自动修复完整指南
如何安全删除死代码:Fallow trace 证据链 + fix 自动修复完整指南

如何安全删除死代码:Fallow trace 证据链 fix 自动修复完整指南 【免费下载链接】fallow Codebase intelligence for TypeScript and JavaScript. Free static analysis of code and styles: unused code, duplication, circular deps, complexity hotspots, archi… · 2026/9/25 7:58:26

WorkBuddy Enterprise企业级Agent平台:SkillHub与多Agent协同落地实践
WorkBuddy Enterprise企业级Agent平台:SkillHub与多Agent协同落地实践

1. 从「超级个体」到「超级团队」:这个平台到底在解决什么问题第一次看到「WorkBuddy Enterprise」这个名字,我脑子里蹦出来的第一个念头是:腾讯云终于把 CodeBuddy 那套东西从个人开发者手里往团队场景搬了。如果你最近半年一直在关注 AI Ag… · 2026/9/25 7:58:26

PDF图片转Word用什么软件?电脑/网页/手机全覆盖实用攻略
PDF图片转Word用什么软件?电脑/网页/手机全覆盖实用攻略

日常办公、学习中,大家经常遇到一个难题:拿到图片型PDF、扫描件PDF,普通转换根本没用,转完依旧是无法编辑的图片,手动打字费时又费力。这里先科普一个关键知识点:图片类PDF必须依靠OCR文字识别技术&#xf… · 2026/9/25 8:18:56

IT技术岗转网络安全值得吗?成本、路线与就业全景解析
IT技术岗转网络安全值得吗?成本、路线与就业全景解析

我经常在后台收到类似的提问:干了几年IT技术岗,到底要不要转网络安全?说实话,每次看到这种问题,我都能大概猜到提问者的处境——现有工作不算差,但天花板感越来越明显;网络安全听起来热门、有技… · 2026/9/25 8:18:44

Moto 中 Amazon Managed Prometheus(amp)服务的模拟实现与实战指南
Moto 中 Amazon Managed Prometheus(amp)服务的模拟实现与实战指南

Mock测试 【免费下载链接】moto A library that allows you to easily mock out tests based on AWS infrastructure. 项目地址: https://gitcode.com/gh_mirrors/mo/moto 点击查看 免费下载 Amazon Managed Prometheus(AMP,AWS 的托管 Prom… · 2026/9/25 8:18:31

平头哥倚天720/730/750三代CPU规划解读:微架构迭代与ARM服务器落地实践
平头哥倚天720/730/750三代CPU规划解读:微架构迭代与ARM服务器落地实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 8:18:31

SQL Explorer 实战指南:在 RocketRide 管道中浏览数据库、编写 SQL 与解读查询计划
SQL Explorer 实战指南:在 RocketRide 管道中浏览数据库、编写 SQL 与解读查询计划

【免费下载链接】rocketride-server High-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS C… · 2026/9/25 8:18:31

XAgent utils 模块深度解析:Token 计数、文本裁剪、状态码枚举、任务数据结构与单例元类
XAgent utils 模块深度解析:Token 计数、文本裁剪、状态码枚举、任务数据结构与单例元类

AI Agent大模型后端任务调度 【免费下载链接】XAgent An Autonomous LLM Agent for Complex Task Solving 项目地址: https://gitcode.com/gh_mirrors/xa/XAgent 点击查看 免费下载 XAgent/utils.py 是 XAgent 框架中一个"小而关键"的基础模块&#xff1… · 2026/9/25 8:18:31

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码