embabel/embabel-agent
Agent framework for the JVM. Pronounced Em-BAY-bel /ɛmˈbeɪbəl/
Embabel Agent Framework – 快速概览
是什么 – 用于在 JVM 上构建 代理型 应用程序的 Java/Kotlin 库。您只需描述 目标、动作、条件 和 领域模型,框架便会自动规划并执行一系列动作(包括 LLM 调用),以达成这些目标。
为何重要 – 大多数现有的 LLM 为中心的代码将原始 HTTP 调用与业务逻辑混杂在一起,很快变得难以测试、复用和扩展。Embabel 将规划层从您的代码中剥离,提供强类型、与 Spring 兼容的组件,并原生支持复杂的 AI 规划算法(GOAP、Utility AI)。
核心概念
| 概念 | 作用 |
|---|---|
| 代理 | 一个容器,包含一组在领域模型上操作的动作、目标和条件。 |
| 动作 | 单个步骤——可以是纯 Java/Kotlin 代码、LLM 提示,或工具启用的操作。 |
| 目标 | 代理试图达成的期望最终状态。 |
| 条件 | 每次动作执行后重新检查的前置条件/后置条件;它们驱动重新规划。 |
| 计划 | 动态生成的动作序列;每一步后都会重新生成(OODA 循环)。 |
| AgentPlatform | 运行时环境,支持三种模式:Focused(显式调用)、Closed(为意图选择一个代理)、Open(发现目标并即时构建自定义代理)。 |
主要特性(如 README 所述)
- 动态规划:使用目标导向动作规划(GOAP)或效用 AI;不仅仅是静态状态机。
- 强类型:动作、目标和条件是普通的 Kotlin/Java 类,因此 IDE 重构和编译时检查均可正常工作。
- Spring 集成:代理可作为 Spring Bean 使用,受益于依赖注入、AOP、事务管理等特性。
- LLM 混合:动作可通过轻量级
Ai包装器调用任意 LLM(OpenAI、本地模型等);可将廉价本地模型用于简单步骤,大模型用于创造性任务。 - 可扩展规划:规划算法可插拔;可替换 GOAP、Utility AI,或提供自定义算法。
- 可测试性:可像普通方法一样对动作进行单元测试;框架还支持端到端代理测试。
- 多种执行模式:从确定性的“聚焦”调用,到可跨代理组合动作的探索性“开放”模式。
- 面向未来:路线图中提及与其他 Embabel 实例的联邦协作及多目标流程的演进。
典型用例
- 企业工作流:需要在流程中调用 LLM(如摘要、分类)但其余部分保留在现有 Java/Kotlin 服务中。
- 面向聊天的助手:将用户意图映射为目标,系统动态组装计划。
- 工具增强型代理:结合网络搜索、数据库访问和 LLM 推理。
- 成本敏感型 AI 流水线:简单转换使用廉价本地模型,仅在需要时切换到大模型。
快速入门(来自 README)
- 使用提供的 GitHub 模板创建项目:
- Java:
https://github.com/embabel/java-agent-template - Kotlin:
https://github.com/embabel/kotlin-agent-template
- Java:
- 添加 Maven 依赖(徽章显示坐标):
<dependency> <groupId>com.embabel.agent</groupId> <artifactId>embabel-agent-api</artifactId> <version>…</version> </dependency> - 编写代理——使用 Spring 风格注解(
@Agent、@Action、@Goal、@Condition)或 Kotlin DSL(agent { … })。 - 运行——
AgentPlatform将执行计划。快速演示只需OPENAI_API_KEY和 Maven 安装即可。 - 探索示例——查看 Embabel Agent Examples 仓库和 Tripper 旅行规划器演示,了解完整堆栈应用。
生态系统与工具
- 文档:实时文档位于
https://docs.embabel.com/embabel-agent/guide/… - 构建与 CI:Maven、GitHub Actions、SonarCloud 质量门禁、Docker 镜像
- 性能分析:与 YourKit 和 JProfiler 集成(徽章表明开发中使用)
- 社区:支持与讨论的 Discord 服务器(
discord.gg/t6bjkyj93q) - 相关项目:基于 Spring AI,可与现有 Spring Boot 服务互操作
许可证
Apache 2.0 – 允许商业使用的宽松开源许可证。
总结 – Embabel 是一个真正的、生产级的框架,用于在 JVM 上构建 LLM 增强、目标驱动的代理。它抽象了规划逻辑,保持代码强类型,并无缝集成到 Spring 生态系统中,使 Java/Kotlin 团队能够在不放弃现有技术栈的前提下,轻松构建智能、可复用的代理流程。
相关
- 项目
- 项目
- 项目
- 项目
- 项目