Spring AI 1.1 已经正式发布。这是 Spring AI 1.0 之后的第一个较大版本的升级。这次版本升级包含的内容比较多,这里进行一下具体的介绍。
最大的改进来自于对 MCP 的支持,具体包括如下内容:
Spring Boot 的自动配置功能。
使用注解来更方便地创建 MCP 中的不同实体和通知的处理器。
所集成的 MCP Java SDK 版本升级到了 0.16.0。
对 MCP 协议版本的支持升级到了最新的 2025-06-18,这也是服务器的默认版本。
在 stdio 和HTTP SSE 之上,增加了对 Streamable HTTP 的支持。
通过 Spring Boot starter 快速创建使用不同传输方式的 MCP 服务器和客户端。
使用注解创建 MCP 实体和通知的处理器,可以在一定程度上简化开发。比如,使用 McpTool 注解创建 MCP 工具。
@McpTool(description = "获取天气信息", annotations = @McpAnnotations( readOnlyHint = true ))public String getCurrentWeather( @ToolParam(description = "位置") String location) { return "%s 的天气很晴朗".formatted(location);}
使用 McpResource 注解创建资源。
@McpResource(uri = "sample.txt")public String sample() { return "Sample text";}
使用 McpPrompt 注解创建提示模板。
@McpPrompt(name = "generateSqlQuery", description = "生成 SQL 查询语句")public String generateSqlQuery( @McpArg(description = "数据库表的名称") String tableName) { return "生成 SQL 语句,查询数据库表 %s 中的前 10 行数据。使用 Postgres 语法。".formatted( tableName);}
ChatClient 增加了对于推理模型和思考模式的支持。这实际上包括两个层次:
第一个层次是在模型相关的 API 上增加了推理模型相关的参数以及模型返回的思考过程。
第二个层次是对不同的模型提供者实现该 API。
在 API 的层次上,新的参数出现在不同模型提供者的 ChatOptions 实现中。模型返回的思考过程出现在 AssistantMessage 的元数据中。实际使用的参数和元数据名称取决于模型提供者。
在 Ollama 中,启用思考模式的参数是 think。对应的值可以是 true、false、或字符串 low、medium 和 high。思考过程的元数据名称是 thinking。
在 OpenAI 中,使用参数 reasoningEffort 设置推理的复杂度,可选值有 low、medium 和 high。思考过程的元数据名称是 reasoningContent。
Advisor 是 Spring AI 中的一个重要功能,可以对发送给大模型的请求和大模型的响应进行处理。Advisor 组织成一个链条。Advisor 按照在链条中的顺序依次执行。Spring AI 1.1 之前,对于一个请求,Advisor 链条中的 Advisor 最多只会被执行一次。Spring AI 1.1 中引入了递归式 Advisor 的概念,允许 Advisor 链条中一部分 Advisor 被重复执行,这样可以实现复杂的智能体流程。比如,我之前介绍过的智能体模式评估者-优化者,其中的生成过程会重复多次。这种模式可以用递归式 Advisor 来实现。
从实现的层次来说,CallAdvisorChain 中新增了一个新的方法 copy,其作用是复制当前 CallAdvisorChain 中,从指定的 CallAdvisor 之后的其余 CallAdvisor,返回一个仅包含这些 CallAdvisor 的新链条。调用新的 CallAdvisorChain 的 nextCall 方法可以执行该链条。多次调用 nextCall 方法可以重复执行该链条。
public interface CallAdvisorChain extends AdvisorChain { // 创建一个新的 CallAdvisorChain CallAdvisorChain copy(CallAdvisor after);
}
在向量数据库方面,添加了一个新的 VectorStoreRetriever 接口。VectorStore 接口中的 similaritySearch 方法被单独提取出来,放到了新的 VectorStoreRetriever 接口中。VectorStore 改为继承自 VectorStoreRetriever。VectorStoreRetriever 只包含了对向量数据库的只读操作。如果你希望使用者只能查询向量数据库,可以对外返回 VectorStoreRetriever 接口。
public interface VectorStoreRetriever { List<Document> similaritySearch(SearchRequest request);
default List<Document> similaritySearch(String query) { return this.similaritySearch(SearchRequest.builder().query(query).build()); }}
提示缓存(Prompt Caching)可以节省开支并降低响应时间。很多 AI 服务已经提供了对提示缓存的支持。Spring AI 1.1 可以支持 Anthropic Claude 和 AWS Bedrock 的提示缓存。
除了上面介绍的这些,还有一些比较小的改动。
新的模型提供者,包括 Google GenAI 和 ElevenLabs。
新的模型,包括不同服务提供商推出的新模型,比如 OpenAI 的 GPT-5 系列等。
新的 Chat Memory 存储实现,包括 MongoDB,Oracle JDBC 和 Azure Cosmos DB。
以上就是 Spring AI 1.1 中的重要更新。
179

被折叠的 条评论
为什么被折叠?



