- 博客(832)
- 收藏
- 关注
原创 Spring AI Alibaba 1.x 系列【8】Agent 执行结果:NodeOutput
NodeOutput 从字面上就很好理解,图中每个节点执行后的输出包装器。
2026-04-09 15:29:16
1
原创 Spring AI Alibaba 1.x 系列【7】Agent 执行结果:AssistantMessage & OverAllState
AssistantMessage 是 Spring AI 定义的助手消息类型,表示大语言模型生成的响应内容(包括纯文本回复、工具调用、结构化输出等)。
2026-04-09 15:28:33
原创 Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
上一篇我们深度解析了 ReactAgent 构建器(Builder/DefaultBuilder)的源码逻辑,完成 Agent 实例化后,核心就是通过执行方法触发智能体的推理-行动-观察闭环。
2026-04-08 14:26:52
378
原创 Spring AI Alibaba 1.x 系列【5】ReactAgent 构建器深度源码解析
ReactAgent 是 Spring AI Alibaba 中具备自主决策、工具调用能力的核心组件,其内部涉及大量配置项,比如大语言模型(LLM)配置、工具集合、钩子(Hook)与拦截器、日志与监控、异步执行策略等。
2026-04-08 11:38:23
262
原创 Spring AI 1.x 系列【26】结构化输出执行流程
构造方法中会初始化多个清理器,用于在解析 LLM 响应文本之前,对文本进行清理预处理,处理不同 AI 模型的各种响应格式和模式。
2026-04-07 15:49:54
328
原创 Spring AI 1.x 系列【24】结构化输出 API
Spring AI 结构化输出转换器用于将 LLM 输出转换为结构化格式,方便开发者快速将 AI 模型的结果转换成可被其他应用函数和方法使用的数据类型,例如 JSON、XML 或 Java 类。
2026-04-07 15:44:26
368
原创 Spring AI 1.x 系列【23】工具配置详解(全局默认+运行时动态)
全局默认工具:应用级生命周期,是在构建 ChatClient 时使用 defaultTool 相关方法传入的工具,应用关闭时销毁;运行时动态工具:请求/会话级生命周期,是在使用 call/stream 时使用 tool 相关方法传入的工具,请求结束后由GC回收。
2026-04-03 15:34:49
481
原创 Spring AI 1.x 系列【22】深度拆解 ToolCallbackProvider 生命周期与调用链路
在上篇文档中,我们通过自定义的 ToolCallbackProvider 实现了从文件动态加载工具,有必要深入了解一下 Provider 的加载和执行流程,便于我们在实际项目中更好地扩展和定制工具注册机制。
2026-04-02 17:31:33
627
1
原创 Spring AI 1.x 系列【21】ToolCallbackProvider 动态工具集成
在之前我们学习了创建方法型、函数型工具的多种方式,以及通过 ChatClient 进行全局默认、运行时动态配置,也了解了工具执行和解析的核心流程和源码。以上都是在代码中直接定义工具,属于本地硬编码式的工具集成方案——无论是基于 @Tool 注解的业务方法封装、函数式接口实现的工具 Bean,还是手动构建的 ToolCallback 实例,所有工具的定义、逻辑、注册都与应用代码强耦合,必须随项目一起编译、部署、重启才能生效。
2026-04-02 11:19:34
557
原创 Spring AI 1.x 系列【20】工具解析器和可观测性
AI 模型需要调用工具时,只会告诉你:我要调用 getCustomerInfo 这个工具。Spring AI 必须通过工具解析器,找到这个名字对应的具体工具实现,才能执行。
2026-03-30 13:39:52
396
原创 Spring AI 1.x 系列【19】工具执行生命周期与核心组件设计
Spring AI 工具执行(Tool Execution)就是用 AI 模型传过来的参数,调用具体的工具方法,执行业务逻辑并返回结果的过程。
2026-03-30 10:56:37
392
原创 Spring AI 1.x 系列【18】深入了解更多的工具规范底层组件
在 Spring AI 中,工具通过 ToolCallback 接口进行建模。在前面的章节中,我们已经了解了如何借助 Spring AI 提供的内置支持,从方法和函数定义工具。本章将深入讲解工具规范,以及如何对其进行自定义与扩展,以支持更多使用场景。
2026-03-27 15:53:59
360
原创 Spring AI 1.x 系列【17】函数型工具开发与使用
除了方法型工具外,Spring AI 也支持将「函数」定义为可被 AI 调用的工具,有两种实现方式:通过底层的 FunctionToolCallback 实现类编程式定义。通过 @Bean 注解将函数声明为的 Spring 组件,在运行时通过解析器动态解析。
2026-03-27 15:30:25
322
原创 Spring AI 1.x 系列【16】方法型工具开发、注册与执行流程源码分析
将方法映射为 AI 可交互的工具,框架会自动处理「参数解析、方法执行、结果封装」等底层逻辑,只需聚焦方法本身的业务逻辑。主要分为两种实现形式:声明式定义:通过 @Tool 注解直接标记 Spring 管理的类中的方法,框架会自动扫描并注册该方法为 AI 工具,无需手动编写注册逻辑。编程式定义:通过实现 MethodToolCallback 接口,手动编写工具的名称、描述、参数规则、方法执行逻辑等,适合需要自定义工具注册流程的场景。
2026-03-27 15:26:50
512
原创 Spring AI 1.x 系列【15】AI Agent 基石:Tool Calling 标准与 Spring AI 集成
工具调用(Tool Calling)允许 AI 模型 调用外部函数和 API,极大扩展了智能体的能力边界,使其能够执行具体操作和获取实时数据。解决幻觉、知识滞后、无法操作现实世界的问题,是大模型从对话走向实用化、工程化、智能化的核心技术,也是 AI Agent 能够自主完成复杂任务的基础。
2026-03-27 14:56:26
579
原创 Spring AI 1.x 系列【14】三月双版本连发!Spring AI 最新功能全掌握
在之前的版本中,我们使用的 Spring AI 1.1.2 版本 ,在 26 年三月份,Spring 连续发布了两个版本,下面一起来看下新版本有哪些更新,后续本系列专栏会使用最新的 1.1.4 版。
2026-03-27 10:38:18
377
原创 Spring AI 1.x 系列【13】Advisors API:递归增强器
递归增强器(Recursive Advisors)是一类 特殊的增强器,它可以多次循环执行下游的增强器链。简单来说,就是在链中嵌入一个可循环的子流程,通过条件判断控制是否重复调用模型和后续增强器。
2026-03-26 09:11:41
396
原创 Spring AI 1.x 系列【12】Advisors API:AI 交互拦截增强
Advisors API 是 Spring AI 提供的核心扩展机制,本质是「AI 交互的拦截器 / 增强器」,它能在 ChatClient 与大模型(LLM)的交互全链路中(调用前 / 调用后)插入自定义逻辑,实现对请求 / 响应的拦截、修改、增强,最终让开发者无需重复编写通用 AI 逻辑,快速构建复杂、可复用、易维护的 AI 组件。
2026-03-25 10:32:21
880
原创 Spring AI 1.x 系列【11】基于 PromptTemplate 构建一站式 AI 写作助手
PromptTemplate(提示词模板) 是指预定义了固定文本结构和核心逻辑,同时预留动态占位符的提示词 文本。你可以将不同的动态参数填充到占位符中,快速生成符合业务需求的个性化提示词,无需重复编写固定的提示词话术。
2026-03-25 09:11:56
588
原创 Spring AI Alibaba 1.x 系列【4】ReAct 范式与 ReactAgent 核心设计
Spring AI 使用 ChatClient 进行模型交互,在 SSA 中用的是 ReactAgent ,一个是客户端对象,一个是 React 智能体对象,那么 ReactAgent 到底是啥呢?
2026-03-24 16:32:25
590
原创 Spring AI Alibaba 1.x 系列【2】架构、特性与生产级演示案例
面向 Java 开发者的 AI 智能体开发框架,基于 DAG 图的核心概念,Spring Al Alibaba (简称 SAA )可以轻松实现单个智能体、多智能体和复杂工作流编排。
2026-03-20 16:23:31
535
原创 Spring AI Alibaba 1.x 系列【1】阿里巴巴 AI 生态
2024 年 9 月,基于 Spring AI 进一步向上做了抽象和功能增强,阿里开源了 Spring AI Alibaba,希望借助本地化服务、阿里巴巴的实践经验积累,以较快的演进节奏和国内活跃的贡献者社区,更好的服务 Java 开发者。
2026-03-20 16:23:02
532
原创 Spring AI 1.x 系列【10】深入响应结果对象
响应,就是模型根据你的输入,通过理解、推理、生成,给出的一段结构化 / 非结构化输出,本质是基于海量数据学到的语言 / 知识规律,自动生成的合理内容。
2026-03-06 16:41:24
553
原创 Spring AI 1.x 系列【9】ChatOptions 配置解析
ModelOptions 是 Spring AI 框架中所有模型配置项的「根接口」,它定义了所有 AI 模型(不管是聊天模型、文本生成模型、嵌入模型)配置参数的通用规范。
2026-03-06 16:39:34
455
原创 Spring AI 1.x 系列【8】提示词、消息对象
这里直接传入了字符串,只适用于简单的文本生成任务,在稍加复杂的场景中,可以通过 Prompt、Message 构建多样的模型输入,实现各种功能。
2026-03-04 20:25:18
617
原创 Spring AI 1.x 系列【7】提示词 API
提示词(Prompt)是用来引导 AI 模型生成特定输出的输入内容,这些提示词的设计与措辞会显著影响模型的回复。AI 模型本身没有 “理解” 能力,它是根据你提供的提示词来生成内容的。提示词写得越清晰、具体,AI 的回答就越精准、越符合你的预期。
2026-03-04 20:22:36
456
原创 Spring AI 1.x 系列【6】集成 DeepSeek + 智谱 GLM,实现多模型一键切换的 AI 聊天助手
从零搭建一套 AI 聊天助手,基于 Spring AI 同时集成 DeepSeek 和 智普 GLM 两大主流模型,实现前端一键切换模型、流式对话等完整功能。
2026-03-03 11:35:31
1473
原创 Spring AI 1.x 系列【5】对话客户端(ChatClient )
ChatClient 是构建在 ChatModel 之上的高层接口,是大语言模型(LLM)交互的统一入口,支持 Tool、RAG、Memory、Advisor 等高级功能。
2026-03-03 11:35:01
869
原创 Spring AI 1.x 系列【4】ChatModel、StreamingChatModel
本文分析了Spring AI框架中ChatModel和StreamingChatModel的核心设计。ChatModel提供了三个层次的重载call方法,从最简单的字符串输入到完整的Prompt配置,满足不同场景需求。StreamingChatModel则针对流式响应场景,提供异步非阻塞的增量结果消费能力。两者通过抽象接口统一了不同AI服务的交互方式,类似JDBC对数据库操作的封装,使开发者能够以一致API对接不同大模型厂商。文章详细解析了各方法的使用场景和代码示例,展示了Spring AI如何简化AI模型
2026-03-02 11:31:58
998
原创 Spring AI 1.x 系列【3】对话模型 API
Spring 提供了一套标准化 AI 开发接口,对各大 AI 厂商的 AI 能力做了统一封装,涵盖了丰富的功能模块,为便于整体了解,以下列出一些核心功能,后续会再单独详细介绍。
2026-03-02 11:31:06
807
原创 Spring AI 1.x 系列【2】入门案例
本文介绍了使用Spring AI集成DeepSeek大模型的开发过程。首先明确了环境要求:JDK 17-25、Maven 3.6.3+和Spring Boot 3.5.11。然后创建了Spring Boot项目工程,通过父POM管理依赖版本。接着详细说明了获取DeepSeek API密钥的步骤,并展示了如何引入spring-ai-starter-model-deepseek依赖。最后演示了配置DeepSeek连接信息、创建对话客户端以及测试对话功能的完整流程,成功实现了与大模型的交互。
2026-02-28 15:17:13
696
原创 Spring AI 1.x 系列【1】简介
2022 年底, AI 浪潮来袭,作为 Java 领域的带头大哥,VMware Inc (Spring 团队) 也启动了 Spring AI 项目,旨在为 Java 生态提供标准化的 AI 集成方案。
2026-02-28 15:06:14
634
原创 NumPy 2.x 完全指南【四十五】离散傅里叶变换函数
傅里叶变换的基本思想首先由傅里叶提出,所以以其名字来命名以示纪念。从现代数学的眼光来看,傅里叶变换是一种特殊的积分变换。它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。
2025-11-18 16:04:51
1198
原创 NumPy 2.x 完全指南【四十四】深度学习中的张量
张量 (Tensor)的表现形式和应用方式会因研究领域和对象的不同而产生差异。不同于数学、物理中复杂的理论和公式,深度学习中张量剥离了复杂的变换规则与几何意义,主要应用于数据的高效表示与计算,可理解为多维数组。具有任意的维度,如一维、二维、三维等。在 Numpy 中,张量就是使用 numpy.ndarray(N维数组)对象表示。————————————————版权声明:本文为CSDN博主「墨 禹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https:/
2025-11-18 13:47:10
698
原创 NumPy 2.x 完全指南【四十三】线性代数之矩阵运算
说起矩阵(Matrix),很多人肯定会想到一部电影《黑客帝国》(The Matrix),如果有个戴墨镜的神秘的黑衣人,告诉你所生活的世界并不是真实的,而是由 0 和 1 组成的一个计算机程序(虚拟矩阵空间)。吞下蓝色药丸,你会忘记刚刚发生的一切,继续生活在虚幻中,吞下红色药丸,你会来到残酷的真实世界,你会怎么选?
2025-11-18 13:40:57
1222
原创 NumPy 2.x 完全指南【四十二】线性代数之向量运算
在数学中向量是重要和基本的概念之一,既是代数研究对象,也是几何研究对象,是沟通几何与代数的桥梁。一般在高二数学中,会学习平面向量(二维空间)或者空间向量(三维空间),在数学教材中的定义是,把既有大小又有方向的量叫做向量,只有大小没有方向的量称为数量。
2025-10-30 13:32:26
1189
原创 NumPy 2.x 完全指南【四十一】线性代数函数介绍
线性代数是数学中的一个分支,研究的是向量、矩阵以及线性方程组的性质和运算。它是高等数学中的基础工具之一,尤其在数据处理、优化算法、信号处理、图像识别等方面起着核心作用。在机器学习、计算机科学、物理学、经济学等多个领域都有广泛的应用。
2025-10-30 13:31:23
1030
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅