Embabel 1.5:把 AI Agent 示例应用升级到 Spring Boot 4.x / Spring AI 2.x
前两篇用 Embabel 1.0(面向 Spring Boot 3.x / Spring AI 1.x)开发并跑通了示例应用。Embabel 团队最近发布 1.5,支持 Spring Boot 4.x / Spring AI 2.x。这篇是迁移过程——对这个用例而言,简单得出奇。
第一步:pom.xml 声明版本
<properties>
<java.version>25</java.version>
<embabel-agent.version>1.5.1</embabel-agent.version>
</properties>
注意用的是 1.5.1 而非 1.5.0。作者在 1.5.0 上遇到了 Amazon Bedrock Converse API 的具体问题:BedrockOptionsConverter 创建了泛型 ToolCallingChatOptions,而 Spring AI 2.0 的 BedrockProxyChatModel 期望 BedrockChatOptions 并按此强转请求选项,导致:
ClassCastException: DefaultToolCallingChatOptions cannot be cast to BedrockChatOptions
Embabel 团队在 1.5.1 修掉了这个问题。
第二步:声明 Jackson 3 mapper Bean
Spring Boot 4.x / Spring AI 2.x 默认使用 Jackson 3,需要在主应用类里声明一个 Jackson 3 的 JsonMapper Spring Bean:
@Bean
public JsonMapper objectMapper() {
return new tools.jackson.databind.json.JsonMapper();
}
仅此而已。编译、启动、与示例应用交互的方式与前两篇完全一致。
实践建议
- 框架升级时先查补丁版本:1.5.0 撞上 Bedrock Converse 的
ClassCastException,1.5.1 修复——大版本迁移不要停在.0; - Spring Boot 4.x 换 Jackson 3 后,显式声明
JsonMapperBean 是常见落地步骤; - 依赖 Bedrock Converse API 的 Spring AI 应用,升级后优先跑一次工具调用路径验证选项转换。
来源:Building AI Agents with Embabel, Spring AI and Amazon Bedrock AgentCore - Part 4 - DEV Community