一套代码,同时搞定 RAG 问答、工具调用、多 Agent 协作 —— 不需要学 Python,不需要重写整个技术栈。


一、Java 开发者的 AI 焦虑

过去两年,AI 圈几乎被 Python 垄断。LangChain、LlamaIndex、CrewAI……全是 Python 生态。

Java 开发者普遍面临三个问题:

  1. "我会 Spring Boot,但 AI 项目全是 Python,我是不是被时代抛下了?"

  2. "公司技术栈是 Java,引入 Python 微服务成本太高,怎么在现有架构里加 AI?"

  3. "市面上的 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 技术栈:Spring Boot 3.x / Spring AI / PGVector / MCP / DeepSeek 标签Spring AI AI Agent RAG Knowledge Base Tool Calling MCP Protocol Java AI Framework Enterprise Agent

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐