Agent tooling

On CAP Java the agent is a protocol adapter. @agent on an Application Service serves an A2A endpoint whose tools are a generic CDS QL query plus the service's unbound actions and functions, and the model is chosen by @agent.llm from a named cds.ai.chat.models configuration.

Showing artifacts, examples and content with confirmed Java applicability. View All CAP

Overview

SAP SHIPS

com.sap.cds:cds-adapter-agent turns an @agent-annotated Application Service into an A2A endpoint under /a2a/<service-path> with an agent card beside it. Its tools are a generic query tool that reads across the service's entities with CDS QL plus a tool for each unbound action or function, and the model comes from a named cds.ai.chat.models configuration the agent picks with @agent.llm, with aicore, ollama and mocked as the kinds.

Not covered: Bound actions and bound functions are not tools yet, so an operation defined on an entity is out of the agent's reach. Conversation history is held in volatile memory, which capire states means every follow-up prompt has to be sent to the same server instance. @agent.hitl, persistent chat history, telemetry, quotas, content filtering, audit logging and data privacy are listed as not yet supported here.

Core-only because a flavor is counted from the options that state it, and an artifact that does not say is never counted into a flavor.

SourceAI Integration — capire, CAP Javachecked
THE COMMUNITY ADDS

No community artifact is documented here.

Policy1

PolicySAP API Policy 4.2026a§ 2.2.2AlwaysAn 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 →
SourceCAP-level Agents, SAP API Policy — capirechecked SourceSAP API Policy v.4.2026achecked

Artifacts6

6 of 6 artifacts
ArtifactSignals
CLI tools2
@sap/joule-studio-cliCLI for Joule digital assistants and Joule Studio solutions
Signals
none
@sap/joule-work-dev-cli-early-adoptersPro-code CLI for building and deploying Joule Studio solutions
Signals
none
Packages1
com.sap.cds:cds-adapter-agentA2A adapter turning a CAP Java service into an LLM-backed agent
Signals
none
Services2
Joule Studio, classic editionLow-code SAP Build capability for custom Joule skills and agents
Signals
none
SAP JouleSAP's AI engagement layer across SAP applications
Signals
none
Web tools1
Joule StudioSAP's managed environment for building custom agents and workflows
Signals
none

Tasks3Beta

CoversStated not supportedNot assessed
Answer a user's question inside the application1 covers

Someone 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.

Covers the agent that runs in the application, the tools it gets from the service and the endpoint it is reached at. Reaching a model is LLM integration, exposing the same service to somebody else's agent is MCP servers, who may read a row is authorization, and the screen the conversation happens on is assessed on its own. Which entitlements a subaccount holds is a project question and is not assessed here.

Coverscom.sap.cds:cds-adapter-agentThe 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.

Open artifact →

Keep a conversation after the server restarts1 no

A 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.

Covers the state of one conversation between turns. What the agent remembers from an earlier conversation is a separate outcome; which database holds the rows is database connectors, keeping one tenant's rows apart is multitenancy, and how long a conversation may be kept is a data-protection question this record does not assess.

Stated not supportedcom.sap.cds:cds-adapter-agentcapire 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.

Open artifact →

Require a person's approval before the agent acts1 no

Before 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.

Covers holding the action and resuming the task. Who is allowed to approve is authorization, recording that they did is audit logging, and the screen the approval is given on is assessed on its own. An approval step modelled as a business workflow outside the agent is not this outcome.

Stated not supportedcom.sap.cds:cds-adapter-agentcapire 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.

Open artifact →

Details

Coverage
Designs that place it1
AI-native North Star architecture — Platform LayerAI-native North Star architecture — Platform Layerreference architecturemanaged agent runtime
Comparison properties5

These are the questions used to compare what the artifacts do. Values come from their documentation and may apply to a particular ecosystem or runtime. Each recorded value in the comparison opens its statement and sources.

What it bringsAgent frameworkProtocolsWhere state is keptApproval before an action
For your agent
Ref
capability:agent-tooling
JSON
/capabilities/agent-tooling.json
MCP
Connecting an agent