{"ref":"artifact:sap-samples-btp-joule-a2a-pro-code-agent","page":"/artifacts/sap-samples-btp-joule-a2a-pro-code-agent","json":"/artifacts/sap-samples-btp-joule-a2a-pro-code-agent.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-btp-joule-a2a-pro-code-agent","name":"SAP-samples/btp-joule-a2a-pro-code-agent","artifact_type":"sample","ecosystem":"cap","use_as":"reference","domain":"ai-and-agents","origin_ring":"sap-official","description":{"one_line":"A reference Agent-to-Agent implementation on SAP BTP that lets Joule delegate sales-quotation optimisation to a CAP pro-code agent using SAP-RPT-1 for forecasting.","short":"A2A reference letting Joule delegate to a CAP pro-code agent","what_it_solves":"A CAP agent built with LangGraph and the SAP Cloud SDK for AI implements the Agent-to-Agent protocol so that Joule can delegate a task to it as a third-party agent rather than call a fixed skill. The worked example is a Sales Optimization Agent: given a sales inquiry, it fetches payment terms and discounts, generates several fictional quotations, and scores them with the SAP-RPT-1 forecasting model on conversion probability, payment delay and a win-versus-customer-win rating before returning the top three to the user in Joule. A webhook server handles asynchronous push notifications for tasks that run long, and Terraform scripts provision the full BTP landscape: subaccount, Cloud Foundry, IAS trust, Joule, AI Core and HANA."},"links":{"repo":"https://github.com/SAP-samples/btp-joule-a2a-pro-code-agent"},"type_properties":{"form":{"value":"reference-application","sources":[{"url":"https://github.com/SAP-samples/btp-joule-a2a-pro-code-agent","title":"SAP-samples/btp-joule-a2a-pro-code-agent — README","checked":"2026-10-18","quote":"This repository serves as a **reference implementation** for building enterprise-grade, \"Pro-Code\" Agents on the SAP Business Technology Platform (BTP)."}]}},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:agent-tooling"],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"},"contributors":["actor:julian-schambeck","actor:kay-schmitteckert","actor:mar-hol","actor:robinpurschwitz"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"6 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-05, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 10 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":22,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":22,"forks":9,"open_issues":0,"archived":false,"pushed_at":"2026-05-20","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2026-04-10T07:14:02Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":10643,"docs_files":0,"changelog":false,"license_file":true,"dts_files":2,"first_commit":"2026-04-10","last_commit":"2026-05-20","commits":14,"contributors":6,"readme_path":"README.md","readme_sha":"dfeb952883a1280487546db197ff66ebd5417dcf","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:julian-schambeck","name":"julian-schambeck","json":"/actors/julian-schambeck.json"},{"ref":"actor:kay-schmitteckert","name":"Kay Schmitteckert","json":"/actors/kay-schmitteckert.json"},{"ref":"actor:mar-hol","name":"mar-hol","json":"/actors/mar-hol.json"},{"ref":"actor:robinpurschwitz","name":"Robin","json":"/actors/robinpurschwitz.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}