Jakarta Agentic AI Hits Its First Milestone

Author: Dominika Tasarz

Original post on Foojay: Read More

Jakarta Agentic AI just shipped its first deliverable: version 1.0.0-M1 is live on Maven Central and the draft 1.0 specification is out for review. The project now has a specific API surface that developers can look at, try out and give feedback on.

Quick recap – what is Jakarta Agentic AI?

If you missed the original announcement, Jakarta Agentic AI is a new Eclipse Foundation project bringing vendor-neutral, standardized APIs for building AI agents to Jakarta EE runtimes. The goal is to do for agentic AI what Jakarta Servlet, Jakarta RESTful Web Services and Jakarta Batch did for their respective domains: give Java and Jakarta EE developers a consistent, portable programming model instead of forcing them to hand-roll agent orchestration or lock into a single vendor’s framework.

What’s in our First Milestone

The draft specification – see here – lays out the core programming model, and jakarta.agentic-ai-api:1.0.0-M1 is now available on Maven Central so implementers and early adopters can start working against real interfaces:

<dependency>
    <groupId>jakarta.agentic-ai</groupId>
    <artifactId>jakarta.agentic-ai-api</artifactId>
    <version>1.0.0-M1</version>
</dependency>

A few of the key ideas the spec defines:

  • Annotation-driven agents. An agent is just a CDI bean annotated with @Agent. Its workflow is built from familiar lifecycle annotations – @Trigger (the entry point), @Decision (branch or stop the workflow), @Action (do the work), @Outcome (finalize the result), and @HandleException (recover from errors). Decisions and actions can be freely intermixed, so agents can be as simple as “trigger + action” or as elaborate as multi-step conditional workflows.
  • Full CDI integration. Agents get dependency injection, interceptors, CDI events and lifecycle callbacks for free. There’s also a new @WorkflowScoped context that ties an agent instance’s lifecycle to a single workflow execution, alongside the option to use @ApplicationScoped for longer-lived, shared agents.
  • A lightweight LLM facade. Rather than trying to standardize the fast-moving world of LLM provider APIs, the spec introduces a minimal LargeLanguageModel interface for sending prompts and getting back typed or raw responses (backed by Jakarta JSON Binding), plus an unwrap() escape hatch for vendor-specific features – the same pattern Jakarta Persistence uses for EntityManager.
  • Jakarta EE alignment. Agents are designed to sit naturally alongside the rest of the platform – Persistence, Validation, Transactions, Concurrency, NoSQL, Data, and RESTful Web Services — so agent logic doesn’t have to live in a silo.

The spec’s examples chapter walks through realistic patterns: fraud detection, automated documentation generation from pull requests, a customer support agent and error-recovery workflows with parameter validation – all built from the same small set of annotations.

Get involved!

As Reza Rahman, who leads the project, put it: ‘The implementation, TCK and v1 release is close.’ M1 is the annotations-and-lifecycle milestone; a reference implementation and TCK (Technology Compatibility Kit) are the next pieces needed before a full 1.0 release. A programmatic workflow API – for dynamic, runtime-modifiable agent workflows – is also flagged as a future direction beyond 1.0.

If you’re already building on Jakarta EE and are curious about agentic AI, here’s what you can do:

We’d love to see you join the Jakarta Agentic AI Community!

The post Jakarta Agentic AI Hits Its First Milestone appeared first on foojay.