Embabel Agent Framework
为 JVM 应用编写可规划、可测试且可混用 LLM 与业务代码的智能流程。
按维度查看评分与理由
证据不足:未提供权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的文档或代码。工作流中使用了secrets(如DEPENDABOT_SECRET、GCP_SERVICE_ACCOUNT_CREDENTIALS),但未说明最小权限原则。因此所有标准均得0分。
证据不足:未提供自洽性、依赖可用性或失败消息的文档。工作流中使用了第三方actions,但未验证其可靠性。因此所有标准均得0分。
证据不足:未提供目标受众、场景、能力边界、触发精度或环境适配的文档。README-appendix.md仅描述了内部架构,未说明使用场景。因此所有标准均得0分。
证据不足:未提供信息架构、安装说明、命名稳定性、示例/FAQ、已知限制、版本控制/变更日志或维护责任的文档。LICENSE文件存在,但未提供其他约定信息。因此所有标准均得0分。
证据不足:未提供输出可用性、边际价值或成本效益的文档。因此所有标准均得0分。
证据不足:未提供声明可追溯性、跨来源佐证或事实/推断分离的文档。因此所有标准均得0分。
- 仓库内容不足以支持对Agent产品的全面评估;仅提供了部分架构描述和CI/CD工作流。
- 工作流中使用了secrets和第三方actions,但未提供安全审计或最小权限说明。
- 未提供安装、使用或配置说明,用户难以实际部署或使用该框架。
这个 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 服务。
- 使用 Spring Boot 的 Java 团队,需要把已有服务、事务与领域模型同 LLM 步骤组合成可测试的业务流程。
- Kotlin 团队需要用 agent { } 和 action { } DSL 编写会根据当前状态重新规划的任务流。
- 需要让一个流程在普通代码、模型生成的强类型对象与网页工具之间分工的应用开发者。
- 需要经由 MCP 接入 Docker Desktop 工具或让 Claude Desktop 通过 SSE 调用本地 Embabel 能力的团队。
- 需要针对 prompt 内容、模型参数和动作逻辑编写单元测试,而非只进行端到端试验的 JVM 项目。
- 希望在 Open 模式下从多个已定义动作和目标中寻找新组合路径,但仍只执行已定义步骤的系统。
这个 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?
创建项目可运行:
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 与同类方案有什么区别?
README 将其定位为建立在 Spring AI 之上的更高层抽象:其类比是 Spring AI 类似 Servlet API,而 Embabel 更接近 Spring MVC。与有限状态机或固定顺序执行相比,Embabel 强调由 GOAP 或 Utility AI 进行动态规划与动作选择。