PackagePackagetypeA library you install and call yourself.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →

com.sap.cds:cds-adapter-agent

The A2A agent adapter for CAP Java, turning an @agent-annotated Application Service into a conversational endpoint whose queries and unbound actions become tools for a configured LLM.

Turns an @agent-annotated Application Service into a conversational endpoint: a generic query tool reads across the service's entities via CDS QL, and its unbound actions and functions become individually callable tools, all backed by a configured LLM. Its version comes from com.sap.cds:cds-services-bom; the module is added to srv/pom.xml, the CAP Java side of the same plugin capire documents for Node.js as @cap-js/agents, and by default the agent is served under /a2a/<service-path> with its agent card at the matching .well-known/agent-card.json endpoint, speaking version 0.3.0 of the A2A protocol, which capire states is for compatibility with Joule and Agent Gateway. The LLM is picked from a named cds.ai.chat.models configuration that an agent selects with @agent.llm, with aicore, ollama and mocked as the provider kinds, and falls back to SAP AI Core when a service binding for it is present, or to a mocked response otherwise. Chat history lives in volatile memory rather than a persistent store, so every follow-up in a conversation has to reach the same server instance, and only unbound actions and functions are exposed as tools: capire states that bound actions and bound functions are not supported yet, so an operation defined on an entity stays out of the agent's reach.

Facts

LicenceSAP DEVELOPER LICENSE AGREEMENT for CAP

Where it sits

Lives in
Provides
Agent toolingCAPAgent toolingcapabilityBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.
Flavors
Optional
SAP AI CoreSAP AI CoreartifactThe aicore chat model kind is used, which is CAP Java's default LLM configuration for the production and hybrid profiles.llm provider

Before choosing this

Conditions

PolicySAP API Policy 4.2026a§ 2.2.2from Agent toolingAn agent built into an application reaches SAP Application APIs, whether directly or through tools generated from a service that proxies them.
  • § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.

capire's own guide states that CAP-level agents are intended only for exposing custom CAP application services, and names section 2.2.2 for the agentic-access provisions. Check which endpoints the agent's tools end up calling, and consult SAP's reference architectures for the endorsed routes.

SAP API Policy 4.2026a →

What it declares

Every artifact

Type
Package
Origin
By SAP
Runtime
Java

As a package

Where it runs
does not say
Distributed through
does not say

For agent tooling

Between turns
Approval before an action
What it brings
Agent served from the service
Protocols
A2A
Where state is kept
In volatile memory
property statedstated nonot said

Tasks this contributes to3Beta

Answer a user's question inside the applicationSomeone using the application asks in plain words and the application answers from its own services, with the agent running inside the deployed application rather than in the asker's own AI client.Node.js, JavaCoversagent adapter in the service
What it does

The same annotation on an Application Service, with the tools derived differently: one generic query tool that reads across the service's entities with CDS QL, plus one callable tool per unbound action or function. The model comes from a named cds.ai.chat.models configuration the agent picks with @agent.llm, and the endpoint is A2A at /a2a/<service-path> with an agent card beside it.

Remaining work

Add the module to srv/pom.xml and configure a chat model. An operation defined on an entity has to be reachable some other way, since capire states bound actions and bound functions are not tools yet; and because conversation history is held in volatile memory, a question and its follow-up have to land on the same server instance.

All options on the Agent tooling page →
Keep a conversation after the server restartsA conversation with the agent survives a restart, and a follow-up that lands on another instance carries on where the last one left off instead of starting again.Node.js, JavaStated not supportedagent adapter in the service
What it does

capire states that CAP Java has no persistent chat history yet and holds the conversation in volatile memory, and draws the consequence itself: every follow-up prompt has to be sent to the same server instance. The guide for the plugin lists persistent chat history among the features not yet supported there.

Remaining work

A conversation that has to survive anything is the application's own problem here, and nothing retrieved describes a supported place to put it or a way to hand it back to the adapter.

All options on the Agent tooling page →
Require a person's approval before the agent actsBefore the agent runs an action that changes something, the task stops and waits for a person to approve or reject it, and carries on from there.Node.js, JavaStated not supportedagent adapter in the service
What it does

capire states in the section that documents the annotation that CAP Java does not support it yet, and lists content filtering, quotas, telemetry, persistent chat history, audit logging and data privacy in the same position. So an action the Java adapter exposes as a tool runs when the agent calls it.

Remaining work

An approval step has to sit outside the agent — in the action's own implementation, or in a workflow the action starts — and nothing retrieved describes how to resume an A2A task from there.

All options on the Agent tooling page →

Connections2

com.sap.cds:cds-adapter-agent connectionscom.sap.cds:cds-adapter-agentPROVIDES→ provides1provides stated Turns an @agent-annotated Application Service into an A2A endpoint, deriving a query tool and one tool per unbound action or function from the service, and backing the conversation with a configured LLM. AI Integration — Java, capire: https://cap.cloud.sap/docs/java/ai#ai AI Integration — Java, capire: https://cap.cloud.sap/docs/java/ai#ai AI Integration — Java, capire: https://cap.cloud.sap/docs/java/ai#ai AI Integration — Java, capire: https://cap.cloud.sap/docs/java/ai#ai AI Integration — capire, CAP Java, bound operations: https://cap.cloud.sap/docs/java/ai AI Integration — capire, CAP Java, A2A version: https://cap.cloud.sap/docs/java/ai AI Integration — capire, CAP Java, endpoint: https://cap.cloud.sap/docs/java/ai AI Integration — capire, CAP Java, model configuration: https://cap.cloud.sap/docs/java/ai AI Integration — capire, CAP Java, model kinds: https://cap.cloud.sap/docs/java/ai com.sap.cds:cds-adapter-agent — Maven POM: https://repo1.maven.org/maven2/com/sap/cds/cds-adapter-agent/5.1.1/cds-adapter-agent-5.1.1.pomAgent toolingNEEDS→ optionally needs1optionally needs stated If: The aicore chat model kind is used, which is CAP Java's default LLM configuration for the production and hybrid profiles. AI Integration — Java, capire: https://cap.cloud.sap/docs/java/ai#ai CAP-level Agents — capire: https://cap.cloud.sap/docs/guides/ai/cap-agentsSAP AI Coreif

Where it sits in your app

Download
Your CAP applicationYour SAP BTP subaccountdocumentedmay needif The aicore chat model kindis used, which is CAP Java'sdefault LLM configuration for th…com.sap.cds:cds-adapter-agent, modulecom.sap.cds:cds-adap…SAP AI Core, service instanceSAP AI Core
SAPnot SAP's, or the project's ownunder a condition
Agent tooling
  1. a2a-pluginExposes an annotated CDS service as an Agent-to-Agent agent
  2. @cap-js/agentsCDS plugin for building agents inside a CAP service
  3. cap-agent-ui5-webuiUI5 web interface for an agent built in a CAP service
  4. @mi8y/cap-agents-memoryLangGraph Store keeping agent memory as CDS entities
  5. @mi8y/cap-agents-sdm-backendDeep Agents filesystem over an SAP Document Management repository
  6. @mi8y/cds-langgraph-persistenceLangGraph checkpointer backed by CDS for CAP agents
  7. cds-agentsToolkit turning a CAP service into tools for agent frameworks
  8. Joule Studio, classic editionLow-code SAP Build capability for custom Joule skills and agents
  9. @sap/joule-studio-cliCLI for Joule digital assistants and Joule Studio solutions
  10. Joule StudioSAP's managed environment for building custom agents and workflows
  11. @sap/joule-work-dev-cli-early-adoptersPro-code CLI for building and deploying Joule Studio solutions
  12. SAP JouleSAP's AI engagement layer across SAP applications
  13. @saptarishi/cds-plugin-llmCAP service kind putting eleven model providers behind one API

Details

Sources1
Added by handdiscovered herechecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
runtimesjava
discovered viaAdded by hand
first seen in the atlas
ecosystem and domaincap, ai-and-agents
Flavors1
Java
“Agent (A2A) adapter for CDS Services Java” — com.sap.cds:cds-adapter-agent — Maven POMchecked
History in the atlas4
  1. plus the A2A version served, the three provider kinds, @agent.llm, and capire's own sentence that bound actions and bound functions are not supported yet
  2. brings: Agent served from the service, protocols: A2A, state_store: In volatile memory, human_approval: false
  3. Turns an @agent-annotated Application Service into an A2A endpoint, deriving a query tool and one tool per unbound action or function from the service, and backing the conversation with a configured LLM.
  4. First seen.
For your agent
Ref
artifact:cap-java-cds-adapter-agent
JSON
/artifacts/cap-java-cds-adapter-agent.json
MCP
Connecting an agent