Embabel Agent Framework

A JVM framework for planning and testing agentic flows that combine LLM calls with typed business code.

Stars
★ 4.5k
Last updated
today
License
Apache-2.0
Primary language
Kotlin

At a glance

How it runs
FrameworkLibrary / SDKCLI
Works with
Universal · cross-platformOpenAI APIClaude API (Partial support)
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
JVMMavenDocker Desktop >4.43.2 for the documented Docker MCP tool setupShell / CLINetwork accessMCP Server
Typical use
A Java Spring Boot team that needs to combine existing services, transactions, and domain models with LLM-driven steps in a testable flow.
Not a fit if
  • Developers unwilling to run Docker Desktop and MCP catalog tools
  • Teams needing a stable, production-grade framework rather than an early-stage project

What does this agent do, and when should you use it?

Embabel Agent Framework is a JVM agentic-flow framework written in Kotlin with a natural Java programming model. Developers define flows with @Agent, @Action, @Goal, and @Condition annotations, or with Kotlin agent { } and action { } blocks backed by domain objects. Its AgentPlatform runs in Focused, Closed, or Open mode and replans after every action rather than simply following a fixed sequence. GOAP is the default planner, Utility AI is included, and the planning step is pluggable. The framework is built on Spring and the JVM, can use Spring AI ChatModel integrations and MCP servers, and can expose an SSE MCP server or an A2A service through its a2a profile.

The framework takes user input and domain objects, derives plans from action inputs, outputs, and conditions, then reassesses and replans after each @Action. An action can run ordinary Java or Kotlin code, or call a model through Ai.withDefaultLlm(), Ai.withLlm(...), and createObject(...) to produce typed domain objects; actions can require tool groups such as CoreToolGroups.WEB. AgentPlatform can directly invoke a selected agent in Focused mode, classify intent to select an agent in Closed mode, or assemble a path from known goals, actions, and conditions in Open mode. It can consume MCP servers configured through the Spring AI MCP client, expose capabilities through its /sse MCP endpoint, and start an A2A server when the a2a Spring profile is enabled.

  1. A Java Spring Boot team that needs to combine existing services, transactions, and domain models with LLM-driven steps in a testable flow.
  2. A Kotlin team that wants to author state-aware, replanning task flows with the agent { } and action { } DSL.
  3. An application developer who needs one workflow to coordinate regular code, typed LLM-generated objects, and web-tool access.
  4. A team that wants to consume Docker Desktop MCP tools or expose local Embabel functionality to Claude Desktop over SSE.
  5. A JVM project that needs unit tests for prompts, model options, and action logic instead of relying only on end-to-end tests.
  6. A system that wants Open mode to find new paths by combining defined actions and goals, while restricting execution to defined steps.

How do you install or deploy this agent?

Create a runnable project with:

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

Or add this dependency to a Maven pom.xml:
<dependency>
<groupId>com.embabel.agent</groupId>
<artifactId>embabel-agent-starter</artifactId>
<version>0.3.0</version>
</dependency>

Set OPENAI_API_KEY. The README states that a template project can run when Maven and that key are available; some examples and the coding agent also require ANTHROPIC_API_KEY. For the documented Docker MCP tool setup, install Docker Desktop >4.43.2 and enable Brave Search, Fetch, Puppeteer, and Wikipedia from its MCP catalog.

How do you use this agent?

Annotate a Spring-managed class with @Agent and define steps with @Action that accept domain objects and Ai; mark a completing action with @AchievesGoal. An action can call ai.withDefaultLlm().createObject(prompt, ResultType.class) or execute normal business code. Run unit tests with mvn test. In the example project's Spring Shell, enter help to list commands, then run:

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

The -p option logs prompts and -r logs model responses; x is an execute shortcut.

What are this agent's strengths and limitations?

Pros
  • Default GOAP planning and replanning after every action let defined steps be recombined from runtime state instead of being limited to a finite-state machine or fixed sequence.
  • Actions, goals, and conditions are backed by strongly typed domain models, allowing Java/Kotlin code and structured LLM object creation to work together.
  • It offers both a Spring annotation model and a Kotlin DSL while retaining Spring injection, AOP, persistence, and transaction options.
  • Focused, Closed, and Open execution modes provide distinct boundaries between direct code-driven invocation and dynamic goal selection across resources.
  • It documents an MCP client, an SSE MCP server, and an A2A profile, with paths for local models, OCI Generative AI, and Spring AI ChatModel providers.
Limitations
  • The project describes itself as early stage; federation, budget-aware agents, and implementations for other platforms are roadmap goals rather than established features.
  • Full examples and integration tests depend on external model services and credentials; integration tests list OpenAI, Anthropic, DeepSeek, and Mistral keys.
  • The documented web-tool experience adds local setup complexity through Docker Desktop, MCP Catalog tools, and network access.
  • Open mode is the most powerful but least deterministic; it only proceeds when it is convinced a goal applies, and developers may need GoalChoiceApprover to narrow selection.
  • Gradle users must explicitly add the Spring Milestones repository to resolve the Embabel BOM's experimental Spring MCP BOM dependency.

How does this agent compare with similar options?

The README positions Embabel as a higher-level abstraction built on Spring AI, comparing Spring AI to the Servlet API and Embabel to Spring MVC. Against finite-state machines or fixed sequential execution, Embabel emphasizes dynamic planning and action selection through GOAP or Utility AI.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Embabel Agent Framework This agent Insufficient evidence FrameworkFree + model costs ★ 4.5k today Kotlin OpenAI API
ReachAI Enterprise Agent Platform 60 · Some gaps Self-hosted serviceFree + model costs ★ 1k 2d ago Java OpenAI API
Atmosphere Real-Time JVM Agent Engine 46 · Major gaps CLIFree + model costs ★ 3.8k 1d ago Java OpenAI API · Claude API
Spring AI Alibaba 53 · Major gaps FrameworkFree + model costs ★ 11k 1mo ago Java —

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Insufficient evidence
This review covers the source as of Aug 09, 2026. The project has shipped 5 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Why each dimension lost points
Trust

Insufficient evidence: No documentation or code for permission management, user confirmation, data flow transparency, sensitive data handling, dependency security, external effects, rollback, or source attribution. Workflows use secrets (e.g., DEPENDABOT_SECRET, GCP_SERVICE_ACCOUNT_CREDENTIALS) but no least-privilege principle is stated. Hence all criteria scored 0.

Reliability

Insufficient evidence: No documentation for self-consistency, dependency availability, or failure messages. Workflows use third-party actions without verification. Hence all criteria scored 0.

Adaptability

Insufficient evidence: No documentation for target audience, scenarios, capability boundaries, trigger precision, or environment fit. README-appendix.md only describes internal architecture, not usage scenarios. Hence all criteria scored 0.

Convention

Insufficient evidence: No documentation for information architecture, install notes, naming stability, examples/FAQ, known limitations, versioning/changelog, or maintenance responsibility. LICENSE file exists but no other convention info. Hence all criteria scored 0.

Effectiveness

Insufficient evidence: No documentation for output usability, marginal value, or cost-benefit. Hence all criteria scored 0.

Verifiability

Insufficient evidence: No documentation for claim traceability, cross-source corroboration, or fact/inference separation. Hence all criteria scored 0.

Risks and how to mitigate them
  • Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
  • Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
  • Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
  • Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
  • Repository content is insufficient to support a comprehensive assessment of the Agent product; only partial architecture description and CI/CD workflows are provided.
  • Workflows use secrets and third-party actions without security audit or least-privilege documentation.
  • No installation, usage, or configuration instructions are provided, making it difficult for users to actually deploy or use the framework.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision d8407d427374 New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v1.5.4 Embabel Agent 1.5.4
    Release notes excerpt
    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 …
    View on GitHub ↗
  2. v1.5.3 Embabel Agent 1.5.3
    Release notes excerpt
    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 …
    View on GitHub ↗
  3. v1.5.2 Embabel Agent 1.5.2
    Release notes excerpt
    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 …
    View on GitHub ↗

FAQ

Is it limited to OpenAI models?
No. OPENAI_API_KEY is listed as the required default setup, but the framework also names Anthropic, MiniMax, Z.ai, OCI Generative AI, local Ollama, Docker models, LMStudio, and any provider available through a Spring AI ChatModel.
Can Open mode run arbitrary actions invented by a model?
No. Open mode builds paths from known goals, actions, and conditions. It can discover combinations not anticipated by developers, but it only performs individually defined steps.
Is Docker mandatory?
No. A normal dependency-based setup, model provider, or custom MCP configuration can be used. Docker Desktop >4.43.2 is required for the README's Docker Desktop MCP Catalog web-tool path.
How can agents be tested without live model calls?
Agents can be unit tested as Spring-managed or ordinary objects using mocked services and FakeOperationContext to inspect action logic, prompts, model interactions, and tool groups. The default mvn test run is documented as not requiring internet access or external services.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents