Spring之父再次出山,开发了新的AI框架! - 苏三说技术

文章目录

Spring之父再次出山,开发了新的AI框架! - 苏三说技术

最近这阵子,技术圈里有一个名字频繁出现在各种讨论中——Rod Johnson。 科技新闻。

Embabel整体架构图:

二十多年前,他写了一本书、做了一个框架,终结了EJB时代。

Sp背景与起因

这是个非常关键的问题。

如果你写过Spring,Embabel会让你感觉很亲切。

Embabel和Spring AI是不同层面的东西。

Sp事件经过

② Utility AI:每个Action由可配置的效用函数打分,每步执行得分最高的Action。在Stashbot(RAG文档助手)中,Utility AI模式让LLM自主决定何时以及如何搜索文档。

① GOAP(默认) :基于成本和价值计算最优Action序列,不用LLM做规划

4. 与Spring生态无缝集成 基于Spring Boot构建,Java/Kotlin开发者零学习成本接入。

Sp各方回应

Rod Johnson自己的定位更直接:“你可以在Java中构建比Python更好的Agent,JVM对于真实世界的生成式AI应用是更优选择。”

SpringSource被VMware收购后,Rod Johnson做了很多年董事会和投资的事情。直到2022年底ChatGPT的出现,让他重新坐不住了。

Embabel不是又一个“调用大模型的库” 。

Sp影响分析

Embabel的设计原则是强类型和面向对象。所有的LLM交互都是强类型的,提供了编译时检查、重构支持和IDE辅助。

以下是基于Embabel官方示例的简化版本。

每个Action可以是一段纯代码逻辑(零LLM调用),也可以由一小段Prompt驱动。这种设计让开发者可以精确控制哪些环节用AI、哪些环节用确定性代码。

Python的LangChain/LangGraph生态有一个核心问题——大量使用字符串、dict、动态Graph和手写节点边。这些在Python里“还行”,搬到Java里就变成了维护噩梦。

更重大的是:GOAP规划器完全不用LLM。

6. 可扩展性强 可以在不修改现有代码的情况下添加新的Action、目标、条件和领域对象。

在GOAP中,Agent的工作流程是这样的:

它让你能调用大模型,但怎么组织Agent的逻辑、怎么规划多步任务、怎么保证流程可控——这些需要你自己写代码来实现。

Embabel用精确的输入输出契约取代自然语言上下文,杜绝了Token的无效消耗。

生成式AI是一种随机的、非确定性的系统——同样的提示,每次生成的成效可能都不一样。

不再靠字符串拼接Prompt,不再靠JSON解析——一切都用Java/Kotlin的类型系统来保证。

GOAP规划流程详解:

Rod Johnson自己的话说得很直白:“你可以在Java中构建比Python更好的Agent”。

1. 项目相对年轻 Embabel 1.0 GA于2026年7月才发布,生态和社区还在早期阶段。

Rod Johnson解释说:

他意识到行业正处在一个巨大的转折点上。

GOAP在两者之间找到了平衡——规划逻辑是确定性的(可解释、可审计),但规划结果是动态的(适应性强) 。

1. GOAP确定性规划,可解释、可审计 GOAP规划器完全不用LLM,决策过程可追溯、可解释。对企业来说,这意味着合规和审计不再是问题。

如果你不知道他是谁,那你一定知道他做的东西——Spring Framework。

无论你用Kotlin还是Java,Embabel的类型安全性和丰富领域模型的核心价值都很突出。

2026年4月,Rod Johnson在Microsoft JDConf开发者大会上正式发布了Embabel——一个面向企业AI Agent的JVM开源框架。

而且这一次,他手里多了一把Python生态没有的武器——GOAP确定性规划。

Embabel和Spring AI的本质区别在于:谁来做决策?

Rod Johnson认为,现有AI Agent方案走向了两个极端:

打个比方:Spring AI相当于Servlet API,Embabel相当于Spring MVC。

一个框架进入GA,意味着它已经经过了足够的生产验证,API稳定性有了保障。

它是一个企业级Agent编程模型,试图回答一个核心问题:

GOAP全称Goal-Oriented Action Planning(面向目标的行动规划) ,原本用于游戏中的NPC(非玩家角色)AI——比如《最后生还者》里的敌人、《星际争霸》里的单位,它们需要根据当前状态自主决定下一步行动。

简单说:Spring AI是“零件箱”,Embabel是“装配图纸+流水线”。

4. 文档尚在完善中 作为新项目,文档和示例正在逐步完善。

这导致了一个根本性的差异:

3. 学习曲线 GOAP、Utility AI等概念对大多数Java开发者来说是全新的。

在Spring AI里,如果你需要Agent做三件事(查库存、计算价格、生成报告),你必须在代码里明确写出执行顺序。如果某个环节失败,你需要自己写重试逻辑。

2. 成本优势显著 GOAP规划不用LLM,直接砍掉40-60%的LLM调用;强类型Domain Model精确契约节省20-40%的Token消耗。总体成本优化空间50-70%。

GOAP不会“想歪”,不会“跑偏”,不会“编造不存在的Action”。它的每一步决策都是可追溯、可解释、可审计的。

在Embabel里,你只需要定义三个Action和最终目标,GOAP引擎根据当前状态动态决定先做哪个、后做哪个、失败了怎么办。

回到最初的问题:Spring之父再次出山,开发的AI框架到底是什么?

当Python生态还在用“大量字符串、动态Graph、手写节点边”的方式堆叠Agent时,Embabel已经在用类型安全、成本可控、可审计可追溯的方式,把AI Agent真正带进了企业核心业务。

GOAP规划是把“怎么走”这件事交给确定性的算法——它根据Action的前置条件、效果、成本和价值,计算出最优路径。

为什么强类型Domain Model能省Token?

2026年7月20日,Embabel正式发布了1.0.0 GA版本。项目采用Apache 2.0协议开源,目前已在GitHub上公开。

Embabel在成本和性能上的优势有明确的数据支撑:

12个项目实战在Java突击队网:susan.net.cn/project

5. 与Python生态的差距 虽然Rod Johnson的目标是“不仅追上Python生态,还要超越”,但目前Python AI生态的成熟度仍然领先。

今天这篇文章,我就把Embabel从设计理念到底层原理、从代码实战到性能数据,从头到尾给你深度拆解一遍。

但他看到的不是“AI多厉害”,而是“AI的承诺和现实之间有一条巨大的鸿沟”。

怎么让非确定性的AI,在确定性的企业系统里稳定工作?

Embabel的核心理念可以用一句话概括:通过确定性规划,让非确定性的AI在确定性的企业系统里稳定工作。

这就好比你在用导航软件——不是出发前规划好全程就再也不变了,而是每到一个路口,根据实时路况重新计算接下来的路线。

5. 避免LLM“过度设计” GOAP规划最大限度地减少了不必要的LLM调用,提升了效率和成本控制。

在聊框架本身之前,我们先理解一个关键议题——Rod Johnson为什么要在这个岁月点做这件事?

二十多年后的今天,他又回来了。

GOAP算法是Embabel最引人注目的设计,也是它和所有其他AI框架最本质的区别。

这句话点出了企业AI落地的核心困境:

希望对你会有所帮助。

2026年7月20日,Embabel正式发布1.0.0 GA版本。

在一次包含多个Action的劳动流中,这一刀砍下去,直接省掉40%-60%的LLM调用。

我把Embabel和Spring AI放在一起做了个深度对比:

这对个人聊天来说无所谓,但对金融交易、订单处理、合规审计来说,不可预测就意味着不可用。

二十多年前,Rod Johnson用一本书(《Expert One-on-One J2EE Design and Development》)和一个框架(Spring),终结了EJB那个让人欲哭无泪的时代。

2. 核心用Kotlin编写 虽然Java完全兼容,但阅读框架源码需要理解Kotlin语法。

它的答案是:

Embabel的核心抽象非常清晰:

“你实际上是在用一个‘九成时间有效、一成时间无效’的东西去构建系统,从效果上看,它就等于‘完全没用’。”

有些小伙伴可能会问:“Spring AI不是已经有了吗?Embabel跟它是什么关系?”

光说理论不够,我们来看看Embabel的实际代码。

这段代码的精髓:你没有写任何流程控制代码(if-else、switch、for循环),没有指定“先执行A再执行B”。你只是定义了有哪些Action可用和最终目标是什么,GOAP引擎自动规划出最优行动序列。

12个项目实战在Java突击队网:susan.net.cn/project

这就是Embabel要解决的问题。

Embabel解决的是“怎么让AI Agent在企业系统里稳定干活”——提供一套完整的Agent编程模型,包括行动(Action)、目标(Goal)、条件(Condition) 等核心抽象。

Embabel的核心代码是用Kotlin写的。

传统AI Agent用自然语言或dict传递上下文,每次传给LLM的上下文会恶性循环式膨胀。

Spring AI解决的是“怎么接入AI模型”——提供统一的ChatModel接口、向量存储抽象、工具调用机制。

这意味着什么?

二十多年后,他带着Embabel回来了。

3. 类型安全,编译时检查 所有LLM交互都是强类型的,IDE能提供完整的代码补全和重构支持。

每次规划不消耗Token。

没错,就是那个几乎重新定义了企业级Java应用该怎么写的Spring。

但关键点来了——实现框架的语言选择,不意味着在上面构建应用的语言选择。Embabel与Java有出色的互操作性,用Java构建应用时,你永远不会看到Kt导入。

这一次,他想终结的,是“AI只能做Demo、上不了生产”的困局。

Embabel支持两种规划模式:

理解GOAP和LLM规划的本质区别:LLM规划是把“怎么走”这件事交给一个会犯错、会幻觉、会偏离目标的随机系统。

开源地址:

声明:本文信息来源于相关渠道或网络,版权归原作者所有。如涉及版权问题请及时与本站联系删除。本文观点仅供参考,不代表本站立场。
天枢新闻网
天枢新闻网资深内容创作者,致力于为广大读者提供及时、准确、深度的新闻资讯与行业分析。
领域:科技 发布:2026-08-01