Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jakarta Agentic AI Specification - Status and F...

Avatar for Reza Rahman Reza Rahman
December 12, 2025

Jakarta Agentic AI Specification - Status and Future

This talk outlines the current status and roadmap of the Jakarta Agentic AI specification.

AI agents are one of the most prominent developments in enterprise and cloud native computing in decades. They promise to fundamentally accelerate innovation, automation, and productivity by leveraging AI in virtually every industry. Agents operate by leveraging Neural Networks, Machine Learning (ML), Natural Language Processing (NLP), Large Language Models (LLMs), and many other AI technologies to aim to perform specific tasks autonomously with little or no human intervention. They detect events, gather data, generate self-correcting plans, execute actions, process results, and evolve subsequent decisions. Examples include self-driving cars, security monitors, Site Reliability Engineering (SRE) agents, stock monitors, code/application generators, health monitors, customer service agents, manufacturing robots, and many others.

The Agentic AI specification aims to provide a set of APIs that make it easy, consistent, and reliable to build, deploy, and run AI agents on Jakarta EE runtimes. The technology aims to do for developing AI agents what Servlet did for HTTP processing, Jakarta REST did for RESTful web services, or perhaps most appropriately, Jakarta Batch did for batch processing. It defines common usage patterns/life cycles for AI agents, provides a very minimal LLM facade, allows defining dynamic agent workflows that can change at runtime, integrates with other key Jakarta EE APIs such as CDI, Validation, JSON Binding, Persistence, Messaging, and much, much more.

Avatar for Reza Rahman

Reza Rahman

December 12, 2025

More Decks by Reza Rahman

Other Decks in Technology

Transcript

  1. Jakarta Agentic AI • Vendor-neutral APIs to make it easy,

    consistent, and reliable to build, deploy, and run AI agents on Jakarta EE runtimes • Launched late 2025, first release Q4 2026, build community momentum • Standalone specification, Java SE 17/Jakarta EE 10 baseline https://jakartaee.github.io/agentic-ai/ Public | Please Use with Attribution 2
  2. Java and the AI Ecosystem A2A Agents RAG Jakarta Agentic

    AI Claud Ollama Embabel ChatGPT MCP Large Language Models Claude Code Spring AI LangChain4j Gemini OpenAI Public | Please Use with Attribution 3 Generative AI GitHub Copilot
  3. Agent Examples • Code/application generators • Customer service/tech support agents

    • Self-driving cars • Security monitors • Site Reliability Engineering (SRE) agents • Stock monitors • Health monitors • Manufacturing/industrial/logistics robots • Travel planning/reservations Public | Please Use with Attribution 4
  4. What Do Agents Do? Detect change Process results Execute actions

    Plan Adapt Produce output Handle input Make change AI Agent Trigger next steps Process event Gather data Public | Please Use with Attribution Get user input 5 Call LLM Trigger event
  5. Jakarta Agentic AI Scope • Common usage patterns and life

    cycles for agents running on Jakarta EE runtimes • Minimal LLM facade without attempting to standardize LLMs – provide easy access to existing LLM APIs such as LangChain4j and Spring AI • Agent workflows/plans that can change dynamically at runtime using a fluent Java API • Integration with other Jakarta EE APIs such as Validation, JSON Binding, Persistence, Data, Transactions, NoSQL, Concurrency, REST, Messaging, Security • Jakarta Config/MicroProfile Config • OpenTelemetry support • Make reasonable effort to keep API potentially usable in Quarkus, Micronaut, Spring Boot Public | Please Use with Attribution 6
  6. A Code Example // Simple agent for bank fraud detection,

    doesn't block transaction but marks it suspect and sends notifications. @Agent public class FraudDetectionAgent { @Inject private LargeLanguageModel model; @Inject private EntityManager entityManager; @Trigger private void processTransaction(@Valid BankTransaction transaction) { // Check to see if this is a type of transaction that makes sense to check for fraud detection. } @Decision private Result checkFraud(BankTransaction transaction) { String output = model.query("Is this a fraudulent transaction? If so, how serious is it?", transaction); boolean fraud = isFraud(output); // Does some simple custom text parsing. Fraud details = null; if (fraud) details = getFraudDetails(output); // Does some simple custom text parsing, possibly involving database queries. return new Result(fraud, details); } @Action private void handleFraud(Fraud fraud, BankTransaction transaction) { if (fraud.isSerious()) alertBankSecurity(fraud); Customer customer = getCustomer(transaction); alertCustomer(fraud, transaction, customer); } @Outcome private void markTransaction(BankTransaction transaction) { // Mark a transaction suspect, probably in the database. } } Public | Please Use with Attribution 7
  7. @Agent • Define agent and its basic life-cycle/scope • Agent

    just a CDI bean • Default is @WorkflowScoped, but agents can be @ApplicationScoped • Allows injecting agent by type/name, likely from session API Public | Please Use with Attribution 8
  8. @Trigger • Process events and start agent workflow • For

    initial release, workflow can only be triggered by CDI events • Could be many other types of triggers such as Jakarta Messaging, REST POST request, or direct invocation from session API Public | Please Use with Attribution 9
  9. @Decision • Simple decision point for agent • Return boolean,

    built-in Result Record type, or domain object • In initial release, simple linear workflows automatically end with negative result • More robust, dynamic decision flows will be possible, either with annotations/EL or programmatic workflow API Public | Please Use with Attribution 10
  10. @Action • Simple step agent takes • Can define order

    other than simple natural sequence • Could have pre-conditions defined via annotation/EL Public | Please Use with Attribution 11
  11. @Outcome • Denotes end of agent workflow • Outcomes could

    do more powerful things such as pass domain object to subsequent workflow, agent, or caller Public | Please Use with Attribution 12
  12. Simple LLM Facade • Targeted towards simplest and most common

    cases • Allows easy access to underlying LLM API similar to how Jakarta Persistence does unwrapping • Important value proposition is automatic type conversion in Java, both for parameters and return types • JSON and string supported initially for conversion • If no type is specified, it's all strings for simplicity • Closely follows Jakarta Persistence query API paradigms • Like Jakarta Persistence allow some common configuration and ability to choose provider Public | Please Use with Attribution 13
  13. After Initial Release • 1.0 release intentionally minimal - seek

    early momentum, awareness, participation, adoption • After 1.0 iterate quickly based on evolving industry knowledge on Agentic AI as well as user feedback • Workflow/plan API • Agent session API – start, stop, pause, get state • Human-in-the-loop/@Await • Advanced features – retry, circuit breaker, conditional loops, parallelism, so on • A2A binding • Separate specifications for LLM (could include RAG), MCP (client and server) Public | Please Use with Attribution 14