Embabel Agent:把强类型领域模型与动态智能体规划带进 JVM
一分钟看懂
Embabel 是一个 JVM 智能体框架,由 Spring 创建者参与打造。它允许 Java/Kotlin 开发者把普通代码、领域对象和 LLM 交互组合成动作与目标,再由非 LLM 的规划算法动态寻找执行路径。它并非简单的“提示词链”,而是试图为企业级 Agent 提供可组合、可测试、可治理的编程模型。
你可以用它做什么
- 在现有 Spring 应用中加入会规划、调用工具和重规划的业务 Agent。
- 混合多个云端或本地模型,把昂贵模型留给真正困难的步骤。
- 通过领域对象表达状态,让提示词和业务代码之间保持强类型边界。
- 构建事件驱动的固定 Agent、按意图选择 Agent,或开放式组合多个目标与动作。
主要能力
框架以 Action、Goal、Condition、Domain Model 与动态 Plan 为核心;每执行一步都会重新评估条件并规划。默认支持 GOAP,也提供 Utility AI。开发者可使用类似 Spring MVC 的注解,或 Kotlin DSL。它建立在 Spring/JVM 生态之上,可复用依赖注入、AOP、持久化与事务能力,并把单元测试和端到端 Agent 测试作为一等能力。仓库还包含 MCP、RAG、观测、缓存及不同模型提供商等模块。
适合哪些人
最适合 Java/Kotlin 团队、已有 Spring 资产的企业应用,以及需要可测试领域流程而不愿全面迁往 Python 的开发者。只做简单问答或固定两三步工作流时,直接调用模型可能更轻。
怎么开始使用
从官方 Java 或 Kotlin 模板创建项目,安装 Maven,并配置所选模型的 API Key(快速开始示例使用 OPENAI_API_KEY)。先实现一个包含少量领域类型和动作的 Agent,运行测试并观察规划路径;随后再接入真实服务、工具和持久化。示例仓库和 Tripper 旅行规划应用适合进一步参考。
使用前需要知道
开放模式能力最强也最不确定;虽然平台只会选择开发者定义的步骤,但步骤中的 LLM 变换仍是非确定性的。生产环境要限制目标选择和工具权限,记录执行轨迹,并为成本、重试与失败补偿设计边界。框架仍处在快速演进阶段,引入前应检查版本兼容性。
官方资料
- GitHub 仓库
- 官方 Hub 与文档问答
- 示例仓库
- 许可证:Apache-2.0