尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【AI大模型实战】Spring AI + LangGraph4j 多智能体开发,太强大了!

【AI大模型实战】Spring AI + LangGraph4j 多智能体开发,太强大了! 1. 简介多智能体架构是人工智能领域实现复杂和创新解决方案的新趋势。其中“智能体交接”Agents Handoff是一种备受关注的架构模式。在本文中我们将探讨一种开发这种多智能体架构的方法并通过Langgraph4jSpring AI实现一个完整的多智能体。1.1 什么是多智能体架构多智能体系统由多个相互交互的智能体组成每个智能体都被设计为执行特定任务它们可以独立运作也可以协同合作以实现共同目标。多智能体架构的本质在于智能体之间的协调与通信以确保复杂过程的无缝执行。1.2 什么是智能体交接智能体交接指的是将控制权和数据上下文从一个智能体转移到另一个智能体的机制从而实现任务的连续高效执行。在需要不同专业知识或需要将任务分配给多个智能体以优化性能的场景中这一概念至关重要。1.2 如何实现智能体交接使用函数调用也称为工具作为实现智能体交接技术的手段。函数调用在AI模型中充当智能体的支柱使它们能够调用特定函数、共享数据并协同执行任务。通过利用函数调用开发人员可以设计出能够动态交互的智能体这些智能体能够响应环境中的变化并实时适应新信息。下图展示了ReAct智能体的架构突出了函数调用在该框架中所扮演的角色Action即智能体鉴于大型语言模型LLM能够根据其输入制定清晰明确的行动计划那么如果这些行动背后是由另一个智能体驱动的呢下面是一个展示这一点的示意图。这意味着如果我们描述一个行动action的功能比如智能体agent的能力我们就可以依靠该action的执行计划通过利用其基础设施来执行action并收集结果从而自动实现智能体交接。多个Actions作为智能体我们可以不断地迭代添加新的行为作为智能体从而构建复杂的多智能体场景。在Langgraph4j项目中已经开发出了一个参考实现。Langgraph4j提供了一个内置的ReACT智能体也称为AgentExecutor该实现已被扩展以支持智能体交接Agents’ handoff架构。主要类包括AbstractAgentExecutor它将一个AgentExecutor与一个Function结合起来以及AgentHandoff它通过添加将AbstractAgentExecutor的实现集成到其工具链中的能力增强了AgentExecutor的功能。接下来我们将完成这样一个案例用户输入需要购买的商品 》 调用商品服务智能体 》 调用支付结算智能体 》 结束2.实战案例2.1 定义商品市场智能体该智能体专门用来提供查询商品的。publicclassAgentMarketplaceextends AbstractAgentExecutorAgentMarketplace.Builder{staticclassTools{record Product(JsonPropertyDescription(商品名称)String name,JsonPropertyDescription(商品价格)double price){}Tool(description从商品市场中查询商品)Product searchByProduct(ToolParam(description要查询的商品名称)String product){//这里是你的逻辑我们这里为了演示直接返回一个Productreturnnew Product(Spring Boot3实战案例200讲,70D);}}//定义智能体 public staticclassBuilderextends AbstractAgentExecutor.BuilderAgentMarketplace.Builder{//构建智能体 public AgentMarketplace build()throws GraphStateException{this.name(marketplace)//智能体描述(工具描述).description(商品市场智能体, 获取商品相关的信息).parameterDescription().defaultSystem( 你是负责在商品市场上提供商品信息 ).toolsFromObject(new Tools());returnnew AgentMarketplace(this);}}public static Builder builder(){returnnew Builder();}protected AgentMarketplace(Builder builder)throws GraphStateException{super(builder);}}2.2 定义支付智能体当从上面的商品市场智能体获取到对应的商品以后会继续调用支付智能体进行支付操作。publicclassAgentPaymentextends AbstractAgentExecutorAgentPayment.Builder{staticclassTools{record Transaction(JsonPropertyDescription(购买的商品名称)String product){}Tool(description购买商品并进行付款)Transaction submitPayment(ToolParam(description购买的商品名称)String product,ToolParam(description商品的价格)double price,ToolParam(description支付账号)String account){System.err.printf(准备使用: %s账号, 购买图书: 《%s》| %s%n,account,product,price);returnnew Transaction(Spring Boot3实战案例200讲);}}public staticclassBuilderextends AbstractAgentExecutor.BuilderAgentPayment.Builder{public AgentPayment build()throws GraphStateException{this.name(payment)//智能体描述(工具描述).description(支付智能体, 购买并进行支付)//agent输入描述工具参数描述.parameterDescription(与付款相关的所有购买信息).defaultSystem( 你是提供支付服务的智能体 ).toolsFromObject(new Tools());returnnew AgentPayment(this);}}public static Builder builder(){returnnew Builder();}protected AgentPayment(Builder builder)throws GraphStateException{super(builder);}}2.3 配置智能体交接接下来我们要将上面的两个智能体进行配置。ConfigurationpublicclassAgentHandoffConfig{Bean CompiledGraphStategraph(ChatModel chatModel)throws Exception{AgentMarketplace agentMarketplaceAgentMarketplace.builder().chatModel(chatModel).build();AgentPayment agentPaymentAgentPayment.builder().chatModel(chatModel).build();returnAgentHandoff.builder().chatModel(chatModel).agent(agentMarketplace).agent(agentPayment).build().compile();}}2.4 测试RestControllerRequestMapping(/agents)publicclassAgentController{private final CompiledGraphStategraph;public AgentController(CompiledGraphStategraph){this.graphgraph;}GetMappingpublic ResponseEntity?chat(String prompt){OptionalStateresultgraph.invoke(Map.of(messages,new UserMessage(prompt)));String retresult.flatMap(state-{state.messages().forEach(message-{System.out.println(message);System.err.println(----------------------------);});returnstate.lastMessage();}).map(Content::getText).orElseThrow();returnResponseEntity.ok(ret);}}测试结果控制台输出按照顺序执行了我们的智能体。2.5 改进使用MCP服务器作为智能体由于智能体依赖工具来将任务交接给另一个智能体因此可以结合采样功能使用MCP服务器为智能体提供适合交接架构的支持最后为什么要学AI大模型当下⼈⼯智能市场迎来了爆发期并逐渐进⼊以⼈⼯通⽤智能AGI为主导的新时代。企业纷纷官宣“ AI ”战略为新兴技术⼈才创造丰富的就业机会⼈才缺⼝将达 400 万DeepSeek问世以来生成式AI和大模型技术爆发式增长让很多岗位重新成了炙手可热的新星岗位薪资远超很多后端岗位在程序员中稳居前列。与此同时AI与各行各业深度融合飞速发展成为炙手可热的新风口企业非常需要了解AI、懂AI、会用AI的员工纷纷开出高薪招聘AI大模型相关岗位。最近很多程序员朋友都已经学习或者准备学习 AI 大模型后台也经常会有小伙伴咨询学习路线和学习资料我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频全系列的学习资料这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】AI大模型系统学习路线在面对AI大模型开发领域的复杂与深入精准学习显得尤为重要。一份系统的技术路线图不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点还能提供一条高效、有序的学习路径。但知道是一回事做又是另一回事初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性在这基础上找到高质量的学习资源不浪费时间、不走弯路又是重中之重。AI大模型入门到实战的视频教程项目包看视频学习是一种高效、直观、灵活且富有吸引力的学习方式可以更直观地展示过程能有效提升学习兴趣和理解力是现在获取知识的重要途径光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。海量AI大模型必读的经典书籍PDF阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表