diff --git a/README.md b/README.md index 61eaa64..2e460f0 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,16 @@ Zod. * Demonstrates implementation of UCP specifications for shopping, checkout, and order management using a Node.js stack. +### A2A (Agent-to-Agent) + +An AI-powered retail agent implementing UCP via the A2A protocol. + +* **Cymbal Retail Agent**: [Documentation](a2a/README.md) + * Located in `a2a/business_agent/`. + * Demonstrates A2A protocol integration with UCP Extension. + * Includes AI-powered shopping assistant with Google ADK and Gemini. + * React-based chat client for user interaction. + ## Getting Started Please refer to the specific README files linked above for detailed instructions diff --git a/a2a/README.md b/a2a/README.md index d1f594b..d29d27c 100644 --- a/a2a/README.md +++ b/a2a/README.md @@ -14,7 +14,7 @@ limitations under the License. --> -# A2A Business Agent with UCP Extension +# Cymbal Retail Agent with UCP Extension and A2A This sample demonstrates how to build an AI-powered shopping assistant using **[Universal Commerce Protocol (UCP)](https://ucp.dev)** - an open standard that enables interoperability between commerce platforms, merchants, and payment providers. @@ -48,14 +48,14 @@ The sample uses **[Google ADK](https://google.github.io/adk-docs/)** (Agent Deve

System Architecture
-How Client, A2A Protocol, Business Agent, and Store interact +How Client, A2A Protocol, Cymbal Retail Agent, and Store interact

Architecture Diagram

**Key points:** - **Client** sends requests with `UCP-Agent` header containing its profile URL -- **Business Agent** serves both `/.well-known/agent-card.json` (A2A) and `/.well-known/ucp` (UCP Profile) +- **Cymbal Retail Agent** serves both `/.well-known/agent-card.json` (A2A) and `/.well-known/ucp` (UCP Profile) - **Capability Negotiation** happens before processing - agent and client agree on supported features - **RetailStore** uses UCP SDK types internally for checkout, fulfillment, and payment data @@ -71,7 +71,7 @@ Before you begin, ensure you have: - [ ] Node.js 18+ - [ ] [Gemini API Key](https://aistudio.google.com/apikey) -### 1. Start the Business Agent +### 1. Start the Cymbal Retail Agent ```bash cd a2a/business_agent @@ -91,7 +91,7 @@ INFO: Started server process INFO: Uvicorn running on http://0.0.0.0:10999 ``` -This starts the business agent on port 10999. You can verify by accessing: +This starts the Cymbal Retail Agent on port 10999. You can verify by accessing: - **Agent Card:** http://localhost:10999/.well-known/agent-card.json - **UCP Profile:** http://localhost:10999/.well-known/ucp @@ -179,7 +179,7 @@ This sample uses the following UCP capabilities: ## Components -### Business Agent (`business_agent/`) +### Cymbal Retail Agent (`business_agent/`) AI shopping assistant built with Google ADK, exposed via A2A interface with UCP extension. @@ -202,7 +202,7 @@ React UI (TypeScript, Vite, Tailwind) that communicates via A2A and renders UCP ## Mock Store -The business agent uses an in-memory `RetailStore` to simulate a real backend: +The Cymbal Retail Agent uses an in-memory `RetailStore` to simulate a real backend: - **Products** - Loaded from `data/products.json` (cookies, chips, fruits, etc.) - **Checkouts** - Session-based checkout management with line items diff --git a/a2a/business_agent/README.md b/a2a/business_agent/README.md index 42d446e..7a45684 100644 --- a/a2a/business_agent/README.md +++ b/a2a/business_agent/README.md @@ -14,7 +14,7 @@ limitations under the License. --> -# Example Business Agent +# Cymbal Retail Agent Example agent implementing A2A Extension for UCP @@ -29,5 +29,5 @@ Example agent implementing A2A Extension for UCP 1. Run `uv sync` 2. Copy env.example to .env and update it with relevant Gemini API key. 3. Run `uv run business_agent` -4. This starts the business agent on port 10999. You can verify by accessing +4. This starts the Cymbal Retail Agent on port 10999. You can verify by accessing the agent card at http://localhost:10999/.well-known/agent-card.json