Embabel Agent Framework

为 JVM 应用编写可规划、可测试且可混用 LLM 与业务代码的智能流程。

Star 数
★ 4.5k
最近更新
今天
License
Apache-2.0
主语言
Kotlin
FA 评分
证据不足

30 秒速览

运行形态
开发框架代码库 / SDK命令行工具
可在哪里用
通用 · 跨平台OpenAI APIClaude API(部分支持)
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
JVMMavenDocker Desktop >4.43.2,用于文档所述的 Docker MCP 工具配置Shell / 命令行网络访问MCP Server
典型场景
使用 Spring Boot 的 Java 团队,需要把已有服务、事务与领域模型同 LLM 步骤组合成可测试的业务流程。
不适合
  • 不愿使用 Docker Desktop 和 MCP 工具链的开发者
  • 需要稳定生产级框架、不能接受早期阶段项目的团队

这个 Agent 能做什么,适合哪些场景?

Embabel Agent Framework 是面向 JVM 的智能流程框架,核心以 Kotlin 编写,并提供自然的 Java 使用方式。开发者通过 @Agent、@Action、@Goal、@Condition 等注解,或 Kotlin 的 agent { } 与 action { } DSL,定义由领域对象支撑的流程。AgentPlatform 在 Focused、Closed 和 Open 三种模式下执行;系统会在每个动作后重新规划,而不是只按预设顺序运行。默认规划方法为 GOAP,也内置 Utility AI;规划器可替换。框架构建于 Spring 与 JVM 之上,可接入 Spring AI ChatModel、MCP 服务,并可作为 SSE MCP 服务器或启用 A2A profile 对外提供服务。

框架读取用户输入和领域对象,根据动作的输入、输出及条件形成计划,并在每次 @Action 完成后重新评估与规划。动作既可以调用普通 Java/Kotlin 代码,也可以通过 Ai.withDefaultLlm()、Ai.withLlm(...) 和 createObject(...) 调用模型,将结果生成强类型领域对象;动作可声明 toolGroups,例如 CoreToolGroups.WEB。AgentPlatform 可由代码直接调用特定 agent(Focused),按意图挑选 agent(Closed),或从已知 goals、actions 与 conditions 组合路径(Open)。它可消费 Spring AI MCP client 配置的 MCP 服务,也可通过 /sse 端点以 MCP 服务器形式暴露能力;启用 a2a profile 后可启动 A2A 服务。

  1. 使用 Spring Boot 的 Java 团队,需要把已有服务、事务与领域模型同 LLM 步骤组合成可测试的业务流程。
  2. Kotlin 团队需要用 agent { } 和 action { } DSL 编写会根据当前状态重新规划的任务流。
  3. 需要让一个流程在普通代码、模型生成的强类型对象与网页工具之间分工的应用开发者。
  4. 需要经由 MCP 接入 Docker Desktop 工具或让 Claude Desktop 通过 SSE 调用本地 Embabel 能力的团队。
  5. 需要针对 prompt 内容、模型参数和动作逻辑编写单元测试,而非只进行端到端试验的 JVM 项目。
  6. 希望在 Open 模式下从多个已定义动作和目标中寻找新组合路径,但仍只执行已定义步骤的系统。

如何安装或部署这个 Agent?

创建项目可运行:

uvx --from git+https://github.com/embabel/project-creator.git project-creator

或在 Maven 项目的 pom.xml 中加入:
<dependency>
<groupId>com.embabel.agent</groupId>
<artifactId>embabel-agent-starter</artifactId>
<version>0.3.0</version>
</dependency>

设置 OPENAI_API_KEY。README 说明 Maven 已安装且具备该密钥时可运行模板项目;部分示例和 coding agent 还需要 ANTHROPIC_API_KEY。若采用文档中的 Docker MCP 工具配置,需要 Docker Desktop >4.43.2,并从目录启用 Brave Search、Fetch、Puppeteer 与 Wikipedia MCP 工具。

如何使用这个 Agent?

把 Spring 管理的类标注为 @Agent,并以 @Action 定义接收领域对象和 Ai 的步骤;以 @AchievesGoal 标识完成目标的动作。动作中可调用 ai.withDefaultLlm().createObject(prompt, ResultType.class),也可执行普通业务代码。运行单元测试:mvn test。使用示例项目的 Spring Shell 时,先输入 help 查看命令,再执行:

execute "Lynda is a Scorpio, find news for her" -p -r

其中 -p 输出 prompts,-r 输出模型响应;x 是 execute 的快捷方式。

这个 Agent 有哪些优点和局限?

优点
  • GOAP 默认规划和每个动作后的重新规划,使已定义动作可按运行时状态重组,而非局限于有限状态机或固定顺序。
  • 动作、目标和条件由强类型领域模型支撑,Java/Kotlin 代码与 LLM 结构化对象输出可直接协作。
  • 同时提供 Spring 注解模型和 Kotlin DSL,并利用 Spring 注入、AOP、持久化与事务能力。
  • 支持 Focused、Closed、Open 三种执行边界,便于在确定性代码调用与跨资源动态目标选择之间选择。
  • 提供 MCP 客户端配置、SSE MCP 服务器和 A2A profile,并可接入本地模型、OCI Generative AI 或 Spring AI ChatModel。
局限
  • 项目明确仍处于早期阶段;路线图中的 federation、预算感知与跨平台实现属于未来目标,而非已承诺的现成功能。
  • 完整示例与集成测试依赖外部模型服务和 API 密钥;集成测试还列出 OpenAI、Anthropic、DeepSeek 与 Mistral 密钥要求。
  • 文档推荐的网页工具体验依赖 Docker Desktop、MCP Catalog 工具及网络连接,增加本地运行环境复杂度。
  • Open 模式最强但最不确定;平台仅在确信目标适用时继续,开发者可能还需通过 GoalChoiceApprover 进一步限制选择。
  • Gradle 用户必须显式添加 Spring Milestones 仓库,以解析 Embabel BOM 的实验性 Spring MCP BOM 传递依赖。

这个 Agent 与同类方案有什么区别?

README 将其定位为建立在 Spring AI 之上的更高层抽象:其类比是 Spring AI 类似 Servlet API,而 Embabel 更接近 Spring MVC。与有限状态机或固定顺序执行相比,Embabel 强调由 GOAP 或 Utility AI 进行动态规划与动作选择。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Embabel Agent Framework 当前 证据不足 开发框架免费 + 模型费 ★ 4.5k 今天 Kotlin OpenAI API
ReachAI 企业智能体开发平台 60 · 存在缺口 自托管服务免费 + 模型费 ★ 1k 2 天前 Java OpenAI API
Atmosphere JVM 实时智能体引擎 46 · 缺口较多 命令行工具免费 + 模型费 ★ 3.8k 1 天前 Java OpenAI API · Claude API
Spring AI Alibaba 53 · 缺口较多 开发框架免费 + 模型费 ★ 11k 1 个月前 Java —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
证据不足
本评测基于 2026年8月9日 的源码;此后该项目发布了 5 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
查看各维度的扣分理由
信任安全

证据不足:未提供权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的文档或代码。工作流中使用了secrets(如DEPENDABOT_SECRET、GCP_SERVICE_ACCOUNT_CREDENTIALS),但未说明最小权限原则。因此所有标准均得0分。

可靠稳定

证据不足:未提供自洽性、依赖可用性或失败消息的文档。工作流中使用了第三方actions,但未验证其可靠性。因此所有标准均得0分。

适用触发

证据不足:未提供目标受众、场景、能力边界、触发精度或环境适配的文档。README-appendix.md仅描述了内部架构,未说明使用场景。因此所有标准均得0分。

规范维护

证据不足:未提供信息架构、安装说明、命名稳定性、示例/FAQ、已知限制、版本控制/变更日志或维护责任的文档。LICENSE文件存在,但未提供其他约定信息。因此所有标准均得0分。

有效结果

证据不足:未提供输出可用性、边际价值或成本效益的文档。因此所有标准均得0分。

证据核验

证据不足:未提供声明可追溯性、跨来源佐证或事实/推断分离的文档。因此所有标准均得0分。

风险与缓解建议
  • 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
  • 仓库内容不足以支持对Agent产品的全面评估;仅提供了部分架构描述和CI/CD工作流。
  • 工作流中使用了secrets和第三方actions,但未提供安全审计或最小权限说明。
  • 未提供安装、使用或配置说明,用户难以实际部署或使用该框架。
证据充分度:低 评估于 2026年8月9日 审查版本 d8407d427374 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.5.4 Embabel Agent 1.5.4
    发布说明摘录
    What's Changed * An OpenAI-compatible embedding answer without index or usage still builds by @jasperblues in https://github.com/embabel/embabel-agent/pull/2105 * #2124 - Port #2096 ToolishRag formatter fix from 1.0.x to main by @simeshev in https://github.com/embabel/embabel-agent/pull/2125 * Feature: implementation of classification and decision service contracts by @jimador in https://github.com/embabel/embabel-agent/pull/2062 * Feature: TypeSafe decision service integration by @jimador in https://github.com/embabel/embabel-agent/pull/2061 …
    在 GitHub 查看 ↗
  2. v1.5.3 Embabel Agent 1.5.3
    发布说明摘录
    What's Changed * Prepare 1.5.3 Dev by @alexheifetz in https://github.com/embabel/embabel-agent/pull/2021 * Let the deployment default LLM name a role (#2031) by @jasperblues in https://github.com/embabel/embabel-agent/pull/2032 * An embedding default can name a role, and resolve per call by @jasperblues in https://github.com/embabel/embabel-agent/pull/2041 * Handle every criteria an embedding model can be asked for by @jasperblues in https://github.com/embabel/embabel-agent/pull/2044 …
    在 GitHub 查看 ↗
  3. v1.5.2 Embabel Agent 1.5.2
    发布说明摘录
    What's Changed * Boot 4.1.1 by @alexheifetz in https://github.com/embabel/embabel-agent/pull/1983 * Fix/llm retry policy and rate limit detection by @azanux in https://github.com/embabel/embabel-agent/pull/1982 * Remove httpcomponents and bouncycastle BOM(s) by @alexheifetz in https://github.com/embabel/embabel-agent/pull/1984 * fix: avoid search filter extension shadowing by @arnabnandy7 in https://github.com/embabel/embabel-agent/pull/1973 * refactor: remove no-op entity filtering by @arnabnandy7 in https://github.com/embabel/embabel-agent/pull/1972 …
    在 GitHub 查看 ↗

常见问题

是否只能使用 OpenAI?
不是。OPENAI_API_KEY 被列为必需的默认配置,但框架也列出 Anthropic、MiniMax、Z.ai、OCI Generative AI、本地 Ollama、Docker 模型、LMStudio,以及任何可通过 Spring AI ChatModel 接入的提供商。
Open 模式会执行任意模型生成的操作吗?
不会。Open 模式会从已知目标、动作和条件中构建路径;即使能发现开发者未预见的组合,也只执行已定义的单个步骤。
能否不依赖 Docker 使用?
可以采用普通依赖、模型提供商或自建 MCP 配置;但 README 所述 Docker Desktop MCP Catalog 网页工具方案需要 Docker Desktop >4.43.2。
如何测试 agent,而不调用真实模型?
可将 agent 作为 Spring 管理对象或普通对象进行单元测试,使用 mock 服务与 FakeOperationContext,检查动作逻辑、prompt、模型交互和 tool groups;mvn test 默认运行不需要外网或外部服务的单元测试。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents