- 博客(111)
- 收藏
- 关注
原创 如何通过reactor实现流式响应接口
本文介绍了Spring框架中使用Reactor库实现响应式编程的几种方式。通过示例代码演示了如何返回Mono单条数据、处理中文乱码问题,以及实现异步响应。重点讲解了Flux流式返回多条消息的方法,包括使用Flux.create()和Sinks.Many两种实现方式,并比较了它们的特性差异。文章还详细说明了异步任务封装、消息发送控制、错误处理以及背压策略等关键技术点,为开发响应式应用提供了实用参考。
2025-11-16 11:08:37
536
原创 spring-ai-alibaba 学习之 Jmanus(二)——操作浏览器
本文介绍了BrowserUseTool类的功能实现,这是一个基于Playwright的浏览器自动化工具。该类继承AbstractBaseTool并实现ToolCallBiFunctionDef接口,核心功能包括run方法执行操作和getCurrentToolStateString获取状态。支持15种浏览器操作,如导航、点击、输入文本、截图等。通过DriverWrapper封装Playwright实例,实现浏览器控制。输入采用JSON格式定义,包含操作类型和参数。
2025-11-02 10:07:42
880
原创 spring-ai-alibaba 学习之 Jmanus(一)——执行逻辑
本文介绍了Java版Manus的配置与运行方法,以及其核心执行流程分析。项目需要配置JDK环境并设置API密钥,启动后可通过Web页面操作。重点剖析了"查询股价"功能的执行过程:系统通过异步接口接收请求后,会动态生成执行计划,使用ConfigurableDynaAgent进行多轮思考-行动循环(包括浏览器导航、搜索、点击等操作),最终返回股价信息。系统架构包含五层数据模型:计划模板、可执行计划、步骤单元、思考行动对和工具调用,采用动态决策机制控制执行流程。
2025-11-01 16:25:06
1013
原创 spring-ai-alibaba 学习之 Jmanus 概览
JManus是阿里巴巴开源的基于Spring AI Alibaba的AI Agent管理系统,采用纯Java实现。系统核心功能包括智能体管理、计划模板执行、MCP集成和模型管理,支持从海量数据中精确提取信息。技术栈基于Spring Boot 3.5.6、Java 17+、Vue3等,提供OpenAI兼容接口和RESTful API。支持H2、MySQL等数据库,可通过Docker或源码部署。主要特性包括纯Java实现、Plan-Act执行模式、Web界面配置和无限上下文处理能力,适合需要确定性的探索性场景
2025-11-01 09:54:03
935
原创 spring-ai-alibaba-graph 如何避免自动加载上一次执行结果
摘要:spring-ai-alibaba-graph-core 1.0.0.4版本存在自动加载历史执行结果的问题,导致流程逻辑错误。提供三种解决方案:1)通过CompileConfig配置空SaverConfig;2)每次调用时生成随机threadId;3)每次重新编译StateGraph。其原理是框架底层使用CheckpointSaver根据threadId合并历史结果,默认使用$default作为threadId。可通过控制threadId或SaverConfig来避免历史结果干扰。
2025-10-31 21:06:37
335
原创 Chat2DB 学习笔记
Chat2DB 中对 AI 的应用是比较标准的 RAG 流程,即根据用户问题查询额外信息后,与用户问题一起发送给大模型进行解答没有针对召回进行复杂优化,也没有反思验证等环节,实际使用效果可能差一些亮点是除了生成sql,还支持sql的解释、优化、转换等功能ps:底层没有用类似 langchain 的框架,纯 okhtpp3 自行构造请求调用大模型。
2025-10-29 19:47:50
323
原创 spring-ai-alibaba 1.0.0.4 更新内容
本次更新主要包含以下内容:新增spring-ai-alibaba相关组件包,包括a2a通信、agent nacos集成等;进行了多个jar包的重命名和版本升级(Spring AI 1.0.1、Spring Boot 3.4.8等);重构了代理图引擎,采用基于Flux的响应式架构;新增A2A通信协议和百度AI搜索功能;优化了多个模块如redis-memory等;目前仍存在graph内置节点的并发问题需要解决。注意部分实验性功能可能在后续版本变更。
2025-10-29 10:52:48
809
原创 spring-ai-alibaba-nl2sql 学习(六)—— 自然语言生成sql项目总结
本文介绍了spring-ai-alibaba-nl2sql项目的多种使用场景,包括SQL生成、结果输出、多库支持等功能。文章指出该项目虽然仍存在数据库支持类型不足、文档欠缺等问题,但功能实用且行业通用。作者认为作为年轻的开源项目,这些问题可以理解,并建议开发者根据需求进行改造使用,同时欢迎社区贡献代码来完善项目。总体评价该项目是一个值得参考的NL2SQL实现方案。
2025-09-21 18:03:49
431
原创 spring-ai-alibaba-nl2sql 学习(五)——python 分析
本文介绍了spring-ai-alibaba框架中NL2SQL功能的扩展应用。通过设置IS_ONLY_NL2SQL=false,系统可生成多步骤执行计划,包括SQL查询、Python代码生成与执行、分析报告生成等完整流程。同时展示了如何通过提示词设计生成分步骤分析计划,以及如何将Python分析结果转化为专业报告。该扩展适用于需要进一步处理SQL查询结果的场景,为数据分析提供了更完整的解决方案。
2025-09-21 12:27:14
655
原创 spring-ai-alibaba-nl2sql 学习(四)——nl2sql agent
摘要:本文介绍了Spring AI Alibaba框架中Nl2Sql Agent的增强功能实现。相比基础版本,新增了多数据源支持的能力。核心流程通过引入Agent及其Datasource,以及对应的向量库实现。
2025-09-20 10:10:13
485
原创 spring-ai-alibaba-nl2sql 学习(三)——nl2sqlGraph
摘要:本文介绍了Spring AI Alibaba框架中Nl2SqlService的增强功能实现。相比基础版本,新增了问题分类、重写、SQL执行与检查等能力。核心流程通过StateGraph实现,包含QueryRewriteNode、KeywordExtractNode等节点
2025-09-19 16:54:07
1310
原创 spring-ai-alibaba-nl2sql 学习(二)——基础使用
本文介绍了Spring AI Alibaba中BaseNl2SqlService的使用方法,主要包括三部分配置:数据库(支持H2、MySQL、PostgreSQL)、向量存储(支持SimpleVector和AnalyticDB)和大模型。通过使用BaseNl2SqlService的nl2sql方法,可实现自然语言转SQL功能。核心流程包括:从向量存储召回业务知识、提取关键词、筛选相关表数据、生成SQL等步骤。文中提供了完整的配置示例和代码调用方式,并详细说明了每个步骤的实现逻辑和注意事项。
2025-09-19 09:07:18
477
原创 spring-ai-alibaba-nl2sql 学习(一)——概览
本文介绍了Spring AI Alibaba的NL2SQL功能,该功能可将自然语言转换为可执行的SQL语句,支持MySQL、PostgreSQL等数据库。文章详细说明了NL2SQL的核心功能,包括基础的自然语言转SQL、方言支持、SQL执行,以及进阶的术语配置、SQL验证、Python代码生成和报告生成。同时介绍了代码结构中的四个主要模块及其功能,并提供了四种使用方法,从简单到高级逐步扩展功能。
2025-09-18 16:27:40
2433
原创 langgraph4j-deep-researcher 学习笔记
摘要:langgraph4j-deep-researcher是一个基于langgraph4j的简化深度研究项目,包含6个节点:查询生成、网络搜索、摘要生成、反思分析、路由决策和报告生成。相比同类项目,其流程更简单直接,仅包含主路径和失败重试循环。但存在解析粗糙(仅依赖关键词匹配判断)、部分提示词未实际使用等问题,可能影响准确性。该项目更适合作为教学示例而非实用工具,虽易理解但执行效果有限。
2025-09-18 09:49:55
470
原创 langgraph4j 学习笔记(对比 spring-ai-alibaba-graph)
文章摘要:对比分析langgraph4j和spring-ai-alibaba-graph框架,二者在核心结构上有七八分相似度。主要类如StateGraph、Nodes、Edges等功能类似,但存在差异:langgraph4j的AgentState更灵活,而spring-ai-alibaba-graph在KeyStrategy和功能实现上更丰富。提交记录显示langgraph4j更早出现,但spring-ai-alibaba-graph凭借更多维护者已实现反超,新增了a2a、scheduling等特性。
2025-09-17 11:27:59
1265
原创 langchain4j 学习(一)——概览
LangChain4J是LangChain的Java实现,不仅融合了LangChain、Haystack和LlamaIndex的特点,还加入了自己的创新。项目包含多个模块:核心库、Spring集成、嵌入模型和社区扩展等,支持多种大模型和向量存储。目前稳定版为1.4.0,社区活跃度高。项目提供了丰富的文档和示例代码,适合Java开发者构建AI应用。
2025-09-15 10:23:09
938
原创 spring-ai-alibaba-deepresearch 学习总结
DeepResearch是一种突破性的智能研究框架,通过多级知识处理机制实现深度问题探究。其核心采用状态图驱动的多智能体协作机制,将研究流程分解为问题分析、背景调查、计划制定、分步执行和报告生成等标准化节点。技术实现上通过SSE实现流式响应,基于Graph引擎支持中断恢复和状态共享。该系统为各领域深度知识研究提供了可扩展的智能化解决方案框架。
2025-09-07 17:24:18
1535
原创 spring-ai-alibaba-deepresearch 学习(十四)——CoderNode
本文介绍了Spring AI Alibaba中CoderNode节点的功能与实现。CoderNode作为并行处理节点,负责执行Python代码、调用MCP等任务,主要流程包括:1)获取待处理步骤;2)处理反思逻辑;3)标记步骤状态;4)执行任务并处理结果。该节点通过coderAgent执行任务,适用于数据分析、算法实现等场景。
2025-09-07 08:54:44
337
原创 spring-ai-alibaba-deepresearch 学习(十三)——ResearcherNode
本文介绍了Spring AI Alibaba中的ResearcherNode研究型任务处理节点,主要包括以下内容: 节点功能定位:作为研究型任务核心执行节点,负责任务执行、信息收集、内容生成、状态更新和反思参与。 配置参数说明:包含反思开关、MCP服务配置等参数设置。 节点处理流程:包括反思处理、搜索执行、智能体选择、内容生成等关键步骤。 源码实现解析:详细说明了apply方法的执行逻辑,包括状态管理、消息构建、搜索调用和结果处理等关键环节。 多智能体支持:介绍了学术研究、数据分析、百科知识、生活旅游等
2025-09-06 09:38:18
739
原创 spring-ai-alibaba-deepresearch 学习(十二)——源码学习之ParallelExecutorNode
本文介绍了spring-ai-alibaba学习系列中paralell_executor节点的功能与实现。该节点负责在研究计划存在未完成步骤时,将任务分配给研究员和码农节点。通过配置可设置两类节点的并行数量,节点会根据步骤类型(研究型/处理型)进行任务分配。实现上,ParalellExecutorNode会两次执行:先分配研究型步骤给研究员节点,待完成后,再分配处理型步骤给码农节点。该节点本质是任务分配器而非执行器。
2025-09-05 08:30:00
819
原创 spring-ai-alibaba-deepresearch 学习(十一)——源码学习之ProfessionalKbDecisionNode
本文介绍了Spring AI Alibaba中的professional_kb_decision节点功能。该节点用于根据用户查询判断是否需要使用专业知识库,并返回适用的知识库ID列表。配置时需要开启decision-enabled参数,并设置各知识库的id、名称、描述等属性。节点会通过ChatClient将用户问题和知识库信息发送给大模型进行判断,最终输出use_professional_kb标志和selected_knowledge_bases结果。
2025-09-04 08:30:00
865
原创 spring-ai-alibaba-deepresearch 学习(十)——源码学习之ResearchTeamNode
本文分析了spring-ai-alibaba项目中research_team节点的执行逻辑。当auto_accepted_plan为true时,系统会转入research_team节点,该节点通过检查计划中每一步的执行状态来决定后续流程:若所有步骤均完成,则进入professional_kb_decision节点;否则进入paralell_executor节点。值得注意的是,research_team节点不涉及大模型调用,仅执行简单的状态检查功能。
2025-09-03 08:30:00
248
原创 spring-ai-alibaba-deepresearch 学习(九)——源码学习之HumanFeedbackNode
本文分析了Spring AI Alibaba中HumanFeedback节点的实现逻辑。该节点作为auto_accepted_plan为fals时的分支路径,主要功能是提供人工介入点:在ChatController中设置中断点并通过/resume接口恢复流程。HumanFeedbackNode会获取用户反馈,若为空则接受原计划进入research_team节点,否则返回planner重新规划。节点还包含迭代次数控制逻辑,超过最大值时直接进入research_team。
2025-09-02 08:30:00
313
原创 spring-ai-alibaba-deepresearch 学习(八)——源码学习之InformationNode
本文介绍了Spring AI Alibaba中的Information节点功能,该节点负责将大模型返回结果转换为Plan类型。主要特点包括:1)内置转换失败重试机制,支持通过max_plan_iterations参数控制计划重试次数,超过最大次数则终止流程;2)根据auto_accepted_plan决定后续流转至人工节点还是研究组节点。核心逻辑包含结果反序列化处理、重试次数判断和自动/人工决策分支,最终输出current_plan和下一节点信息。
2025-09-01 08:30:00
337
原创 spring-ai-alibaba-deepresearch 学习(七)——源码学习之PlannerNode
本文介绍了spring-ai-alibaba中planner节点的实现细节。当enable_deepresearch为true时,系统会转入该节点进行任务规划。PlannerNode工作流程包括加载提示词、整合用户问题、背景调查结果和知识库信息等步骤,最后交由大模型进行任务规划。核心提示词设计了一个专业研究员的角色,要求从历史背景、当前状态等8个维度收集全面信息,并制定了严格的执行规则和输出格式规范(Plan对象)。
2025-08-31 08:24:48
410
原创 spring-ai-alibaba-deepresearch 学习(六)——源码学习之ReporterNode
本文介绍了Spring AI Alibaba学习系列中reporter节点的实现细节,该节点负责生成最终研究报告。当enable_deepresearch为false时,系统会转入reporter节点,该节点会整合背景调查结果和深度研究信息并生成分析报告。文章还提供了一个Markdown格式的分析报告模板,详细规定了报告的角色设定、目标受众、内容维度、分析框架和格式要求。模板包含关键要点、概述、详细分析等必要部分,并提供了数据展示和引用格式的具体规范。
2025-08-30 08:30:00
461
原创 spring-ai-alibaba-deepresearch 学习(五)——BackgroundInvestigationNode
本文介绍了spring-ai-alibaba项目中DeepResearchConfiguration模块的background_investigator节点实现。该节点主要功能是根据优化查询列表执行智能搜索并生成研究报告,核心处理流程包括:1)通过smartAgentSelectionHelper智能选择搜索平台;2)使用searchInfoService执行搜索;3)通过backgroundAgent生成结构化研究结果。
2025-08-29 14:50:49
618
原创 spring-ai-alibaba-deepresearch 学习(四)——源码学习之RagNode
本文分析了用户文件检索节点(user_file_rag)的实现逻辑及存在问题。当用户上传文件标识为true时,系统调用hyBridRagProcessor进行检索处理,但存在两个主要问题:1)重复处理前序节点已完成的查询优化;2)未正确区分数据源导致重复检索。处理流程为:获取用户查询→hyBridRagProcessor处理→ragAgent调用大模型生成响应。当前实现由于配置问题,hyBridRagProcessor总是启用,且未有效利用前序优化结果。建议使用时自行优化该节点逻辑,避免资源浪费。
2025-08-28 11:07:52
1187
原创 spring-ai-alibaba-deepresearch 学习(三)——源码学习之RewriteAndMultiQueryNode
本文分析了spring-ai-alibaba-deepsearch中的RewriteAndMultiQueryNode节点功能。该节点在CoordinatorNode分类后接管处理,主要完成查询重写和扩展功能:1)通过查询转换器重写原始查询;2)默认生成3个扩展查询(可配置范围0-5);3)根据用户是否上传文件决定下一处理节点。核心流程包括查询转换、扩展生成及路由判断,最终将优化后的查询存入OverAllState的optimize_queries中。文末附有apply方法源码,展示了具体实现逻辑。
2025-08-23 09:00:00
244
原创 spring-ai-alibaba-deepresearch 学习(二)——源码学习之CoordinatorNode
本文分析了Spring AI Alibaba项目中CoordinatorNode调度节点的核心功能。该节点作为deepResearch流程的入口,负责对用户请求进行分类处理。其工作流程包括:添加预设提示词、历史报告和用户提问,通过大模型判断请求类型(问候/闲聊/研究问题)。研究类问题会触发handoff_to_planner工具调用并进入下一节点,而其他情况则直接结束流程。文章特别指出,虽然设计上支持获取更多上下文,但因缺乏读取历史聊天记录机制,实际无法将补充信息传递至后续节点。
2025-08-22 14:27:50
664
原创 spring-ai-alibaba-deepresearch 学习(一)——概览
Spring AI Alibaba DeepResearch是基于Spring AI Alibaba Graph构建的深度研究应用,支持多智能体、工具调用和RAG知识库等功能,可生成专业研究报告。该项目采用Graph设计理念,通过节点编排实现复杂流程,适用于金融研究等领域。系统整合了Web搜索、知识检索等能力,整体架构遵循RAG模式,各功能节点协同工作完成深度分析任务。
2025-08-22 10:06:45
489
原创 spring-ai-alibaba 1.0.0.3 发布了
摘要:Spring AI Alibaba 1.0.0.3版本发布,主要更新包括:新增多个工具包(如阿里云智能搜索、谷歌学术、维基百科等)、文档读取器、向量存储和聊天记忆组件;部分包更名优化;移除Bing搜索和Nacos2相关包;核心功能增强视频生成、音频解析等AI能力,并改进文本分割和检索功能。该版本还涉及多个内部项目的优化调整,整体改动较大,开发者可下载体验新特性。
2025-08-18 14:46:46
1118
原创 Milnus 基础学习
摘要:向量存储是AI领域用于语义检索的核心技术,通过高维向量表示文本语义。相似性度量常用余弦相似度、欧氏距离等算法。主流索引包括IVF(聚类分簇)、HNSW(多层图结构)等,各有特点。性能优化需定期重建索引、调整参数。Milvus采用分布式架构,包含数据节点、索引节点等组件,通过消息队列实现通信协同。
2025-08-17 06:26:46
405
原创 spring-ai-alibaba 学习(二十六)——graph总结
Graph是一种用于处理复杂流程的框架,它将业务逻辑封装为节点,通过有向边连接节点来定义执行顺序,支持条件判断、并行处理、子图嵌套等特性。适用于需要处理非线性流程、异常恢复、人工介入等场景,并提供可视化流程图导出功能。开发者只需定义节点逻辑和流程图结构,Graph框架会处理合法性检查、状态保存等任务。该框架包含核心模块和示例代码,可帮助快速构建复杂AI应用。
2025-08-16 16:18:14
986
原创 spring-ai-alibaba 学习(二十五)——graph之内置节点
本文介绍了spring-ai-alibaba-graph框架的内置节点功能,重点讲解了LlmNode和ToolNode两种常用节点的使用方式。LlmNode用于调用大语言模型,支持模板渲染、拦截器等功能;ToolNode用于调用工具,包含工具匹配和执行流程。文章还列举了其他内置节点类型,如HttpNode、HumanNode等,为开发者提供了开箱即用的AI流程构建能力。
2025-08-15 16:04:46
874
原创 spring-ai-alibaba 学习(二十四)——graph之监听器
摘要:通过自定义GraphLifecycleListener监听器,可以在图执行过程中实现扩展操作。监听器支持5种事件(onStart/onComplete/onError/before/after),在编译时通过CompileConfig注册。事件处理由AsyncNodeGenerator触发,LifeListenerUtil按后进先出顺序调用对应监听器方法。
2025-08-15 10:15:30
386
原创 spring-ai-alibaba 学习(二十三)——graph之可视化
Spring AI Alibaba Graph 提供了两种可视化方式,可将 StateGraph 或 CompiledGraph 转换为 PlantUML 或 Mermaid 的图形代码。通过 getGraph 方法传入 PLANTUML 或 MERMAID 类型参数,即可获取对应的流程图代码。示例展示了包含多节点分支的图形生成过程,并支持自定义图生成器,开发者只需继承 DiagramGenerator 接口并实现关键方法即可扩展新的图形格式。该功能简化了复杂流程的可视化展示,便于开发者直观理解程序逻辑结构
2025-08-14 19:30:00
590
原创 spring-ai-alibaba 学习(二十二)——graph之人工介入
摘要:大模型运行中需人工介入时,可通过配置中断实现。在CompileConfig中设置interruptsBefore/After指定节点,系统执行到该节点时将暂停。人工操作后,将反馈封装为HumanFeedback,调用resume方法恢复运行。原理基于检查点机制:中断时保存状态,恢复时读取检查点并注入人工反馈,继续后续流程。resume方法会获取最新检查点重建状态,AsyncNodeAction则区分新建/恢复两种场景处理流程。
2025-08-14 15:06:42
518
原创 spring-ai-alibaba 之 graph 槽点
本文分析了spring-ai-alibaba-graph-core框架在函数式编程实现上的问题。作者指出该框架直接移植Python的langgraph设计,过度使用函数式编程而忽视了Java的面向对象特性,导致代码结构复杂且不符合Java开发习惯。具体表现为:1)需要多层封装来模拟Python的函数特性;2)滥用CompletableFuture却未真正实现异步;3)缺乏统一的抽象模型;4)调用链过深且钩子函数隐蔽。作者建议采用更具Java特色的接口设计,并提出简化异步处理的方案。文章认为当前实现增加了理解
2025-08-03 21:29:05
714
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅