Spring AI 1.1 新特性详解:五大核心升级全面提升AI应用开发体验

近日,Spring团队正式发布了Spring AI 1.1版本,这是自该项目成立以来的一个重要里程碑。Spring AI作为一个旨在简化AI应用开发的框架,在1.1版本中带来了多项重磅更新,从功能增强到性能优化,全方位提升了开发者的使用体验。


1️⃣ 🧰 Model Context Protocol(MCP)------ 统一 AI 工具/资源/提示注册

一句话:用注解一键暴露工具(Tool)、资源(Resource)、提示模板(Prompt)给 LLM,实现"AI 可调用你的业务能力"。

✅ 代码示例

java 复制代码
import org.springframework.ai.mcp.annotation.*;

@Service
public class WeatherService {

    @McpTool(description = "Get current weather for a location")
    public String getCurrentWeather(String location) {
        return "Sunny, 22°C in " + location;
    }

    @McpResource(description = "Database schema of users table")
    public String getDatabaseSchema() {
        return """
               CREATE TABLE users (
                 id BIGINT,
                 name VARCHAR(100),
                 email VARCHAR(100)
               );
               """;
    }

    @McpPrompt(template = "Write a SQL query to {{intent}}")
    public String generateSqlQuery(@PromptVariable("intent") String userIntent) {
        return ""; // 实际由模板渲染
    }
}

🔧 启动后,MCP 服务自动注册这些能力,供 AI Agent 调用(支持 HTTP/gRPC/STDIO 多种传输)。

📌 适用场景:构建企业级 AI Agent(如客服机器人可查订单、调库存、连数据库)。


2️⃣ ⚡ Prompt Caching(提示缓存)------ 降本 90% + 加速响应

一句话:对重复/相似提示自动缓存,避免重复计算 token,支持 Anthropic & AWS Bedrock。

✅ 代码示例(Anthropic)

java 复制代码
@Autowired
private ChatClient chatClient;

public String askWithCache(String question) {
    var message = UserMessage.from(question)
        .withOption(AnthropicOptions.builder()
            .cacheControl(true) // ✅ 启用缓存
            .ttlMinutes(60)     // 缓存 1 小时
            .build());

    return chatClient.call(message).getResult().getOutput().getContent();
}

📌 效果

  • 相同提示 → 后续调用直接命中缓存
  • 成本下降最高 90%(Anthropic 官方数据)
  • 响应延迟降低 50%+

3️⃣ 🤖 Recursive Advisors(递归顾问)------ 构建自优化 AI Agent

一句话:让 AI Agent 能"自己审自己",通过多轮反思提升输出质量。

✅ 代码示例:自修正问答 Agent

java 复制代码
@Bean
public RecursiveAdvisor selfImprovingAdvisor(ChatClient chatClient) {
    return RecursiveAdvisor.builder()
        .chatClient(chatClient)
        .maxIterations(3) // 最多反思 3 次
        .feedbackPrompt("""
            Review the previous answer for accuracy and completeness.
            If it's sufficient, output [FINAL]: <answer>.
            Otherwise, improve it.
            Previous answer: {{output}}
            """)
        .build();
}

// 使用
String result = selfImprovingAdvisor.advise("Explain quantum entanglement simply");

🔍 输出可能为:

复制代码
Iteration 1: Quantum entanglement is when particles are linked...
Iteration 2: Let me clarify: even if separated, measuring one instantly affects the other...
[FINAL]: Quantum entanglement is a phenomenon where two particles become correlated so that...

📌 适用场景:高精度任务(法律咨询、医疗建议、代码生成审查)。


4️⃣ 🌐 新增模型支持:Google GenAI + ElevenLabs TTS

一句话:开箱即用接入 Google 最新模型 + 高质量语音合成。

✅ 代码示例:Google GenAI 聊天 + 语音输出

java 复制代码
// 1. 聊天(Google GenAI)
@Bean
public ChatModel googleChatModel(GoogleGenAiProperties props) {
    return new GoogleGenAiChatModel(props);
}

// 2. 文字转语音(ElevenLabs)
@Autowired
private TextToSpeechModel elevenLabsTts;

public InputStream textToSpeech(String text) {
    return elevenLabsTts.call(TextToSpeechPrompt.create(text));
}

🔧 配置 application.yml

yaml 复制代码
spring:
  ai:
    google:
      api-key: ${GOOGLE_API_KEY}
    elevenlabs:
      api-key: ${ELEVENLABS_API_KEY}
      voice-id: "21m00Tcm4TlvDq8ikWAM" # Rachel

📌 优势 :统一 TextToSpeechModel 接口,OpenAI / ElevenLabs 无缝切换。


5️⃣ 🧠 Reasoning Mode(推理模式)支持 ------ 获取模型"思考过程"

一句话:不只是答案,还能拿到模型的"解题步骤",用于调试/解释/评估。

✅ 代码示例(GLM/Zhipu)

java 复制代码
var options = ZhipuOptions.builder()
    .enableReasoning(true) // ✅ 启用推理模式
    .responseFormat("json") // 要求 JSON 输出
    .build();

var response = chatClient.call(
    new Prompt("Calculate 15% of 200, show steps", options)
);

// 获取推理链(如:Step 1 → Step 2 → Final Answer)
ReasoningContent reasoning = response.getMetadata()
    .get("reasoning", ReasoningContent.class);

System.out.println("Steps: " + reasoning.getSteps());
System.out.println("Final: " + reasoning.getFinalAnswer());

📌 适用场景

  • 教育类应用(展示解题过程)
  • 审计/合规(为什么模型这么答?)
  • 构建 CoT(Chain-of-Thought)增强系统

相关推荐
ujainu2 分钟前
CANN仓库中的AIGC可持续演进工程:昇腾AI软件栈如何构建“活”的开源生态
人工智能·开源·aigc
roman_日积跬步-终至千里12 分钟前
【LangGraph4j】LangGraph4j 核心概念与图编排原理
java·服务器·数据库
光锥智能14 分钟前
从连接机器到激活知识:探寻工业互联网深水区的山钢范式
人工智能
GHL28427109016 分钟前
分析式AI学习
人工智能·学习·ai编程
ujainu32 分钟前
CANN仓库中的AIGC性能极限挑战:昇腾软件栈如何榨干每一瓦算力
人工智能·开源
野犬寒鸦34 分钟前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
wenzhangli734 分钟前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
brave and determined35 分钟前
CANN ops-nn算子库使用教程:实现神经网络在NPU上的加速计算
人工智能·深度学习·神经网络
brave and determined35 分钟前
CANN算子开发基础框架opbase完全解析
人工智能
HalvmånEver37 分钟前
Linux:线程互斥
java·linux·运维