embabel/embabel-agent

Agent framework for the JVM. Pronounced Em-BAY-bel /ɛmˈbeɪbəl/

What it solves

Embabel provides a framework for creating agentic workflows on the JVM (Java and Kotlin) that integrate Large Language Model (LLM) interactions with traditional code and domain models. It addresses the complexity of managing LLM-driven flows by replacing rigid finite state machines or simple sequential execution with dynamic planning, allowing agents to adapt to new information and find novel paths to achieve goals.

How it works

The framework models agent behavior using four core concepts:

  • Actions: Individual steps the agent can take.
  • Goals: The desired outcomes the agent is trying to achieve.
  • Conditions: Checks performed before executing an action or determining if a goal is met.
  • Domain Model: The underlying objects that inform the actions, goals, and conditions.

Instead of hard-coded paths, Embabel uses a Plan—a sequence of actions dynamically formulated at runtime. It employs a non-LLM AI algorithm, specifically Goal Oriented Action Planning (GOAP) or Utility AI, to determine the best sequence of actions. The system follows an OODA loop (Observe, Orient, Decide, Act), replanning after every action to adapt to changes.

Developers can define these flows using an annotation-based model (similar to Spring MVC) or an idiomatic Kotlin DSL. The framework runs via an AgentPlatform which supports three execution modes: Focused (direct method calls), Closed (dynamic agent selection based on intent), and Open (dynamic goal and action selection across all available resources).

Who it’s for

Software engineers and enterprise developers working within the JVM ecosystem (Java/Kotlin) who want to build sophisticated, testable, and extensible AI agents that leverage existing Spring-based infrastructure and domain models.

Highlights

  • Dynamic Planning: Uses GOAP and Utility AI to find paths to goals rather than relying on fixed state machines.
  • JVM Native: Built on Spring and the JVM, providing strong typing, object-oriented benefits, and easy access to enterprise persistence and transaction management.
  • LLM Mixing: Simplifies the use of multiple LLMs (e.g., mixing expensive frontier models with local, cost-effective models) within a single flow.
  • Strong Typing: Eliminates "magic maps" by using a typed domain model for prompts and code interactions.
  • Pluggable Planning: Supports different planning algorithms and is designed for future federation with other agent frameworks.