A Type-Safe Agent Framework From the Creator of Spring
Embabel brings strongly typed, dynamically planned agent flows to the JVM, letting you mix LLM calls with regular domain objects instead of magic maps.

What it does
Embabel is a Kotlin framework for building agentic flows on the JVM that interleave LLM calls with regular code and domain objects. It treats actions, goals, and conditions as strongly typed first-class citizens, letting Spring inject and manage agents like any other bean. The system formulates plans dynamically and replans after each action, so it can adapt to new information rather than following a predetermined script.
The interesting bit
Instead of chaining LLM calls in code or wrestling with finite state machines, Embabel uses a non-LLM planning algorithm—by default GOAP, the same technique used in game AI—to figure out how to reach a goal. Adding new capabilities can extend system behavior without editing existing flow definitions, because the planner invents new action sequences at runtime.
Key highlights
- Strongly typed domain model with full refactoring support; no “magic maps” passing unstructured data between steps.
- Pluggable planning layer ships with both GOAP (goal-oriented) and Utility AI (score-based) strategies out of the box.
- Three execution modes:
Focused(call a specific agent),Closed(classify intent and pick a known agent), andOpen(assemble a custom agent from all available goals and actions). - Built on Spring, so agents participate in dependency injection, AOP, transactions, and existing enterprise infrastructure.
- Supports mixing LLMs—local models for cheap point tasks, larger models for heavy lifting—to balance cost and capability.
Caveats
- Natural language actions and goals are still on the roadmap, not yet available.
- Open mode explicitly trades determinism for power, and the framework is currently at a
0.1.2-SNAPSHOTmaturity level. - Federation and “evolving” multi-goal modes are listed as future work, not current features.
Verdict
Worth evaluating if you are building JVM-based agent systems and want type safety plus dynamic planning without leaving the Spring ecosystem. Skip it if you just need a simple linear chain of LLM calls.
Frequently asked
- What is embabel/embabel-agent?
- Embabel brings strongly typed, dynamically planned agent flows to the JVM, letting you mix LLM calls with regular domain objects instead of magic maps.
- Is embabel-agent open source?
- Yes — embabel/embabel-agent is open source, released under the Apache-2.0 license.
- What language is embabel-agent written in?
- embabel/embabel-agent is primarily written in Kotlin.
- How popular is embabel-agent?
- embabel/embabel-agent has 4.4k stars on GitHub and is currently holding steady.
- Where can I find embabel-agent?
- embabel/embabel-agent is on GitHub at https://github.com/embabel/embabel-agent.