SAP-samples/btp-a2a-dispute-resolution
GitHub: SAP-samples/btp-a2a-dispute-resolution
该项目演示了多个组织如何通过 A2A 协议和 ORD 发现机制,利用跨平台领域 Agent 协作解决端到端的企业客户争议问题。
Stars: 27 | Forks: 7
# 基于多 Agent 编排的争议解决
[](https://api.reuse.software/info/github.com/SAP-samples/btp-a2a-dispute-resolution)
本仓库演示了一个端到端场景,其中多个组织通过特定领域的 AI Agent 协作来解决客户争议。
这些 Agent 使用开放的 [Agent-to-Agent (A2A)](https://github.com/google/A2A) 通信协议和 [Open Resource Discovery (ORD)](https://github.com/open-resource-discovery/specification) 来动态发现彼此的能力,并协作完成超出单个 Agent 能力范围的复杂任务。
## 架构

## 场景
XStore 在收到 900 件 T 恤的短缺发货(而非预期的 1000 件)后,对 Cymbal Direct 的一张发票提出了争议。Cymbal Direct 的员工 Vicky 使用 **Joule**,在代表不同组织和能力的几个后端 Agent 的协助下解决了该问题。
观看演示视频以查看实际场景:
[](https://sapvideo.cfapps.eu10-004.hana.ondemand.com/?entry_id=1_kcgq0nd4)
### 场景分解
- **用户提示**:Vicky 通过 Joule 报告发货差异。
- **Joule 作为 Orchestrator Agent 进行规划**:
- 从 Agent Catalog 中识别所需的 Agent。
- 创建用于编排的任务计划。
- **Agent 编排**:
- **争议解决 Agent,模拟版 (SAP)**:确认来自 SAP S/4HANA 的发票和发货数据;预期为 1000 件。
- **仓库洞察 Agent (Google)**:分析物流并检索装箱单,显示仅发货了 900 件 T 恤。
- **争议政策与邮件 Agent (Microsoft)**:检索通信日志,并根据争议政策创建发给客户的邮件草稿。
- **向用户响应**:
- 确认争议解决的创建及发给客户的邮件。
## 前置条件
要运行此项目,请确保您有权访问以下组件:
- SAP BTP Subaccount
- 启用的 Cloud Foundry Runtime
- Business Agent Foundation (BAF) / Project Agent Builder 订阅
- 一个或多个启用 A2A 的 agent runtime:
- Google Vertex AI Agent 或 Google Cloud Run
- Azure AI Foundry Agent 或 Azure Web Apps
## 演练与动手教程
1. [配置 A2A Agents](docs/setup.md#provision-a2a-agents)
2. [部署 Agent Catalog](docs/setup.md#deploy-the-agent-catalog)
3. [将 Orchestrator 设置为场景入口点](docs/setup.md#set-up-the-orchestrator-as-scenario-entry-point)
4. [本地开发与运行](docs/setup.md#develop--run-locally)
5. [自行测试](docs/setup.md#test-it-yourself)
## 仓库结构
### [agent-catalog](/agent-catalog/):Agent 发现与路由服务
- `ord-aggregator`:作为 `AGENT_CATALOG`,使用 ORD 聚合跨目录(SAP、GCP、Azure)的 Agent Cards。
- `a2a-router`:作为 `AGENT_ROUTER`,连接到 `ord-aggregator` 并使用 A2A 协议(A2A Client)将请求路由到相应的 Agent。
### [agents](/agents/):SAP、GCP 和 Azure 上的 A2A agents
- [sap-agent-builder-a2a](/agents/sap-agent-builder-a2a/)
- agent-builder-a2a-agent-conntector:CAP 应用,封装了运行在 Agent Builder (SAP BTP) 上的 Agent,以实现 A2A,并通过 Open Resource Discovery (ORD) 公开其 Agent Card。
- agent-builder-agent-exports:从 BAF 导出的 agents
- `orchestrator`:Joule 在该场景中的主要入口点
- `dispute-resolution-agent`:运行在 Agent Builder (SAP BTP) 上、负责处理争议解决的 Agent。
- [gcp-adk-a2a](/agents/gcp-adk-a2a/):部署在 GCP 上、基于 A2A 的 Agent,并通过 Open Resource Discovery (ORD) 公开其 Agent Card。
- `warehouse-insights-agent`:实时跟踪仓库中的库存流动及其原因。
- [azure-ai-foundry-a2a](/agents/azure-ai-foundry-a2a/):部署在 Azure 上、基于 A2A 的 Agent,并通过 Open Resource Discovery (ORD) 公开其 Agent Card。
- `dispute-email-agent`:根据特定的争议政策创建邮件草稿以解决争议的 Agent。
## 已知问题
无已知问题。
## 如何获取支持
如果您发现错误或对内容有疑问,请在本仓库中[创建 issue](https://github.com/SAP-samples//issues)。
如需更多支持,请[在 SAP Community 中提问](https://answers.sap.com/questions/ask.html)。
## 贡献
如果您希望贡献代码、提供修复或改进,请发送 pull request。由于法律原因,贡献者在首次向本项目发送 pull request 时将被要求接受 DCO。这在提交过程中会以自动化的方式完成。SAP 使用 [Linux Foundation 的标准 DCO 文本](https://developercertificate.org/)。
## 许可证
版权所有 (c) 2026 SAP SE 或 SAP 附属公司。保留所有权利。本项目根据 Apache Software License 版本 2.0 获得许可,[LICENSE](LICENSE) 文件中另有说明的除外。
标签:A2A协议, 业务流程编排, 人工智能, 企业级应用, 多智能体协作, 用户模式Hook绕过, 示例项目, 逆向工具