embabel/embabel-agent
Agent framework for the JVM. Pronounced Em-BAY-bel /ɛmˈbeɪbəl/
Embabel Agent Framework – Quick Overview
What it is – A Java/Kotlin library for building agentic applications on the JVM. It lets you describe goals, actions, conditions, and a domain model and then lets the framework automatically plan and execute a sequence of actions (including LLM calls) to achieve those goals.
Why it matters – Most existing LLM‑centric code mixes raw HTTP calls with business logic, which quickly becomes hard to test, reuse, and extend. Embabel lifts the planning layer out of your code, gives you strong‑typed, Spring‑compatible components, and supports sophisticated AI planning algorithms (GOAP, Utility AI) out of the box.
Core Concepts
| Concept | Role |
|---|---|
| Agent | A container for a set of actions, goals and conditions that operate on a domain model. |
| Action | A single step – can be pure Java/Kotlin code, an LLM prompt, or a tool‑enabled operation. |
| Goal | The desired end‑state the agent tries to reach. |
| Condition | Preconditions/post‑conditions that are re‑checked after each action; they drive replanning. |
| Plan | Dynamically generated sequence of actions; regenerated after every step (an OODA loop). |
| AgentPlatform | Runtime that runs agents in three modes – Focused (explicit call), Closed (select an agent for an intent), Open (discover a goal and build a custom agent on‑the‑fly). |
Main Features (as advertised in the README)
- Dynamic planning using Goal‑Oriented Action Planning (GOAP) or Utility AI; not just static state‑machines.
- Strong typing – actions, goals and conditions are regular Kotlin/Java classes, so IDE refactoring and compile‑time checks work.
- Spring integration – agents can be Spring beans, benefit from dependency injection, AOP, transaction management, etc.
- LLM‑mixing – actions can call any LLM (OpenAI, local models, etc.) via a thin
Aiwrapper; you can combine cheap local models for simple steps and larger models for creative ones. - Extensible planning – the planning algorithm is pluggable; you can swap GOAP, Utility AI, or provide your own.
- Testability – unit‑test actions like any other method; the framework also supports end‑to‑end agent tests.
- Multiple execution modes – from deterministic “focused” calls to exploratory “open” mode that can compose actions across agents.
- Future‑proofing – roadmap mentions federation with other Embabel instances and evolving multi‑goal processes.
Typical Use‑Cases
- Enterprise workflows that need to call LLMs for parts of the process (e.g., summarisation, classification) while keeping the rest in existing Java/Kotlin services.
- Chat‑oriented assistants where a user intent is mapped to a goal and the system dynamically assembles a plan.
- Tool‑augmented agents that combine web‑search, database access, and LLM reasoning.
- Cost‑aware AI pipelines – use cheap local models for simple transformations and switch to larger models only when needed.
Getting Started (from the README)
- Create a project using the provided GitHub templates:
- Java:
https://github.com/embabel/java-agent-template - Kotlin:
https://github.com/embabel/kotlin-agent-template
- Java:
- Add the Maven dependency (the badge shows the coordinates):
<dependency> <groupId>com.embabel.agent</groupId> <artifactId>embabel-agent-api</artifactId> <version>…</version> </dependency> - Write an agent – either with Spring‑style annotations (
@Agent,@Action,@Goal,@Condition) or with the Kotlin DSL (agent { … }). - Run – the
AgentPlatformwill execute the plan. For a quick demo you only need anOPENAI_API_KEYand Maven installed. - Explore examples – see the Embabel Agent Examples repo and the Tripper travel‑planner demo for a full‑stack application.
Ecosystem & Tooling
- Documentation – live docs at
https://docs.embabel.com/embabel-agent/guide/… - Build & CI – Maven, GitHub Actions, SonarCloud quality gate, Docker images.
- Profiling – integrations with YourKit and JProfiler (badges indicate they are used in development).
- Community – Discord server (
discord.gg/t6bjkyj93q) for support and discussion. - Related projects – built on top of Spring AI; can interoperate with existing Spring Boot services.
License
Apache 2.0 – permissive open‑source license allowing commercial use.
Bottom line – Embabel is a genuine, production‑grade framework for constructing LLM‑augmented, goal‑driven agents on the JVM. It abstracts planning, keeps code strongly typed, and plugs neatly into the Spring ecosystem, making it a compelling option for Java/Kotlin teams that want to add intelligent, reusable agentic flows without abandoning their existing stack.
Related
- Project
- Project
- Project
- Project
- Project