资讯动态

Jakarta Agentic Artificial Intelligence 1.0 (under development)

发布时间:2026/8/6 16:20:44 来源:尧图企业网站定制
Jakarta Agentic AI 项目提供了一套供应商中立的 API使得在 Jakarta EE 运行时上构建、部署和运行 AI 智能体变得简单、一致且可靠。Jakarta Agentic AI Specification这个最小化的初始版本旨在建立早期势头包括扩大认知度、参与度和采用率。随后我们计划基于不断发展的 Agentic AI 行业知识以及用户反馈进行快速迭代。该版本侧重于关键编程模型、模式、生命周期以及一个轻量级的 LLM 门面。后续版本可能会更多地关注程序化的生命周期管理以及工作流 API。API、规范及 TCK 的里程碑 1 版本现已可用。它作为一个非最终、草案状态的版本发布旨在收集早期社区反馈尚未经过批准最终规范所需的发布评审。The Jakarta Agentic AI project provides a set of vendor-neutral APIs that make it easy, consistent, and reliable to build, deploy, and run AI agents on Jakarta EE runtimes.This minimal initial release seeks to build early momentum, including broadening awareness, participation, and adoption. Subsequently, we aim to iterate quickly based on evolving industry knowledge on Agentic AI as well as user feedback.The release focuses on key programming models, patterns, life cycles, as well as a lightweight LLM facade. Subsequent releases will likely focus more on a programmatic life cycle management as well as workflow API.Milestone 1 of the API, specification, and TCK is already available. It is published as a non-final, draft-status release for early community feedback, and has not undergone the release review required to ratify a final specification.API ConceptsThe following annotated example demonstrates the key concepts this initial minimal release will aim to build consensus and momentum around.API ConceptsThe following annotated example demonstrates the key concepts this initial minimal release will aim to build consensus and momentum around./* * Simple agent for bank fraud detection. * Doesnt actually block a transaction but marks it suspect and sends notifications. */ // Infers agent type and name by default. // Default scope is agent workflow, but agents can have application scope. // Just a CDI bean annotated with Agent. Agent public class FraudDetectionAgent { // Injects default LLM in the implementation, but can be configured to inject specific ones. Inject private LargeLanguageModel model; // Regular CDI features just work. Inject private EntityManager entityManager; // Initiates the agent workflow. For this initial release, the workflow can only be triggered by // CDI events. // In the future, there could be many other types of triggers such as Jakarta Messaging, // REST POST, or direct invocation from a programmatic life cycle API. Trigger // Return type can be void or a domain object stored in the workflow and accessible in // the context. // Parameters are automatically added to the workflow context. private void handleTransaction(Valid BankTransaction transaction) { // Simple check to see if this is a type of transaction that makes sense to check for // fraud detection. // Could add a bit more data, likely looked up from a database, and return an enhanced // version of the transaction or return another domain object entirely. } // Can return boolean, a built-in Result record type, or any domain object. // In this initial release, workflows will automatically end with a negative result. // In subsequent releases, more robust decision flows should be possible, either with // annotations/EL and/or the programmatic workflow API. Decision private Result checkFraud(BankTransaction transaction) { /* * One of the value propositions of the LLM facade is automatic type conversion in Java, * both for parameters and return types. * * If nothing is specified, its all strings. * Probably only JSON and string are supported initially for conversion. * Queries can be parameterized similar to Jakarta Persistence. */ 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); } // Only one action here, but there could be multiple actions and/or decisions in sequence. // In the initial version, its just one linear flow. // In subsequent releases, the workflow API can define complex flows, including // pre-conditions for actions defined via annotation/EL. Action // Notice that we are automatically injecting domain objects from the workflow context. private void handleFraud(Fraud fraud, BankTransaction transaction) { /* * IMPORTANT FUNDAMENTAL CONCEPT: * This is an example of hard-coded logic, which would still be possible if desired. * * The power of a programmatic/structured workflow, instead, is that this could change * entirely at runtime, driven by further LLM queries. * Even for simple, static workflows, the API helps developers think through how agents * operate fundamentally - introducing a common vocabulary/patterns. * * Dynamically altered workflows could possibly be serialized into persistent storage. */ if (fraud.isSerious()) { alertBankSecurity(fraud); } Customer customer getCustomer(transaction); alertCustomer(fraud, transaction, customer); } // In this initial release, outcomes are essentially the same as actions, but specifically // mark the end of the workflow. // In subsequent releases, outcomes can do more powerful things such as pass a domain // object to a subsequent workflow or agent. // This is probably also where it best makes sense to dynamically alter a workflow using // a programmatic API. Outcome private void markTransaction(BankTransaction transaction) { // Mark a transaction suspect, probably in the database. } }--Jakarta Agentic Artificial Intelligence 1.0 (Under Development) | Jakarta EE | The Eclipse Foundation

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价