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)

  1. 使用提供的 GitHub 模板创建项目:
    • Java: https://github.com/embabel/java-agent-template
    • Kotlin: https://github.com/embabel/kotlin-agent-template
  2. 添加 Maven 依赖(徽章显示坐标):
    <dependency>
      <groupId>com.embabel.agent</groupId>
      <artifactId>embabel-agent-api</artifactId>
      <version>…</version>
    </dependency>
    
  3. 编写代理——使用 Spring 风格注解(@Agent@Action@Goal@Condition)或 Kotlin DSL(agent { … })。
  4. 运行——AgentPlatform 将执行计划。快速演示只需 OPENAI_API_KEY 和 Maven 安装即可。
  5. 探索示例——查看 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 团队能够在不放弃现有技术栈的前提下,轻松构建智能、可复用的代理流程。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目