Spring AI Alibaba 1.0 正式版体验:Java 搞 AI Agent,终于不用羡慕 Python 了

7 阅读1分钟

写了六年 Java,看 Python 那边 LangChain、CrewAI 玩得风生水起,说不酸是假的。

每次想用 Java 搞点 AI 的活儿,不是在对接 HTTP 接口就是在手撸 JSON,体验感约等于零。Spring AI 之前一直是 M 版本(里程碑版),API 三天两头变,谁敢用到生产?

这周 Spring AI Alibaba 1.0 GA 正式发布了,Java 智能体开发终于有了一个"正式版"。忍不住上手试了一圈,说说我的真实感受。

先说结论

值得关注,但别急着 all in。

Spring AI Alibaba 1.0 GA 的完成度比我预期高不少。ChatClient、Tool Calling、Memory、MCP 支持都有了,而且还发布了三个开箱即用的 Agent 产品(JManus、NL2SQL、DeepResearch),诚意很足。

但——生态还在早期,踩坑是必然的。

几个让我眼前一亮的点

1. ChatClient 终于像样了

Spring AI 的 ChatClient 设计思路跟 WebClient 很像,链式调用,挂载 Tools、Memory、RAG 都很自然:

chatClient.prompt("帮我总结这篇文章")
    .tools(webSearchTool)
    .advisors(memoryAdvisor)
    .call()

不用再手动拼 messages 数组了,这才是 Java 开发者该有的体验。

2. MCP 分布式部署

这个是 Spring AI Alibaba 特有的。通过 Nacos MCP Registry,可以实现 MCP Server 的分布式部署和负载均衡调用。对于已有的 Spring Cloud / Dubbo 微服务,号称可以零代码改造直接变成 MCP Server。

想想看:你现有的几十个微服务,突然都能被 AI Agent 调用了。这个想象空间挺大的。

3. JManus — Java 版的 OpenManus

这个最让我惊喜。JManus 是个通用 Agent 平台,给它一个任务描述,它会自动规划步骤、调用工具、执行任务。

我试了让它"搜索最近一周的 AI 新闻并生成摘要",它自动拆解成了:搜索 - 提取内容 - 归类 - 生成摘要 四个步骤,全程不用我干预。

效果嘛...大概能打 70 分。复杂任务偶尔会迷路,但作为 1.0 版本,已经超出预期了。

踩坑记录(重点来了)

坑 1:模型选择被局限

默认绑定通义千问(DashScope),想换其他模型得自己折腾。如果你只用千问系列倒还好,但实际项目中经常需要混合用不同模型——代码生成用 Claude、长文总结用 Gemini、日常对话用 GPT。

我的方案:用 OpenAI 兼容接口接入聚合平台,一个 endpoint 切换不同模型。Spring AI 本身支持 OpenAI 格式,改下 base-url 和 api-key 就行,比单独对接每家 API 省太多事了。

配置大概长这样:

spring:
  ai:
    openai:
      base-url: https://api.ofox.ai/v1
      api-key: your-key
      chat:
        options:
          model: anthropic/claude-sonnet-4-20250514

这样就能在 Spring AI 里直接用上 Claude、GPT、Gemini 等各家模型,不用改一行业务代码。国内直连,延迟也还 OK。

坑 2:Memory 持久化

默认的 Memory 实现是内存级的,重启就没了。生产环境得自己实现持久化,目前社区方案不多,大部分人用 Redis 或者 PostgreSQL 自己搞。

坑 3:Tool Calling 的类型映射

Java 的强类型在这里变成了双刃剑。定义 Tool 的参数和返回值时,JSON 和 Java 对象之间的转换偶尔会出幺蛾子,特别是嵌套对象和泛型的场景。

建议:Tool 的入参和出参尽量用简单类型或者 Map,别搞复杂的嵌套 DTO,省得跟序列化较劲。

跟 Python 生态比呢?

说句公道话:

维度Spring AI AlibabaPython(LangChain 等)
上手难度中等(需要 Spring 基础)低(pip install 开箱即用)
企业级能力强(天生带分布式、监控)弱(得自己搭)
模型支持DashScope 为主 + OpenAI 兼容全家桶
Agent 框架JManus(新)CrewAI/AutoGen(成熟)
社区活跃度还在建设中非常活跃

一句话总结:个人项目 / 快速验证选 Python,企业级 Java 项目上 AI 能力选 Spring AI。

我的建议

  1. 如果你是 Java 技术栈,现在可以开始学习和尝试了,1.0 GA 意味着 API 基本稳定不会大改
  2. 如果你需要多模型能力,别只绑定 DashScope,通过 OpenAI 兼容接口接入聚合平台是更灵活的方案
  3. 如果你想做生产级 Agent,关注 JManus 的发展,但目前建议用在内部工具场景,别急着面向 C 端
  4. MCP 分布式这个方向很有意思,如果你们公司有大量微服务,可以认真研究一下

Java 开发终于不用在 AI 浪潮面前干瞪眼了。虽然 Spring AI 还在早期,但方向是对的,势头是好的。

至少现在写 Java 的时候,可以理直气壮地说一句:我们也能搞 Agent。

(就是搞完之后,还是得用 Python 写个脚本来测试... 🤫)