AI product Open source
Embabel is an open-source framework for authoring agentic flows on the JVM. Written in Kotlin with a natural Java usage model and built on Spring, it combines LLM-prompted interactions with manually written code and strongly typed domain models. Flows are expressed through actions, goals, conditions, and domain objects; they can be authored with Spring-style annotations such as @Agent, @Goal, @Condition, and @Action, or with an idiomatic Kotlin DSL.
The framework dynamically formulates plans toward goals using a pluggable, non-LLM planning step. Its default approach is Goal Oriented Action Planning (GOAP), while Utility AI is also supported for selecting actions by utility scores rather than strict preconditions and postconditions. Conditions are reassessed after each action, and the system replans based on new information and observed effects, allowing known actions to be combined in novel orders and enabling runtime decisions such as parallelization. The planning model is independent of the actions, goals, and plans themselves, and can extend application capabilities by adding domain objects, actions, goals, and conditions without changing finite-state-machine definitions.
Execution is provided through an AgentPlatform with focused, closed, and open modes. Focused mode runs a requested agent from application code; closed mode classifies user intent or an incoming event to select an agent; and open mode searches across available goals and actions to build a custom agent, while allowing developers to restrict goal selection. Open mode can find paths not explicitly envisioned by developers and combine functionality from multiple providers, but individual steps must still be defined by the application. Embabel supports mixing language models, including local models for selected tasks, separates the programming model from platform internals for local or production execution, and integrates with Spring dependency injection, AOP, persistence, transactions, and testing. The framework is designed for unit and end-to-end agent testing.
1 use taken from transcripts — each links to the moment in the video.
An open-source JVM agent framework for building agentic flows that combine LLM calls with code and typed domain models. Its planner sequences and replans actions, and it supports Kotlin and Java through Spring.
1 in the library.