{"ref":"artifact:cap-java-cds-adapter-agent","page":"/artifacts/cap-java-cds-adapter-agent","json":"/artifacts/cap-java-cds-adapter-agent.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"cap-java-cds-adapter-agent","name":"com.sap.cds:cds-adapter-agent","artifact_type":"package","ecosystem":"cap","domain":"ai-and-agents","origin_ring":"sap-official","description":{"one_line":"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.","short":"A2A adapter turning a CAP Java service into an LLM-backed agent","what_it_solves":"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](artifact:cap-java-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](artifact: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](artifact:btp-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."},"links":{"homepage":"https://central.sonatype.com/artifact/com.sap.cds/cds-adapter-agent","docs":"https://cap.cloud.sap/docs/java/ai#ai"},"identity":{"license":"SAP DEVELOPER LICENSE AGREEMENT for CAP"},"source_available":false,"compat":{"runtimes":["java"]},"flavors":[{"key":"java","source":{"url":"https://repo1.maven.org/maven2/com/sap/cds/cds-adapter-agent/5.1.1/cds-adapter-agent-5.1.1.pom","title":"com.sap.cds:cds-adapter-agent — Maven POM","checked":"2026-09-19","quote":"Agent (A2A) adapter for CDS Services Java"}}],"drafted_with_ai":true,"provides":[{"capability":"capability:agent-tooling","what_it_does":"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.","facets":[{"key":"brings","value":["Agent served from the service"],"source":{"url":"https://cap.cloud.sap/docs/java/ai","title":"AI Integration — capire, CAP Java","checked":"2026-10-15","quote":"A CAP agent turns a CDS service into a conversational endpoint."},"applies_to":{"ecosystems":["cap"],"flavors":["java"]}},{"key":"protocols","value":["A2A"],"source":{"url":"https://cap.cloud.sap/docs/java/ai","title":"AI Integration — capire, CAP Java, A2A","checked":"2026-10-15","quote":"Agents speak the A2A protocol, so any A2A-compatible client can talk to them."},"applies_to":{"ecosystems":["cap"],"flavors":["java"]}},{"key":"state_store","value":"In volatile memory","source":{"url":"https://cap.cloud.sap/docs/java/ai","title":"AI Integration — capire, CAP Java, chat history","checked":"2026-10-15","quote":"CAP Java doesn't yet have a persistent chat history. Instead, it stores conversation history in volatile memory. Hence, you need to send all follow-up prompts to the same server instance."},"applies_to":{"ecosystems":["cap"],"flavors":["java"]}},{"key":"human_approval","value":false,"source":{"url":"https://cap.cloud.sap/docs/guides/ai/cap-agents#using-agent-hitl","title":"CAP-level Agents, Using @agent.hitl — capire","checked":"2026-10-15","quote":"`@agent.hitl` is not yet supported by CAP Java"},"applies_to":{"ecosystems":["cap"],"flavors":["java"]}}],"sources":[{"url":"https://cap.cloud.sap/docs/java/ai#ai","title":"AI Integration — Java, capire","checked":"2026-09-19","quote":"A CAP agent turns a CDS service into a conversational endpoint."},{"url":"https://cap.cloud.sap/docs/java/ai#ai","title":"AI Integration — Java, capire","checked":"2026-09-19","quote":"It answers natural-language requests by using the service's entities, actions, and functions as tools, backed by an LLM."},{"url":"https://cap.cloud.sap/docs/java/ai#ai","title":"AI Integration — Java, capire","checked":"2026-09-19","quote":"A generic query tool allows the LLM to read data via CDS QL across all entities defined in the service."},{"url":"https://cap.cloud.sap/docs/java/ai#ai","title":"AI Integration — Java, capire","checked":"2026-09-19","quote":"Unbound actions and functions become individually callable tools, invoked by name."},{"url":"https://cap.cloud.sap/docs/java/ai","title":"AI Integration — capire, CAP Java, bound operations","checked":"2026-10-15","quote":"Bound actions and bound functions aren't supported yet."},{"url":"https://cap.cloud.sap/docs/java/ai","title":"AI Integration — capire, CAP Java, A2A version","checked":"2026-10-15","quote":"For compatibility reasons with Joule and Agent Gateway, version 0.3.0 of the A2A protocol is used by default."},{"url":"https://cap.cloud.sap/docs/java/ai","title":"AI Integration — capire, CAP Java, endpoint","checked":"2026-10-15","quote":"By default the agent is served under `/a2a/<service-path>`, with its agent card available at the corresponding `.../.well-known/agent-card.json` endpoint."},{"url":"https://cap.cloud.sap/docs/java/ai","title":"AI Integration — capire, CAP Java, model configuration","checked":"2026-10-15","quote":"An agent picks its model configuration via the `@agent.llm` annotation, which defaults to the configuration named `llm`."},{"url":"https://cap.cloud.sap/docs/java/ai","title":"AI Integration — capire, CAP Java, model kinds","checked":"2026-10-15","quote":"The model provider: `aicore`, `ollama`, or `mocked`."},{"url":"https://repo1.maven.org/maven2/com/sap/cds/cds-adapter-agent/5.1.1/cds-adapter-agent-5.1.1.pom","title":"com.sap.cds:cds-adapter-agent — Maven POM","checked":"2026-09-19","quote":"Agent (A2A) adapter for CDS Services Java"}]}],"requires":[{"ref":"artifact:btp-ai-core","requirement":"conditional","role":"llm-provider","condition":"The aicore chat model kind is used, which is CAP Java's default LLM configuration for the production and hybrid profiles.","sources":[{"url":"https://cap.cloud.sap/docs/java/ai#ai","title":"AI Integration — Java, capire","checked":"2026-09-19","quote":"If no configuration matches, CAP Java falls back to aicore when an SAP AI Core service binding is present, and to mocked otherwise."},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-agents","title":"CAP-level Agents — capire","checked":"2026-09-19","quote":"The default for production and hybrid, connects to SAP AI Core"}]}],"history":[{"date":"2026-09-19","field":"provides.what_it_does","from":null,"to":"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.","reason":"New CAP Java protocol adapter discovered through capire and its Maven Central POM. Facts describe the pinned capire commit 8b8b5810 and the 5.1.1 release; not verified deployment compatibility."},{"date":"2026-10-15","field":"description.what_it_solves","from":"the A2A endpoint, the agent card, the cds.ai.chat.models configuration, the SAP AI Core fallback, volatile chat history and unbound-only tools","to":"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","reason":"The CAP Java AI page re-read on 2026-10-15 states three things the paragraph did not carry: that version 0.3.0 of the A2A protocol is used by default for compatibility with Joule and Agent Gateway, that the provider kinds are aicore, ollama and mocked and an agent picks a configuration with @agent.llm, and — explicitly — that bound actions and bound functions are not supported yet. The entry had inferred the last one from the unbound-only tool sentence; it is now the maintainer's own statement, quoted on the edge."},{"date":"2026-10-15","field":"provides.agent-tooling.facets","from":null,"to":"brings: Agent served from the service, protocols: A2A, state_store: In volatile memory, human_approval: false","reason":"capability:agent-tooling declared four comparison properties on 2026-10-15. All four values are scoped to the java flavor, the only one this module states, and the last two are stated negatives rather than absences: capire states that conversation history sits in volatile memory and that @agent.hitl is not yet supported by CAP Java. The harness property is left out: neither page names an agent framework underneath the Java adapter."}],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-19"}},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"unknown","evidence":"no contributor data"},{"label":"Repository","tier":"unknown","evidence":"no repository data"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"unknown","evidence":"no repository data"}],"practice":[{"label":"Tests","tier":"unknown","evidence":"not crawled"},{"label":"Docs","tier":"unknown","evidence":"docs link declared, tree not read"},{"label":"Changelog","tier":"unknown","evidence":"not crawled"}],"reach":[{"value":null,"unit":"installs/week"},{"value":null,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name"},"edges":{"maintainers":[],"contributors":[],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}