Product search (Channel3)
Agents shop better when they can find real products. AgentGuard integrates Channel3, a product catalog API for agentic commerce, so an agent can search millions of products across retailers inside the limits of the mandate the user signed.
Channel3 is discovery only. It never authorizes a payment:
- The agent searches. AgentGuard forwards the query to Channel3 with the mandate's currency and the most one payment may still cost (
min(max_per_transaction, remaining budget)) as the price ceiling. Each result carries an advisorymandate_fitpre-check. - The agent asks the merchant for a PayPal order (intent
AUTHORIZE) whose line itemskuis the result'sproduct_id(channel3:<id>). - The agent calls
pay_paypal_order. AgentGuard reads payee, amount and items from PayPal and runs every deterministic mandate check, exactly as without Channel3. - For line items whose sku is a Channel3 id, AgentGuard also looks up Channel3's cheapest new, in-stock offer. If PayPal's unit price is more than 10% above it, the payment is held for the user's passkey approval (
catalog_price_above_market). The reference price can only escalate; it can never approve, and a Channel3 outage never blocks a payment the mandate allows.
Every search is appended to the hash-chained audit ledger as catalog.search.
Agent: MCP tool
The AgentGuard MCP server exposes search_products (read-only) next to pay_paypal_order:
{ "name": "search_products", "arguments": { "mandate_id": "mdt_…", "query": "65W USB-C charger", "limit": 8 } }Agent: HTTP
curl -s -X POST $AGENTGUARD_URL/v1/agent/products/search \
-H "authorization: Bearer $AGENTGUARD_AGENT_KEY" -H 'content-type: application/json' \
-d '{"mandate_id":"mdt_…","query":"65W USB-C charger"}'The response lists products[] with product_id, title, brand, image, offers[] (retailer, price, availability), best_offer and mandate_fit, plus max_price and currency (the ceiling that was applied). Searches count toward the agent's 30 requests/minute limit.
Owner console
Product search in the console runs the same search for any active mandate and shows each product's mandate fit: fits mandate, needs your approval (above the mandate's approval threshold), or outside mandate (with the reason).
Configuration
| Variable | Default | |
|---|---|---|
CHANNEL3_API_KEY |
— | Free developer key from trychannel3.com/sign-up/developer (1,000 searches a month). Without it, search returns 503 and the console says it is not configured. |
CHANNEL3_BASE_URL |
https://api.trychannel3.com |
Override for testing. |
AGENTGUARD_CATALOG_PRICE_TOLERANCE |
0.10 |
How far above Channel3's cheapest offer a PayPal unit price may be before the payment is held for the user. |