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

举报
golang学习记 发表于 2026/02/22 11:49:08 2026/02/22
【摘要】 近日,Spring团队正式发布了Spring AI 1.1版本,这是自该项目成立以来的一个重要里程碑。Spring AI作为一个旨在简化AI应用开发的框架,在1.1版本中带来了多项重磅更新,从功能增强到性能优化,全方位提升了开发者的使用体验。 1️⃣ 🧰 Model Context Protocol(MCP)—— 统一 AI 工具/资源/提示注册一句话:用注解一键暴露工具(Tool)、资源...

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

image.png


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

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

✅ 代码示例

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)

@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

@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 聊天 + 语音输出

// 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

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)

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)增强系统

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。