2025年Spring AI 1.0 GA正式发布,到如今全面拥抱Agent工程,Spring AI已成为Java开发者构建企业级AI应用的首选框架-4。
大模型浪潮席卷全球的这几年,Python开发者有LangChain,JavaScript开发者有各种AI SDK。Java开发者呢?一直缺少一个官方的、统一的答案。直到Spring官方出手,Spring AI的出现补上了这个缺口。
Spring AI的核心理念:将企业的“数据”和“API”与“AI模型”连接起来,所有主流AI模型的API被统一成了一致的高层抽象-1-4-7。
你只需学会一套接口,就能调用OpenAI、阿里云通义千问、DeepSeek、Claude等不同模型。切换模型?改个配置文件就行。这就是Spring AI的魅力——它不是一个简单的“AI SDK”,而是一套完整的AI应用开发框架-10。
Spring AI是Spring官方在2024年推出的AI开发框架,它将Spring的设计原则——可移植性、模块化设计和POJO编程模型——应用到了AI工程领域-4-10。
如果把LangChain比作Python世界的AI应用“瑞士军刀”,那么Spring AI就是Java世界的“Spring式”AI开发底座。它继承了Spring Boot“约定大于配置”的基因,让AI能力的集成变得像添加一个普通的Starter一样简单-5。
Spring AI覆盖了企业级AI应用的主流需求-4-7-10:
如果你已是Spring Boot开发者,集成AI能力真的只需要三步-5。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.0</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Spring AI OpenAI Starter -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>注:DeepSeek采用与OpenAI完全兼容的API规范,可以直接复用OpenAI客户端实现-5。
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY} # 使用环境变量,切勿硬编码
base-url: https://api.deepseek.com # 兼容OpenAI API的端点
chat:
model: deepseek-chatimport org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ChatController {
private final ChatClient chatClient;
public ChatController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
}
@GetMapping("/chat")
public String chat() {
return chatClient.prompt()
.user("Tell me an interesting fact about Java")
.call()
.content();
}
}就这么简单。注入ChatClient,调个prompt,拿到结果-8。如果没有Spring AI,你可能要手动处理HTTP请求、JSON序列化、错误重试、流式响应……代码量翻几倍。
ChatClient提供了流畅的DSL API,是Spring AI官方推荐的主要交互方式-4-7。它与WebClient、RestClient等Spring经典API风格一致。
对比直接使用ChatModel,ChatClient的优势明显:
特性 | ChatModel | ChatClient |
|---|---|---|
API复杂度 | 高(需手动构建Prompt) | 低(流式DSL) |
Advisor支持 | ❌ 不支持 | ✅ 内置支持 |
记忆管理 | 需手动实现 | ✅ 自动会话记忆 |
流式响应 | 需额外封装 | ✅ 一行代码开启 |
Advisor是Spring AI的一个核心设计,它封装了常见的生成式AI模式——在调用模型前后对数据进行转换和增强-7-10。
// 开启会话记忆——让AI记住对话上下文
String response = chatClient.prompt()
.user("我的名字是张三")
.advisors(new PromptChatMemoryAdvisor(chatMemory))
.call()
.content();
// 第二次调用,AI能记住之前说过的话
String response2 = chatClient.prompt()
.user("我叫什么名字?")
.advisors(new PromptChatMemoryAdvisor(chatMemory))
.call()
.content(); // 返回:你叫张三Advisor的插拔式设计让开发者可以在不修改核心业务逻辑的情况下,对模型的输入输出进行灵活定制——提示词改写、安全过滤、日志记录、记忆管理都可以通过Advisor实现-4-10。
Tool Calling(函数调用)是Agent能力的核心。Spring AI通过@Tool注解让模型能够调用Java方法,与外部系统交互-1-4。
import org.springframework.ai.tool.annotation.Tool;
@Service
public class WeatherService {
@Tool(description = "获取指定城市的实时天气")
public String getWeather(String city) {
// 实际调用天气API
return city + ":晴,25°C";
}
}
// 在Controller中注入并使用
@RestController
public class AgentController {
private final ChatClient chatClient;
public AgentController(ChatClient.Builder builder, WeatherService weatherService) {
this.chatClient = builder
.defaultTools(weatherService) // 注册工具
.build();
}
@GetMapping("/weather-agent")
public String askWeather() {
return chatClient.prompt()
.user("北京今天天气怎么样?")
.call()
.content(); // 模型自动判断需要调用getWeather工具
}
}Spring AI提供了统一的向量存储抽象层,支持PGVector、Milvus、Redis、Chroma等主流向量数据库-1-4-7。
通过QuestionAnswerAdvisor,RAG能力可以一行代码开启-4:
@GetMapping("/rag")
public String ragQuery(@RequestParam String question) {
return chatClient.prompt()
.user(question)
.advisors(new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()))
.call()
.content();
}Spring AI 2.0已于2026年6月正式发布GA版本,标志着框架从“让Java调用大模型”走向“让Java构建Agent应用”的新阶段-12。
关键升级:
ToolCallingAdvisor成为标准方式-3-9entity()调用中配置输出格式和校验-3Spring AI 2.0基于Spring Boot 4.1和Spring Framework 7,最低要求Java 21-3-12。
Spring AI的价值,不是提供一个“能调大模型的API”,而是让Java开发者能用Spring的方式做AI应用开发。它把模型切换、工具调用、记忆管理、RAG这些复杂的事情封装成了熟悉的Spring模式。
对于已经在Spring技术栈上投入的企业,Spring AI几乎是零成本的AI能力升级路径——不用换技术栈,不用重新培训团队,用Spring的方式写AI应用。
对于开发者而言,Spring AI正在成为Java开发者的“AI标配”。无论是给现有系统加上AI能力,还是从零开始搭建RAG知识库或Agent应用,Spring AI都值得你认真了解-4。
未来的竞争,不在于“会不会调API”,而在于“能不能把AI能力融入业务”。Spring AI,就是Java开发者抓住这波机会的桥梁。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。