Java 开发者如何进入 AI Agent 时代:基于 Spring AI 的企业级 Agent 开发脚手架
一套代码,同时搞定 RAG 问答、工具调用、多 Agent 协作 —— 不需要学 Python,不需要重写整个技术栈。
一、Java 开发者的 AI 焦虑
过去两年,AI 圈几乎被 Python 垄断。LangChain、LlamaIndex、CrewAI……全是 Python 生态。
Java 开发者普遍面临三个问题:
-
"我会 Spring Boot,但 AI 项目全是 Python,我是不是被时代抛下了?"
-
"公司技术栈是 Java,引入 Python 微服务成本太高,怎么在现有架构里加 AI?"
-
"市面上的 AI Agent 教程全是 Python Demo,企业级落地怎么搞?"
答案是:Spring AI 已经来了,而且它比你想的更成熟。
二、为什么是 Spring AI?
Spring AI 是 Spring 官方推出的 AI 集成框架,定位类似于 Spring Data、Spring Security —— 不是你重新发明轮子,而是在你熟悉的 Spring 生态里加一块 AI 拼图。
核心能力一览
| 能力 | 说明 | 对标 Python |
|---|---|---|
| Chat Client | 统一调用 OpenAI / DeepSeek / 通义千问等 | LangChain ChatModel |
| RAG | 向量检索 + 知识库问答(PGVector / Redis / Milvus) | LlamaIndex / LangChain RAG |
| Tool Calling | Agent 自动调用你的 Java Bean 方法 | LangChain Tools |
| MCP 协议 | 标准化工具接入,跨语言互操作 | Anthropic MCP |
| Spring Boot 集成 | AutoConfiguration、YAML 配置、Actuator 监控 | ❌ Python 无等价物 |
最关键的优势:你现有的 Spring Boot 项目,加 3 个依赖就能变成 AI Agent。
三、十分钟上手:从 Spring Boot 到 AI Agent
3.1 添加依赖
<!-- pom.xml --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>1.0.0-M4</version> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-pgvector-store-spring-boot-starter</artifactId> <version>1.0.0-M4</version> </dependency>
3.2 配置 API Key
# application.yml
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY}
base-url: https://api.deepseek.com # 国内推荐 DeepSeek
chat:
options:
model: deepseek-chat
3.3 你的第一个 AI 接口
@RestController
public class AiController {
private final ChatClient chatClient;
public AiController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/ask")
public String ask(@RequestParam String question) {
return chatClient.prompt()
.user(question)
.call()
.content();
}
}
就这些。启动 Spring Boot,访问 /ask?question=什么是Spring AI,你已经有了一个 AI 对话接口。
四、进阶一:RAG 知识库 —— 让 AI 读懂你的企业文档
通用大模型不知道你公司的业务规则、不知道你的产品文档。RAG(Retrieval-Augmented Generation)就是解决方案。
架构
用户提问 → 向量检索(PGVector)→ 找到最相关文档片段 → 拼入 Prompt → LLM 生成回答(带引用来源)
关键代码
@Bean
public VectorStore vectorStore(JdbcTemplate jdbcTemplate) {
return new PgVectorStore(jdbcTemplate, PgVectorStoreConfig.builder()
.dimensions(1536) // OpenAI embedding 维度
.build());
}
// 导入知识库
public void importDocuments(List<Document> docs) {
vectorStore.add(docs);
}
// RAG 问答
@GetMapping("/rag-ask")
public String ragAsk(@RequestParam String question) {
// 1. 检索相关文档
List<Document> context = vectorStore.similaritySearch(
SearchRequest.query(question).withTopK(5));
// 2. 拼入 Prompt
String systemPrompt = """
你是企业知识助手。根据以下文档内容回答问题。
如果文档中没有相关信息,请明确说明。
参考文档:
%s
""".formatted(context.stream()
.map(Document::getContent)
.collect(Collectors.joining("\n---\n")));
// 3. 生成回答
return chatClient.prompt()
.system(systemPrompt)
.user(question)
.call()
.content();
}
效果:AI 能回答你企业的内部文档、产品手册、规章制度,而且每个回答都有来源可追溯。
五、进阶二:Tool Calling —— Agent 的核心能力
RAG 解决了"知识问答",但 AI Agent 真正的威力在于 "让 AI 帮你做事"。
场景:AI 帮你查订单、发邮件、调库存
@Component
public class OrderTools {
@Tool(description = "根据订单号查询订单状态")
public OrderStatus getOrderStatus(@ToolParam(description = "订单号") String orderId) {
return orderService.findByOrderId(orderId);
}
@Tool(description = "查询用户最近N笔订单")
public List<Order> getRecentOrders(
@ToolParam(description = "用户ID") Long userId,
@ToolParam(description = "查询数量,默认5") int limit) {
return orderService.findRecentOrders(userId, limit);
}
}
调用方式:
@GetMapping("/agent/order")
public String agentOrder(@RequestParam String question) {
return chatClient.prompt()
.user(question)
.tools(new OrderTools())
.call()
.content();
}
用户问:"帮我查一下 ORD-2024-08921 这个订单到哪了?"
Agent 自动识别 → 调用 getOrderStatus("ORD-2024-08921") → 返回结果拼入回答。
这就是 Agent —— 不是问答机器人,是能执行操作的智能体。
六、进阶三:MCP 协议 —— 企业级 Agent 的标准化之道
MCP(Model Context Protocol)是 Anthropic 推出的开放协议,目标是让 LLM 和外部工具之间的交互标准化。
为什么需要 MCP?
没有 MCP:每个大模型有自己的一套 Function Calling 格式 → N 个模型 × M 个工具 = N×M 种适配方案 有了 MCP:所有工具统一暴露为 MCP Server → 任何支持 MCP 的模型都能直接调用
Spring AI 中的 MCP 集成
spring:
ai:
mcp:
client:
enabled: true
servers:
database:
command: java
args: ["-jar", "mcp-database-server.jar"]
file-system:
command: python
args: ["-m", "mcp_server_filesystem", "/data"]
配置完,Agent 就能直接操作数据库、读写文件、调用企业内部 API —— 所有操作通过 MCP 标准化。
七、企业级落地:从 Demo 到生产
Demo 跑通只是开始。企业级 AI Agent 需要解决:
| 挑战 | 解决方案 |
|---|---|
| 安全 | API Key 加密存储、用户权限隔离、敏感数据脱敏 |
| 监控 | Spring Actuator + Micrometer 监控 Token 消耗、响应延迟 |
| 多租户 | 每个租户独立的知识库、独立的 API Key |
| 流式响应 | Flux<String> 流式返回 + SSE 推送 |
| 会话管理 | ConversationId + MessageHistory 多轮对话 |
| 多 Agent | Agent 编排(串行/并行)、任务分发、结果聚合 |
流式响应示例
@GetMapping(value = "/chat/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> streamChat(@RequestParam String question) {
return chatClient.prompt()
.user(question)
.stream()
.content();
}
前端直接用 EventSource 接收 SSE 流,用户体验和 ChatGPT 一样。
八、为什么要用脚手架?
你可能已经发现:把 RAG + Tool Calling + MCP + 多 Agent 全部集成到企业级项目里,代码量不小。
HH-SpringAI-Agent-Starter 就是为了解决这个问题 —— 一套脚手架代码,开箱即用:
-
✅ Spring Boot 3.x + Spring AI 集成
-
✅ PGVector 知识库(RAG 开箱可用)
-
✅ Tool Calling 示例(订单查询、邮件发送、文件操作)
-
✅ MCP Server/Client 配置模板
-
✅ 多 Agent 编排(串行/并行)
-
✅ 流式对话 + 会话管理
-
✅ Actuator 监控 + Token 统计
-
✅ Docker Compose 一键启动
git clone https://github.com/HH-SpringAI-Agent-Starter/hh-springai-agent-starter cd hh-springai-agent-starter docker-compose up -d # 启动 PostgreSQL + PGVector + Redis mvn spring-boot:run # 启动 Agent 服务
5 分钟,你就有了一套企业级 AI Agent 基础设施。
九、写在最后
Java 开发者在 AI 时代不需要焦虑。
你会的 Spring Boot、MyBatis、Redis、MQ、微服务体系……这些不是包袱,是企业级 AI 落地最稀缺的能力。
Python 开发者能快速写出 LangChain Demo,但把它变成 7×24 稳定运行、支持多租户、有完善的监控和权限体系的系统 —— 这才是 Java 开发者的护城河。
Spring AI 就是你的入场券。 🚀
🔗 延伸阅读
-
HH-SpringAI-Agent-Starter —— 本文配套脚手架
作者:HH-SpringAI-Agent-Starter 技术栈:Spring Boot 3.x / Spring AI / PGVector / MCP / DeepSeek 标签:
Spring AIAI AgentRAGKnowledge BaseTool CallingMCP ProtocolJava AI FrameworkEnterprise Agent
更多推荐



所有评论(0)