SAP-samples/btp-a2a-dispute-resolution

GitHub: SAP-samples/btp-a2a-dispute-resolution

该项目演示了多个组织如何通过 A2A 协议和 ORD 发现机制,利用跨平台领域 Agent 协作解决端到端的企业客户争议问题。

Stars: 27 | Forks: 7

# 基于多 Agent 编排的争议解决 [![REUSE status](https://api.reuse.software/badge/github.com/SAP-samples/btp-a2a-dispute-resolution)](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 能力范围的复杂任务。 ## 架构 ![架构图](https://raw.githubusercontent.com/SAP-samples/btp-a2a-dispute-resolution/main/docs/architecture.svg) ## 场景 XStore 在收到 900 件 T 恤的短缺发货(而非预期的 1000 件)后,对 Cymbal Direct 的一张发票提出了争议。Cymbal Direct 的员工 Vicky 使用 **Joule**,在代表不同组织和能力的几个后端 Agent 的协助下解决了该问题。 观看演示视频以查看实际场景: [![观看视频](https://raw.githubusercontent.com/SAP-samples/btp-a2a-dispute-resolution/main/docs/img/demo.png)](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绕过, 示例项目, 逆向工具