NTV

NTV

Java Developer

© 2026

Dark Mode

Embabel 101

Embabel is an agentic AI framework where agents are defined to achieve a goal using the defined actions. It is a very flexible framework that supports different workflows. In this post, I will only cover the closed mode work flow. Details about other workflows can be found here. You can define multiple agents in the same project where each agent defines multiple actions to achieve the goal.

In closed mode, based on the user input, LLM will select the most appropriate agent. Then using A* algorithm, it will deterministically choose a cost effective plan combining multiple actions to achieve the goal.

Actions can optionally have a pre and postconditions. If the action has a pre condition, then that action will be chosen only if the pre condition is satisfied. Post condition may be a pre condition of another action so that those conditions can be taken into consideration while formulating the plan in A* algorithm.

I have a small working sample here .

How to make a basic Embabel sample

  • Create a spring boot sample using the spring starter ui.
    • Use 3.5.15 until springboot 4 support is added https://github.com/embabel/embabel-agent/issues/1052
  • Add embabel-agent-starter-shell as a dependency so that we will get a shell to interact with the agents.
    • Add the following properties to the project’s application.properties to enable the shell.
        spring.main.web-application-type=none
        spring.shell.interactive.enabled=true
      
  • Depending on the LLM used in the project, add that also as the dependency in the build.gradle(eg:embabel-agent-starter-ollama)
  • For olllma start the ollama server using docker compose -f ollamacompose.yml up -d and pull any ollama model into it.
  • Atleast add embabel.models.default-llm property in the application.properties so that atleast 1 LLM is available. More configuration properties can be found (here)[https://hub.embabel.com/reference/configuration#configuration-properties].
  • Write an agent with actions and a goal that could be achieved using these actions.
    • Pre and post conditions are not necessary for an action.
  • Execute ./gradlew clean bootRun to build and run the project.
  • If everything works fine, then a shell shoud have appeared to enter the user input.
  • Use ‘/help’ to see available options of the shell.
  • Type x replace with your prompt and then Embabel will choose a suitable agent f possible.

References

  1. Embabel - Githubrepo
  2. DanVega example
  3. Embabel - Doc
  4. Embabel - Hub