← 文章 / AI技术
InfoQ推荐 3小时前 · 2026-08-19 14:39:49 · 2 阅读

Embabel智能体框架发布1.0版本

Embabel 是一个用于在 Java 上构建 AI 智能体的框架,目前发布了 1.0 正式可用版本。Embabel 能够让 Java 与 Kotlin 开发者以类型化的领域对象(目标、动作及其连接条件)来声明智能体,而不是手工编码一系列的提示词与工具调用,并且能够在运行时通过规划步骤确定如何从当前状态到达目标。

该规划步骤借鉴了电子游戏 AI 中的目标导向动作规划(Goal-Oriented Action Planning,GOAP)的理念。它不是按照脚本或预先连线的图来执行,而是为智能体提供了一组可用的动作(action),每个动作都带有前置条件与效果,规划器搜索满足目标的动作序列。如果执行过程中发生了变化(比如,工具调用失败、新信息到达),规划器可以重新评估并寻找新的路径,而不是崩溃或要求工作流提前考虑该分支。

Embabel 并不是要替代 Spring AI,后者是 Spring 团队用于调用模型、管理嵌入向量与调用工具的库,Embabel 是构建在 Spring AI 之上的一层。Embabel 的联合创建者是 Spring 框架的创建者 Rod Johnson,他发布了该版本的消息并表示“Embabel 1.0.0 GA 已经基本就绪了,这非常令人振奋”。项目的README文件也将其比作 Spring MVC 与 Servlet API 的关系:原始的 servlet 就是可用的,但每个应用都要重复解决解析请求参数、分发处理器、对象与 HTTP 之间转换等问题。Spring MVC 并没有替换 servlet。它构建在 servlet 之上,让开发者可以编写类型化的方法签名,而无需手工解析HttpServletRequest。Embabel 在智能体领域做了类似的抽象:Spring AI 提供了与模型交互的底层管道,Embabel 提供一层让开发者声明“这些是我的目标及达到目标可用的类型化动作”,由框架负责推断执行顺序。

这种与 Spring AI 的分层关系也体现在模型选择上。由于 Embabel 构建于 Spring AI 之上,它继承了 Spring AI 对大多数模型提供商的支持(OpenAI、Anthropic、Gemini、Bedrock、Mistral、DeepSeek),并通过 Ollama、Docker 或兼容 OpenAI 的 LMStudio 端点支持本地或自托管方案。在模型选择方面,不必为整个智能体一次性固定某个模型:开发者可以为单个动作指定特定的模型,或在配置中定义角色别名(为需要强推理的步骤指定“最佳”模型,为常规步骤指定“最廉价”的模型),动作会引用角色而非硬编码的名称。这样可以在多模型混合环境中运行单个智能体,将每一步路由到最适合成本、隐私或能力需求的模型上。

Embabel 与 LangChain 构建的图式编排层 LangGraph 的关键差异在于规划步骤本身。Java 团队可以通过 LangGraph4j直接使用后者,它将智能体工作流表示为有向图:节点为函数(一次 LLM 调用、工具调用或数据库查找),边为决定下一个执行节点的静态化或条件化的路由逻辑,并沿途传递共享状态的对象。开发者需要事先定义该图 ,包括存在哪些节点、哪些边连接它们、以及在何种条件下控制在它们之间的移动。Embabel 的规划器则采用了不同的方式:框架在运行时搜索可用的类型化动作之间的路径,从而组合出开发者未必显式连线的动作序列。Embabel 还支持在同一智能体中混合 GOAP 规划与显式状态机,因此团队在需要时仍可采用类似 LangGraph 的固定路由。

Lightbend 维护着基于 actor 模型的工具包 Akka,他们从分布式系统的既有优势出发,提供了另一种解决思路。在 Akka 中,每个工作单元(在这里也就是智能体)作为一个拥有独立状态和收件箱(mailbox)的 actor 来运行,并进行层级化的监管,可以在故障后进行重启而不影响系统其他部分。Akka Agentic Platform将该模型直接应用于智能体:智能体的状态和进行中的对话驻留在可在进程崩溃后存活并且可以在集群间分布的 actor 中,因此长时运行的智能体无需在重启后重建或为跨机运行进行重构架构。Embabel 的定位更偏向编程模型:声明目标与类型化动作,让框架负责规划执行,而 Akka 更侧重基础设施,actor 运行时在智能体逻辑之下,并处理持久化、容错与分布。JetBrains 的Koog则采取了第三种思路,围绕 Kotlin 的语言特性构建,而非依赖运行时或声明式模型。三者对智能体结构应该位于何处采取了不同的策略:Embabel 偏向类型系统,Akka 偏向运行时,Koog 偏向语言本身。

对于已经运行 Spring Boot 服务的团队来说,此次发布标志着 Embabel 从“值得关注的项目”进入到了“值得评估的项目”。项目的“Overview”指南演示了如何定义第一个目标与类型化动作,并进一步介绍了如何规划行为。

查看英文原文:Embabel Agent Framework Reaches 1.0

原始来源: InfoQ推荐

评论 (0)