Some background: I've been working on tooling for UCP (Universal Commerce Protocol) for a few months. UCP is the open standard Google and Shopify announced in January - it lets AI agents discover stores via /.well-known/ucp and complete purchases through standardized APIs.
I built Agorio because when I tried to build a shopping agent against the UCP spec, I had to:
1. Write my own profile parser that handles both capability formats in the spec
2. Build a checkout state machine (incomplete → requires_escalation → ready_for_complete → completed)
3. Create a mock merchant from scratch just to test against
4. Wire up LLM function calling with JSON Schema tool definitions
None of this was commerce-specific - it was all protocol plumbing. So I extracted it into a reusable SDK.
The key abstractions:
- LlmAdapter - two methods: chat(messages, tools) and modelName. Any LLM with function calling works. The Gemini adapter is ~100 lines.
- ShoppingAgent - takes an LlmAdapter, runs plan-act-observe with 12 tools. Manages cart state, checkout sessions, order history.
- UcpClient - fetches /.well-known/ucp, normalizes capabilities, resolves REST/MCP/A2A transports.
- MockMerchant - full Express server with UCP profile, OpenAPI schema, 10 products, checkout flow, order tracking. Supports chaos testing with configurable latency and error rates.
Technical choices I'd like feedback on:
- Is a plan-act-observe loop the right pattern, or should I support ReAct / tree-of-thought?
- Currently UCP-only. ACP client is planned for v0.2. Should I prioritize that?
- The LlmAdapter interface is deliberately minimal. Too minimal?
Would love feedback from anyone building with LLM function calling or commerce APIs. Happy to talk UCP/ACP protocol details.
Quick context: UCP was announced Jan 11, 2026 by Google, Shopify, and 25+ partners. It's an open standard that lets AI shopping agents discover and interact with e-commerce stores.
I built UCPtools because:
1. There was no easy way to validate UCP profiles
2. Merchants had no visibility into AI agent traffic to their stores
3. No monitoring existed for when profiles break
The free validator is unlimited - paste any URL, get instant results.
The paid tier ($9/mo) adds AI Agent Analytics - you can see exactly which AI agents (Gemini, Perplexity, Claude) are visiting your store, what they're doing, and get alerted if something breaks.
The spec is genuinely open (ucp.dev) - anyone can implement it without being a partner. Just publish a JSON file at /.well-known/ucp.
Built a free validator at ucptools.dev to check implementations.
Tested several "partner" sites and almost no one has deployed it yet, including google.com (returns 404). The 60+ endorsements are just that - endorsements, not implementations.
If anyone wants to test their implementation, I built a free validator:
ucptools.dev
Checks version format, service bindings, capabilities, namespace rules,
signing keys (for Order capability), etc. Shows exactly which fields
are missing or malformed.
Built a free validator for this at ucptools.dev - checks /.well-known/ucp
compliance against the spec and gives A-F grading with specific fix
recommendations.
Interesting finding: tested major retailers and even google.com returns
404 on their UCP endpoint. Early days.
Also made an Apify Actor for bulk validation if anyone needs to check
multiple domains programmatically.
Some background: I've been working on tooling for UCP (Universal Commerce Protocol) for a few months. UCP is the open standard Google and Shopify announced in January - it lets AI agents discover stores via /.well-known/ucp and complete purchases through standardized APIs.
I built Agorio because when I tried to build a shopping agent against the UCP spec, I had to:
1. Write my own profile parser that handles both capability formats in the spec 2. Build a checkout state machine (incomplete → requires_escalation → ready_for_complete → completed) 3. Create a mock merchant from scratch just to test against 4. Wire up LLM function calling with JSON Schema tool definitions
None of this was commerce-specific - it was all protocol plumbing. So I extracted it into a reusable SDK.
The key abstractions:
- LlmAdapter - two methods: chat(messages, tools) and modelName. Any LLM with function calling works. The Gemini adapter is ~100 lines. - ShoppingAgent - takes an LlmAdapter, runs plan-act-observe with 12 tools. Manages cart state, checkout sessions, order history. - UcpClient - fetches /.well-known/ucp, normalizes capabilities, resolves REST/MCP/A2A transports. - MockMerchant - full Express server with UCP profile, OpenAPI schema, 10 products, checkout flow, order tracking. Supports chaos testing with configurable latency and error rates.
Technical choices I'd like feedback on:
- Is a plan-act-observe loop the right pattern, or should I support ReAct / tree-of-thought? - Currently UCP-only. ACP client is planned for v0.2. Should I prioritize that? - The LlmAdapter interface is deliberately minimal. Too minimal?
Would love feedback from anyone building with LLM function calling or commerce APIs. Happy to talk UCP/ACP protocol details.