Embabel Agent Framework Reaches 1.0
Quick Answer
Embabel, a new Java framework for AI agents, has launched its 1.0 version, enabling developers to define agents as typed domain objects using Goal-Oriented Action Planning (GOAP).
Quick Take
Built on Spring AI, it supports multiple model providers and allows dynamic action routing based on cost and capability needs.
Key Points
- Embabel allows Java/Kotlin developers to define agents as typed domain objects.
- The framework uses Goal-Oriented Action Planning (GOAP) for dynamic task management.
- Supports multiple model providers like OpenAI, Anthropic, and local options.
- Developers can assign specific models to individual actions for flexibility.
- Embabel's planning differentiates it from LangGraph's static graph approach.
DeepSignal Analysis
What happened
Embabel, a Java framework for AI agents, has launched its 1.0 version. It allows developers to define agents as typed domain objects using Goal-Oriented Action Planning (GOAP) and supports various model providers. The framework is built on Spring AI and enables dynamic action routing based on cost and capability.
Key evidence
- Embabel enables Java and Kotlin developers to define agents as typed domain objects, facilitating a planning step that determines how to achieve goals at runtime.
- The framework supports multiple model providers, including OpenAI, Anthropic, and local options through Ollama and Docker, allowing developers to choose models based on specific action needs.
- Embabel's planning mechanism differentiates it from LangGraph by allowing runtime pathfinding through available actions, rather than requiring developers to predefine a workflow.
Why it matters
The release of Embabel 1.0 represents a significant development for Java developers interested in AI agents. By leveraging GOAP, it provides a more flexible and dynamic approach to agent behavior compared to traditional scripting methods. This could lead to more robust applications that can adapt to changing conditions without requiring extensive reprogramming.
📖 Reader Mode
~4 min readEmbabel, a framework for building AI agents on the Java, reached its 1.0 general-availability release. Embabel lets Java and Kotlin developers define agents as typed domain objects (goals, actions, and the conditions that connect them) rather than hand-coding a sequence of prompts and tool calls, using a planning step to work out how to get from the current state to a goal at runtime.
That planning step borrows an idea from video game AI called Goal-Oriented Action Planning (GOAP). Instead of following a script or a pre-wired graph, the agent is given a set of available actions, each with preconditions and effects, and a planner searches for a sequence of actions that satisfies the goal. If the world changes mid-task (a tool call fails, new information arrives), the planner can reassess and find a new path rather than falling over or requiring the workflow to have anticipated that branch in advance.
Embabel doesn't replace Spring AI, the Spring team's own library for calling models, managing embeddings, and invoking tools; it's built on top of it. Embabel was co-created by the creator of the Spring Framework: Rod Johnson announced the release with "Embabel 1.0.0 GA nearly ready...excited!" Johnson founded Spring, and with it Spring MVC, in 2003, and the project's README draws a direct parallel to that history: "An analogy: Spring AI exists at the level of the Servlet API, while Embabel is more like Spring MVC." Raw servlets work, but every application ends up re-solving the same problems: parsing request parameters, dispatching to the right handler, converting objects to and from HTTP. Spring MVC didn't replace servlets; it sat on top of them and let developers write a typed method signature instead of parsing a HttpServletRequest by hand. Embabel is making the same bet for agents: Spring AI supplies the plumbing to talk to a model, and Embabel supplies the layer where a developer declares "these are my goals and the typed actions available to reach them," leaving the framework to work out the sequencing.
That same layered relationship with Spring AI carries through to model choice. Because Embabel builds on Spring AI, it inherits support for most of the providers Spring AI does (OpenAI, Anthropic, Gemini, Bedrock, Mistral, DeepSeek), plus local and self-hosted options through Ollama, Docker, or an OpenAI-compatible LMStudio endpoint. The choice isn't made once for the whole agent: a developer can pin an individual action to a specific model, or define role aliases in configuration (a "best" model for the step that needs strong reasoning, a "cheapest" one for routine steps) and have an action reference the role instead of a hard-coded name. That makes it straightforward to run a single agent across a mix of models, routing each step to whichever one fits its cost, privacy, or capability needs.
The planning step itself is what sets Embabel apart from LangGraph, the graph-oriented orchestration layer built by LangChain. Java teams can use it directly through LangGraph4j, a Java port built to work with LangChain4j and Spring AI. LangGraph represents an agent workflow as a directed graph: nodes are functions (an LLM call, a tool invocation, a database lookup) and edges are the routing logic, static or conditional, that decides which node executes next, with a shared state object passed along the way. The developer defines that graph up front: which nodes exist, which edges connect them, and under what conditions control moves between them. Embabel's planner starts from a different point: rather than the developer wiring the graph, the framework searches for a path through the available typed actions at runtime, and can combine actions into sequences the developer never explicitly wired together. Embabel supports mixing GOAP planning with explicit state machines in the same agent, so a team can still drop into LangGraph-style fixed routing for the steps where that's what they want.
Akka, the Lightbend-maintained toolkit built around the actor model, approaches the same problem from existing strength in distributed systems rather than Spring's programming-model tradition. In Akka, each unit of work (here, an agent) runs as an actor with its own isolated state and mailbox, supervised by a hierarchy that can restart it after a failure without disturbing the rest of the system. The Akka Agentic Platform applies that directly to agents: an agent's state and in-flight conversation live in an actor that survives a process crash and can be distributed across a cluster, so a long-running agent doesn't need to be rebuilt from scratch after a restart or re-architected to run across multiple machines. Embabel's pitch is a programming model: declare goals and typed actions, let the framework plan. Akka's is closer to infrastructure: the actor runtime handles persistence, fault tolerance, and distribution underneath whatever agent logic runs on top. JetBrains' Koog takes a third approach, built around Kotlin's own language features rather than a runtime or a declarative programming model. Each is making a different bet on where an agent's structure should live: the type system for Embabel, the runtime for Akka, the language itself for Koog.
For teams already running Spring Boot services, this release is the point where Embabel stops being a project to watch and starts being one to evaluate. The project's "Overview" guide walks through defining a first goal and typed action before getting into planning behavior.
About the Author
Erik Costlow
Show moreShow less
— Originally published at infoq.com
Want this in your inbox every morning?
Daily brief at your local 8am — bilingual EN/中文, free.
More from InfoQ AI, ML & Data Engineering
See more →Google Cloud Workbench Notebooks Extension Connects VS Code to Google Cloud's Jupyter Notebooks
The Google Cloud Workbench Notebooks extension for VS Code allows developers to seamlessly connect their local IDE to managed Jupyter notebook environments on Google Cloud, enhancing ML workflow efficiency. This integration eliminates context switching, enabling smooth transitions from local experimentation to high-performance cloud computing.

