{"ref":"content:building-a-pro-code-agent-on-sap-btp-part-3-joule-integration-via-a2a","page":"/content/building-a-pro-code-agent-on-sap-btp-part-3-joule-integration-via-a2a","json":"/content/building-a-pro-code-agent-on-sap-btp-part-3-joule-integration-via-a2a.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"building-a-pro-code-agent-on-sap-btp-part-3-joule-integration-via-a2a","title":"Building a Pro-Code Agent on SAP BTP — Part 3: Joule Integration via A2A","url":"https://community.sap.com/t5/technology-blog-posts-by-sap/building-a-pro-code-agent-on-sap-btp-part-3-joule-integration-via-a2a/ba-p/14465454","content_type":"blog","published_on":"source:sap-community","explains":["capability:authentication","capability:deployment","capability:agent-tooling"],"summary":"The third instalment of a three-part series deploys an already-built CAP service and [LangGraph](external:langgraph) agent to [SAP BTP, Cloud Foundry Runtime](artifact:btp-cloud-foundry-runtime), wraps the agent in an A2A protocol server, and registers it with [SAP Joule](artifact:sap-joule) through a capability YAML and the [@sap/joule-studio-cli](artifact:sap-joule-studio-cli), confirming the chain works end to end inside a real Joule assistant. It covers CAP's default JWT/XSUAA authentication in production, what a test deployment needs to get past it, and the cf push, mbt build and environment wiring that run both apps as separate Cloud Foundry containers. A closing section names what stays unfinished by design — a long-lived AI Core service key, no authentication on the BTP destination, no principal propagation — as the gap between this MVP and a production posture.","author":"rodfior","published":"2026-08-20","provenance":{"discovered_via":[{"source":"source:sap-community","channel":"agentic-ai-tag"},{"source":"source:sap-community","channel":"joule-tag"}],"first_seen":"2026-10-25"},"drafted_with_ai":true},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"good","evidence":"published 2 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"good","evidence":"no recorded change after 2026-08-20"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":null,"unit":"views"},{"value":null,"unit":"comments"},{"value":null,"unit":"likes"}]},"signals":null,"series":null,"edges":{"authors":[]}}