SampleSampletypeA worked example you read or clone. Evidence: it demonstrates, it never provides.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 →Reference

SAP-samples/btp-a2a-dispute-resolution

A cross-cloud demo in which agents on SAP, Google and Azure discover each other through Open Resource Discovery and settle a shipment dispute over the Agent-to-Agent protocol.

XStore disputes an invoice from Cymbal Direct after a short shipment of 900 t-shirts instead of the expected 1,000, and SAP Joule orchestrates the resolution: it identifies the agents it needs from an agent catalogue aggregated with Open Resource Discovery, creates a task plan, and routes each step over the Agent-to-Agent protocol. A mocked SAP dispute resolution agent confirms the invoice and shipment data from SAP S/4HANA, an agent deployed on Google Cloud retrieves the packaging slip showing only 900 shipped, and an agent deployed on Azure drafts the customer email under the dispute policy. It needs an SAP BTP subaccount with the Cloud Foundry runtime enabled, a Business Agent Foundation or Project Agent Builder subscription, and one or more A2A-enabled agent runtimes, for which the repository names Google Vertex AI Agent or Google Cloud Run and Azure AI Foundry Agent or Azure Web Apps. The repository calls its source code and architecture experimental, intended for research and proof-of-concept purposes and subject to change.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Demonstrates
Agent toolingBTPAgent 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.
Requires
SAP BTP, Cloud Foundry RuntimeSAP BTP, Cloud Foundry Runtimeartifactthe runtime the agent catalogue, the router and the CAP agent connector are deployed to

Who is behind it

SAP SamplesSAP SamplesOrganisationMaintains this
In the atlas: maintains 222
@SAP-samples
maintainerHarut Ter-MinasyanPersonContributes to this
In the atlas: contributes to 3
@hterminasyan
julian-schambeckPersonContributes to this
In the atlas: contributes to 6
@julian-schambeck
Kay SchmitteckertPersonContributes to this
In the atlas: contributes to 6
@kay-schmitteckert
Vedant GuptaPersonContributes to this
In the atlas: contributes to 2
@vedant-aero-ml
4 contributors

What it declares

Every artifact

Type
Sample
Origin
By SAP
Use as
A reference

As a sample

Form
does not say

Connections2

README

quoted from SAP-samples/btp-a2a-dispute-resolution under Apache-2.0, read
SAP-samples/btp-a2a-dispute-resolution/README.mdOn GitHub

Dispute Resolution with Multi-Agent Orchestration

REUSE status

Note

Experimental: The current source code and architecture are experimental, intended for research and proof-of-concept purposes, and are subject to change.

This repository demonstrates an end-to-end scenario where multiple organizations collaborate through domain-specific AI agents to resolve a customer dispute. The agents use an open Agent-to-Agent (A2A) communication protocol and Open Resource Discovery (ORD) to dynamically discover each other's capabilities and collaborate on complex tasks that exceed the scope of a single agent.

Architecture

Architecture Diagram

Note

This architecture illustrates AI agents integrated via point-to-point connections, as currently implemented. Alternatively, a centralized orchestrator per platform could be introduced.

Scenario

XStore disputes an invoice from Cymbal Direct after receiving a short shipment of 900 t-shirts instead of the expected 1,000. Vicky, an employee of Cymbal Direct, uses Joule to resolve the issue with the help of several backend agents representing different organizations and capabilities.

Watch the demo video to see the scenario in action:

Watch the video

Scenario Breakdown
  • User Prompt: Vicky reports a shipment discrepancy via Joule.
  • Joule as Orchestrator Agent Planning:
    • Identifies required agents from the Agent Catalog.
    • Creates a task plan for orchestration.
  • Agent Orchestration:
    • Dispute Resolution Agent, mocked (SAP): Confirms invoice and shipment data from SAP S/4HANA; expected 1,000 units.
    • Warehouse Insights Agent (Google): Analyzes logistics and retrieves a packaging slip showing only 900 t-shirts shipped.
    • Dispute Policy & Email Agent (Microsoft): Retrieves communication logs and creates an email draft to the customer according to the dispute policy.
  • Response to User:
    • Confirmation of dispute resolution creation and customer email.

Prerequisites

To run this project, ensure you have access to the following components:

  • SAP BTP Subaccount
  • Cloud Foundry Runtime enabled
  • Business Agent Foundation (BAF) / Project Agent Builder subscription
  • One or more A2A-enabled agent runtimes:
    • Google Vertex AI Agent or Google Cloud Run
    • Azure AI Foundry Agent or Azure Web Apps

Walkthrough & Hands-on Tutorial

  1. Provision A2A Agents
  2. Deploy the Agent Catalog
  3. Set up the Orchestrator as Scenario Entry Point
  4. Develop & Run locally
  5. Test It Yourself

Repository Structure

agent-catalog: Agent discovery and routing services
  • ord-aggregator: Acts as AGENT_CATALOG, aggregates Agent Cards across catalogs (SAP, GCP, Azure) using ORD.
  • a2a-router: Acts as AGENT_ROUTER which connects to ord-aggregator and routes requests to appropriate agents using A2A protocol (A2A Client)
agents: A2A agents on SAP, GCP and Azure
  • sap-agent-builder-a2a
    • agent-builder-a2a-agent-conntector: CAP application that wraps an Agent running on Agent Builder (SAP BTP) to enable A2A and exposing its Agent Card via Open Resource Discovery (ORD).
    • agent-builder-agent-exports: Exported agents from BAF
      • orchestrator: Joule's main entry point for the scenario
      • dispute-resolution-agent: Agent running on Agent Builder (SAP BTP) that handles dispute resolution.
  • gcp-adk-a2a: Agent deployed on GCP based on A2A and exposed Agent Card via Open Resource Discovery (ORD).
    • warehouse-insights-agent: Tracks stock movements across the warehouse and their causes in real-time.
  • azure-ai-foundry-a2a: Agent deployed on Azure based on A2A and exposed Agent Card via Open Resource Discovery (ORD).
    • dispute-email-agent: Agent that creates email drafts according to specific dispute policies for dispute resolution.

Known Issues

No known issues.

How to obtain support

Create an issue in this repository if you find a bug or have questions about the content.

For additional support, ask a question in SAP Community.

Contributing

If you wish to contribute code, offer fixes or improvements, please send a pull request. Due to legal reasons, contributors will be asked to accept a DCO when they create the first pull request to this project. This happens in an automated fashion during the submission process. SAP uses the standard DCO text of the Linux Foundation.

License

Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.

Apache-2.0, read

Details

Sources3
Added by handdiscovered herechecked
github.com/SAP-samples/btp-a2a-dispute-resolutiontree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

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
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainbtp, ai-and-agents
Contributors4

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:sap-samples-btp-a2a-dispute-resolution
JSON
/artifacts/sap-samples-btp-a2a-dispute-resolution.json
MCP
Connecting an agent