Skip to content
@embabel

Embabel

Agent framework. AI for your AI

Embabel Agent Framework

Kotlin Java Spring Apache Tomcat Apache Maven ChatGPT Jinja JSON GitHub Actions SonarQube Docker IntelliJ IDEA

    

Framework for authoring agentic flows on the JVM that seamlessly mix LLM-prompted interactions with code and domain models. Supports intelligent path finding towards goals. Written in Kotlin but offers a natural usage model from Java.

Getting Started

There are two GitHub template repos you can use to create your own project:

Or you can use our project creator to create a custom project:

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

The key repository to explore to learn more is the Embabel Agent repository

Key Concepts

Models agentic flows in terms of:

  • Actions: Steps an agent takes
  • Goals: What the agent is trying to achieve
  • Conditions: Conditions to assess before executing an action or determining that a goal has been achieved. Conditions are reassessed after each action is executed.
  • Domain model: Objects underpinning the flow and informing Actions, Goals and Conditions.
  • Plan: A sequence of actions to achieve a goal. Plans are dynamically formulated by the system, not the programmer. The system replans after the completion of each action, allowing it to adapt to new information as well as observe the effects of the previous action. This is effectively an OODA loop.

Application developers don't usually have to deal with these concepts directly, as most conditions result from data flow defined in code, allowing the system to infer pre and post conditions.

These concepts deliver the following differentiators versus other agentic systems:

  • Sophisticated planning. Goes beyond a finite state machine or sequential execution with nesting by introducing a true planning step, using a non-LLM AI algorithm. This enables the system to perform tasks it wasn’t programmed to do by combining known steps in a novel order, as well as make decisions about parallelization and other runtime behavior.
  • Superior extensibility and reuse: Because of dynamic planning, adding more domain objects, actions, goals and conditions can extend the capability of the system, without editing FSM definitions.
  • Strong typing and the benefits of object orientation: Actions, goals and conditions are informed by a domain model, which can include behavior. Everything is strongly typed and prompts and manually authored code interact cleanly. No more magic maps. Enjoy full refactoring support.

Other benefits:

  • Platform abstraction: Clean separation between programming model and platform concept allow running locally while potentially offering higher QoS changing application code.
  • Designed for LLM mixing: It is easy to build applications that mix LLMs, ensuring the most cost effective yet capable solution. models. This enables the system to leverage the strengths of different models for different tasks.
  • Built on Spring and the JVM, making it easy to access existing enterprise functionality and capabilities. For example:
    • Spring can inject and manage agents, including using Spring AOP to decorate functions.
    • Robust persistence and transaction management solutions are available.
  • Designed for testability from the ground up. Both unit testing and agent end to end testing are easy.

Flows can be authored in one of two ways:

  • Annotation-based model similar to Spring MVC, with types annotated with @Agent with @Goal, @Condition and @Action methods.
  • Kotlin DSL.

Either way, flows are backed by a domain model of objects that can defined behavior.

Pinned Loading

  1. embabel-agent embabel-agent Public

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

    Kotlin 2.3k 179

Repositories

Showing 10 of 13 repositories
  • embabel-agent Public

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

    embabel/embabel-agent’s past year of commit activity
    Kotlin 2,275 Apache-2.0 179 133 (4 issues need help) 5 Updated Jul 24, 2025
  • embabel-build Public

    Common build configuration and plugins for Embabel Modules

    embabel/embabel-build’s past year of commit activity
    1 Apache-2.0 2 1 0 Updated Jul 24, 2025
  • tripper Public

    Travel planner agent

    embabel/tripper’s past year of commit activity
    Kotlin 28 Apache-2.0 14 8 0 Updated Jul 23, 2025
  • coding-agent Public

    Embabel Agentic Flow for Software Engineers

    embabel/coding-agent’s past year of commit activity
    Kotlin 44 Apache-2.0 13 10 1 Updated Jul 23, 2025
  • embabel-agent-examples Public

    Agent Framework Examples for Java and Kotlin Developers

    embabel/embabel-agent-examples’s past year of commit activity
    Kotlin 45 Apache-2.0 9 4 1 Updated Jul 21, 2025
  • kotlin-agent-template Public template

    Kotlin agent template

    embabel/kotlin-agent-template’s past year of commit activity
    Kotlin 11 Apache-2.0 4 1 0 Updated Jul 18, 2025
  • flicker Public

    Movie finder agent

    embabel/flicker’s past year of commit activity
    Kotlin 2 Apache-2.0 1 9 1 Updated Jul 18, 2025
  • embabel-common Public

    Embabel Common Module(s)

    embabel/embabel-common’s past year of commit activity
    Kotlin 14 Apache-2.0 12 6 0 Updated Jul 17, 2025
  • java-agent-template Public template

    Java agent template

    embabel/java-agent-template’s past year of commit activity
    Java 46 Apache-2.0 15 5 0 Updated Jul 15, 2025
  • project-creator Public

    Project creation wizard

    embabel/project-creator’s past year of commit activity
    Python 10 Apache-2.0 3 3 1 Updated Jul 6, 2025

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Most used topics

Loading…