01 / THE SIGNAL

我们发现了什么

Rod Johnson 回归,并将 AI 智能体带入 Java。标题:Rod Johnson 回归,并将 AI 智能体带入 Java 来源网址:https://dev.to/jamilxt/rod-johnson-is-back-and-hes-bringing-ai-agents-to-java-2hpa 发布时间:2026-07-24T20:58:44Z Markdown 内容:如果你在过去 20 年里编写过企业级 Java,你就会知道 Rod Johnson 这个名字。

  • 来源:DEV Community(发现于 2026-07-25)
  • 证据等级:D · 发现产品或需求信号,暂未获得可核验的商业证据。
  • 商业模式:待核验
  • 主题:AI Agent
  • 初筛评分:17.7/100 · 收录 1 次
#工作流自动化#待验证#产品发现
02 / SOURCE & EVIDENCE

证据,比故事更重要。

发现产品或需求信号,暂未获得可核验的商业证据。

规则清洗与初筛,未经人工商业核验。原文语境、实际客户和付费情况仍需自行验证。

引用与数字披露

来源类型(原作者自述/第三方测算/媒体转引)需采集端标注,本版尚未落字段。

短句引用
作者
未标注
抓取日期
来源类型
未标注
数字口径
币种
未标注
口径
未标注
披露主体
未标注
披露日期
未标注

中文辅助译文(全文)

如果你在过去 20 年里写过企业级 Java 代码,你就一定听过 Rod Johnson 这个名字。他早在 2003 年就创建了 Spring 框架——它让 Java 的依赖注入变得自然,而不是像与 XML 搏斗那样。Spring 从根本上重写了企业级 Java 的运作方式。

Johnson 多年前就已从 Spring 的活跃开发中退出。但在 2026 年初,他回来了——他并不是回来再造一个 IoC 容器的。

他打造了 Embabel,一个面向 JVM 的 AI agent 框架。它的工作方式与 Spring AI 或 LangChain4j 都完全不相同。

几个月来,我一直在自己的 VPS 上运行 AI agent。Hermes Agent、Claude Code、自定义 MCP 服务器——全套都用过。所以当我听说 Rod Johnson 带着一个 Java AI 框架回归时,我立刻留了心。以下就是我的发现。 Spring AI 和 LangChain4j 都很好——但它们解决的是不同的问题

在过去一年中,大多数踏入 AI 领域的 Java 开发人员都倾向于两个选择: · Spring AI——将 LLM 集成引入 Spring 生态 · LangChain4j——LangChain agent/工具模式的 Java 移植版

两者在各自擅长的领域都很出色。你可以用寥寥数行代码构建聊天机器人、RAG 流水线、工具调用助手以及 AI 驱动的 API。

但两者都将 LLM 视为应用程序的核心。你发送一段 prompt。模型做出响应。也许它会调用一个工具。然后再次响应。

对于问答或聊天界面来说,这样就够了。但是,如果你希望系统能够: · 在采取任何行动之前制定多步骤计划 · 运行 10 分钟,而非 10 秒 · 检查自身工作并在失败时重试 · 协调多个 agent 分头处理问题的不同部分

这就是聊天机器人模式失效的地方。而这恰恰是 Embabel 所瞄准的目标。 什么是 Embabel?

Embabel(发音为 em-BAY-bel)是一个用于在 JVM 上构建目标导向型 AI agent 的框架。它由 Kotlin 编写,并能自然地从 Java 使用。它构建在 Spring AI 之上——Johnson 将这种关系描述为"Spring AI 与 Embabel 的关系,正如 Servlet API 与 Spring MVC 的关系"[来源]。

因此,Spring AI 提供底层的 LLM 管道(模型连接、prompt 模板、输出解析器)。Embabel 则提供 agent 编排层。

这一关键创新借鉴自电子游戏。 GOAP:目标导向行动规划

如果你玩过《F.E.A.R.》或《Killzone》这类游戏,你就遇到过 GOAP。它是一种 AI 技术,其中每个行动都包含: · 前置条件——行动能够运行之前必须为真的事项 · 效果——行动运行后世界状态如何变化

规划器会算出哪一连串行动能够达成目标。该计划是确定性的——并非由另一次 LLM 调用所驱动。这一点很重要,因为它意味着你可以准确解释 agent 为什么做出那样的行为。

Embabel 对此的建模方式如下: · Agent——一个由 @Agent 注解的 Spring Bean,持有能力与状态 · Action——一个由 @Action 注解的方法,具有前置条件和效果 · Goal——agent 试图达成的目标,由 @AchievesGoal 注解 · Planner——将行动串联成计划,并在每个行动完成后重新规划 · AI——为行动提供 LLM 与嵌入模型访问能力的接口

每当一个行动运行之后,系统都会重新评估。它会检查目标是否已达成。如果尚未达成,就重新规划。这一循环会一直持续,直到目标达成或系统放弃。

规划本身并非一次 LLM 调用,而是一个确定性算法。你因此获得了可审计性——这是企业极为看重的一点。 一个具体的例子

Dan Vega 于 2026 年 4 月发布了对 Embabel 的初探。他构建了一个博客写作 agent。你从两个用于类型安全输出的 Java record 开始:

接着是 agent 本身:

这里有两点值得注意。

第一,@AchievesGoal 告诉规划器,完成此行动即意味着目标已达成。撰写初稿是进展。审阅并润色才是完成。规划器会自行找出这种顺序。

第二,withLlmByRole("reviewer") 允许你为不同任务指派不同模型。对草稿使用快速且廉价的模型(gpt-4.1-mini)。对审阅使用能力更强的模型(gpt-4.1)。这是在 application.yaml 中配置的,而非硬编码。

你不必定义一步步的工作流。你只需定义行动和目标。规划器会自己找出路径。 对比情况

Spring AI / LangChain4j: · 主要模式——Chat / RAG / 工具调用 · 编排——由你的代码串联调用 · 规划——LLM 决定每一步 · 状态管理——手动 · 运行时长——秒级 · 验证——非内置 · 可审计性——低(LLM 决策不透明) · 启动成本——低,只需调用 API · 成熟度——稳定(v1.x)

Embabel: · 主要模式——目标导向型 agent · 编排——内置 GOAP 规划器 · 规划——确定性算法 · 状态管理——内置会话上下文 · 运行时长——分钟级到小时级 · 验证——规划器检查目标达成情况 · 可审计性——高(确定性计划轨迹) · 启动成本——中等,需要定义行动和目标 · 成熟度——早期(0.4.x-SNAPSHOT)

你不会用 Embabel 取代 Spring AI。你会将 Embabel 与 Spring AI 配合使用。Spring AI 是 LLM 管道。Embabel 是其之上的编排层。 发布时间线

Embabel 最早于 2025 年 6 月在 InfoQ 上公布。Johnson 于 2026 年 4 月在 Microsoft JDConf 上公开介绍了它。此后一直在发布每周补丁。

该项目采用 Apache 2.0 许可证,可在 GitHub 上获取。

当前状态:早期访问。在 Dan Vega 初次体验时,版本为 0.4.0-SNAPSHOT。它尚不支持 Spring AI 2.0 或 Spring Boot 4——你需要 Spring Boot 3.5.x 与 Spring AI 1.1.4。但发布节奏很快——截至 2026 年初一直在发布每周补丁。 入门指南

官方资源仍然不多,但正在增加: · GitHub:github.com/embabel/embabel-agent · 示例:github.com/embabel/awesome-embabel · Baeldung 指南:"Creating an AI Agent in Java Using Embabel Agent Framework"(2025 年 8 月)

你需要 Spring Boot 3.5.x、Java 23,以及 LLM 提供商的 API 密钥(OpenAI、Anthropic、Gemini——任何 Spring AI 支持的都行)。Embabel 目前以 SNAPSHOT 形式发布,因此你需要将 Spring 快照仓库添加到 pom.xml 中。 我的看法

我在生产环境中运行 Spring Boot 应用程序,并将 Hermes Agent 作为我的个人 AI 基础设施。因此我正是此类框架的目标受众。

我喜欢的一点是:确定性。GOAP 规划器会生成可审计的轨迹。在企业环境中,这一点至关重要。当 AI agent 做错了事,你需要知道原因。对于普通的 LLM 链,答案通常是"模型自己决定的"。而对于 Embabel,答案是"规划器选择了行动 X,因为前置条件 Y 已满足"。这是一个真正的差异。

让我有所顾虑的是:成熟度。仍处于 0.4.x-SNAPSHOT,并且依赖快照仓库,这不是你明天就能部署到生产环境的东西。社区示例仍然稀少——主要是官方示例和 Dan Vega 的博客文章。

完全披露——我还没有用 Embabel 构建过任何东西。这只是基于阅读文档和 Vega 的教程。但其架构读起来像出自一位对企业软件深思熟虑之人之手。这并不令人意外。Rod Johnson 就是这样的人。

如果他能保持当年带给 Spring 的那份劲头,Embabel 有望成为 Java 团队构建 AI agent 的标准方式。时机恰到好处——我认识的每一家企业级 Java 团队都在试图弄明白如何在不抛弃现有投入的前提下使用 AI。一个尊重类型安全和可审计性的 JVM 原生 agent 框架,正是他们所寻找的。

如果你是一位 Java 开发人员,在 AI 领域外围观望,思考自己该如何融入——Embabel 或许就是那个让你茅塞顿开的框架。也可能时机尚早。我很想听听你的看法。

译文由上游机器翻译生成,可能有误;判断请以英文原文为准。

英文原文(来源本站未改写)

If you have written enterprise Java in the last 20 years, you know the name Rod Johnson. He created Spring Framework back in 2003 - the thing that made Java dependency injection feel natural instead of like wrestling XML. Spring basically rewrote how enterprise Java works.

Johnson stepped away from active Spring development years ago. But in early 2026, he returned - and he did not come back to build another IoC container.

He built Embabel. An AI agent framework for the JVM. And it works nothing like Spring AI or LangChain4j.

I have been running AI agents on my own VPS for months. Hermes Agent, Claude Code, custom MCP servers - the works. So when I heard Rod Johnson was back with a Java AI framework, I paid attention. Here is what I found. Spring AI and LangChain4j Are Great - but They Solve a Different Problem

Over the last year, most Java developers entering AI have gravitated toward two frameworks: · Spring AI - brings LLM integration into the Spring ecosystem · LangChain4j - a Java port of LangChain's agent/tool patterns

Both are excellent at what they do. You can build chatbots, RAG pipelines, tool-calling assistants, and AI-powered APIs in a few lines of code.

But both treat the LLM as the center of the application. You send a prompt. The model responds. Maybe it calls a tool. Then it responds again.

For question-answering or chat interfaces, that is fine. But what if you want the system to: · Create a multi-step plan before taking any action · Run for 10 minutes, not 10 seconds · Check its own work and retry if it failed · Coordinate multiple agents working on different parts of a problem

This is where the chatbot pattern breaks down. And this is exactly what Embabel targets. What Is Embabel?

Embabel (pronounced em-BAY-bel) is a framework for building goal-oriented AI agents on the JVM. It is written in Kotlin and works naturally from Java. It sits on top of Spring AI - Johnson described the relationship as "Spring AI is to Embabel as the Servlet API is to Spring MVC" [source].

So Spring AI gives you the low-level LLM plumbing (model connections, prompt templates, output parsers). Embabel gives you the agent orchestration layer.

The key innovation is borrowed from video games. GOAP: Goal-Oriented Action Planning

If you have played games like F.E.A.R. or Killzone, you have encountered GOAP. It is an AI technique where each action has: · Preconditions - things that must be true before the action can run · Effects - how the world state changes after the action runs

A planner figures out which sequence of actions leads to the goal. The plan is deterministic - not driven by another LLM call. This matters because it means you can explain exactly why the agent did what it did.

Here is how Embabel models this: · Agent - A Spring Bean annotated with @Agent, holds capabilities and state · Action - A method annotated with @Action, has preconditions and effects · Goal - What the agent is trying to achieve, annotated with @AchievesGoal · Planner - Chains actions into a plan. Re-plans after each action completes · AI - Interface that gives actions access to LLMs and embedding models

After every action runs, the system re-evaluates. It checks if the goal is met. If not, it replans. This loop continues until the goal is achieved or the system gives up.

The planning itself is not an LLM call. It is a deterministic algorithm. You get auditability - something enterprises care about a lot. A Concrete Example

Dan Vega published a first look at Embabel in April 2026. He built a blog writing agent. You start with two Java records for type-safe output:

Then the agent itself:

Two things stand out here.

First, @AchievesGoal tells the planner that completing this action means the goal is met. Writing a first draft is progress. Reviewing and polishing it is completion. The planner figures out this ordering on its own.

Second, withLlmByRole("reviewer") lets you assign different models to different tasks. Use a fast cheap model (gpt-4.1-mini) for the draft. Use a more capable model (gpt-4.1) for review. This is configured in application.yaml, not hardcoded.

You do not define a step-by-step workflow. You define actions and a goal. The planner finds the path. How It Compares

Spring AI / LangChain4j: · Primary pattern - Chat / RAG / tool-calling · Orchestration - Your code chains calls · Planning - LLM decides each step · State management - Manual · Run duration - Seconds · Validation - Not built-in · Auditability - Low (LLM decisions are opaque) · Startup cost - Low, just call an API · Maturity - Stable (v1.x)

Embabel: · Primary pattern - Goal-oriented agents · Orchestration - Built-in GOAP planner · Planning - Deterministic algorithm · State management - Built-in session context · Run duration - Minutes to hours · Validation - Planner checks goal achievement · Auditability - High (deterministic plan trace) · Startup cost - Medium, define actions and goals · Maturity - Early (0.4.x-SNAPSHOT)

You do not pick Embabel over Spring AI. You use Embabel with Spring AI. Spring AI is the LLM plumbing. Embabel is the orchestration layer on top. The Release Timeline

Embabel was first announced in June 2025 on InfoQ. Johnson introduced it publicly at Microsoft JDConf in April 2026. It has been releasing weekly patches since then.

The project is Apache 2.0 licensed and available on GitHub.

Current status: early access. The version at the time of Dan Vega's first look was 0.4.0-SNAPSHOT. It does not yet support Spring AI 2.0 or Spring Boot 4 - you need Spring Boot 3.5.x and Spring AI 1.1.4. But the pace of releases has been fast - weekly patches through early 2026. Getting Started

The official resources are thin but growing: · GitHub: github.com/embabel/embabel-agent · Examples: github.com/embabel/awesome-embabel · Baeldung guide: "Creating an AI Agent in Java Using Embabel Agent Framework" (Aug 2025)

You need Spring Boot 3.5.x, Java 23, and an API key for your LLM provider (OpenAI, Anthropic, Gemini - whatever Spring AI supports). Embabel is currently published as a SNAPSHOT, so you need to add the Spring snapshot repository to your pom.xml. My Take

I run Spring Boot applications in production and Hermes Agent as my personal AI infrastructure. So I am exactly the target audience for this kind of framework.

Here is what I like: the determinism. The GOAP planner produces an auditable trace. In enterprise environments, that matters. When an AI agent does something wrong, you need to know why. With plain LLM chains, the answer is usually "the model decided to." With Embabel, the answer is "the planner chose action X because preconditions Y were met." That is a real difference.

Here is what gives me pause: the maturity. At 0.4.x-SNAPSHOT with a snapshot repository dependency, this is not something you deploy to production tomorrow. Community examples are still thin - mostly the official samples and Dan Vega's blog post.

Full disclosure - I have not built anything with Embabel yet. This is based on reading the docs and Vega's walkthrough. But the architecture reads like someone who has thought deeply about enterprise software. That should not be surprising. Rod Johnson has.

If he maintains the same energy he brought to Spring, Embabel could become the standard way Java teams build AI agents. The timing is right - every enterprise Java shop I know is trying to figure out how to use AI without throwing away their existing investments. A JVM-native agent framework that respects type safety and auditability is exactly what they are looking for.

If you are a Java developer watching the AI space from the sidelines wondering where you fit - Embabel might be the framework that makes it click. Or it might be too early. I would love to hear what you think.

出处https://dev.to/jamilxt/rod-johnson-is-back-and-hes-bringing-ai-agents-to-java-2hpa抓取日期 · 采集源 DEV Community

03 / EVIDENCE GAPS

这条还缺什么证据?

下面每条都由本条已有字段推出(等级、理由、商业模式、来源次数、是否演示), 本站不生成推测性结论;通用验证方法放在方法论页。

  • 可核验的收入或付费证据查官网定价页与付费口径;第三方数据源(如 GetLatka)只作旁证,需标注来源与时点。
  • 商业模式未定确认按席位/按用量/授权还是开源托管版收费;开源项目另查 LICENSE 与是否存在付费版。
  • 只有单一来源找一手站点或其他渠道是否重复出现同一产品;社区热帖数量不等于商业进展。

通用验证清单(谁有这个问题/谁愿意付费/一个人能交付哪一小步)见我们的筛选方法。

04 / SIGNAL HISTORY

发现时间线