Converge
Describe what you want once, and let stores' AI agents compete for your order.
Inspiration
Buying something like a laptop or headphones means repeating the same needs at every store: your budget, deadline, the specs you care about. Then you compare offers that don't line up. In a physical shop you could say "here's what I need, who'll give me the best deal?" We wanted that for online shopping, without the buyer losing control and without an AI ever spending money for them.
What it does
Converge works like asking several stores for an offer at once:
- Describe it once. The buyer explains what they want in plain language. An intake chat asks at most three rounds of questions and builds a brief the buyer can edit. A budget only becomes a hard limit when the buyer confirms it, and the maximum stays private.
- Seller agents bid. Each merchant's AI agent searches only its own catalog. It gets a cleaned-up brief, never the buyer's raw prompt or maximum budget. Each agent proposes a bundle, and the backend checks it against that merchant's pricing and service rules.
- A moderated competition. All merchants see the same snapshot of public offers. Each can defend its offer or challenge one rival, the challenged merchant replies once, and the platform checks those claims. Every eligible merchant then submits one sealed final offer.
- Independent evidence. Real web reviews and Reddit comments are attached to each product, with citations. Missing evidence is shown, not hidden.
- The buyer decides. Offers are compared on full delivered price, fit and terms. Fixed rules rank them, the AI explains the tradeoffs, and only the buyer approves an exact quote. Stock is held and a clearly labeled simulated order is recorded. No real payment is taken.
Merchants also get a seller workspace: inventory, bulk upload, product pages, orders, analytics, and a versioned pricing policy. That policy sets the limits their agent can never exceed.
How we built it
- Frontend: React 19, TypeScript and Vite. We designed it in Figma first: Figma Design and Design Workflow
- Backend: Convex is the single source of truth (database, queries, mutations, actions). Convex Workflow runs the buyer process so it survives restarts and picks up after a reload. Convex Auth handles anonymous and password sessions. Scheduled jobs clean up old data and restart stuck runs.
- Seller agents: a Fetch.ai uAgent (Python,
uagents) hosted on Agentverse, reached through an HTTP gateway. It handles opening bids, defenses and replies, and final offers. Convex re-checks everything it returns. - Buyer agents: CREAO agents handle intake, comparison and the council's explanations.
- Evidence: Apify's RAG Web Browser finds and scrapes product reviews automatically. A separate Reddit search adds owner comments. A Python Apify actor only fetches approved, public URLs.
- Shared contracts: one schema, written with Zod, is exported to JSON Schema so the TypeScript backend and Python workers can't drift apart.
- Safety and quality: AI agents propose and fixed rules decide. Agents never see secrets, other merchants' private data, or the buyer's ceiling. We tested with Vitest,
convex-test, Node's built-in test runner and Pythonunittest, and CI enforces audited, pinned dependencies.
Challenges we ran into
- Making competition fair without leaking information. Merchants needed enough shared context to make real counteroffers, but never a rival's costs, floors or sealed terms. We solved it with one frozen public snapshot per round and sealed finals that stay hidden until the round closes.
- Keeping AI in check. A language model shouldn't decide what's affordable or allowed. Every agent output goes through fixed backend checks before it can change state.
- Running a Python agent next to a serverless backend. Agentverse-hosted agents don't expose an HTTP POST endpoint, so we built a token-authenticated gateway that translates Convex calls into uAgents queries.
- Integrating as four people at once. Separate buyer and seller branches, squash merges and a shared contract package meant careful conflict resolution and a strict "one owner for every write" rule.
Accomplishments that we're proud of
- A full purchase works end to end on a real Convex deployment: anonymous session, confirmed brief, three merchants, the competition, sealed finals, stock hold, buyer approval, simulated order, and a receipt that survives a reload.
- The real Python seller-agent logic passes an end-to-end workflow test through the HTTP adapter.
- Live Apify runs pulled cited review excerpts from review sites and Reddit.
- More than 100 automated tests across the backend, buyer, seller and Python workers.
What we learned
- "AI proposes, rules decide" is a good pattern for agentic commerce. It keeps the product trustworthy and the demo honest.
- Being clear about privacy boundaries (what each agent can see) mattered more than prompt tricks.
- Durable workflows make multi-agent processes much easier to reason about than chained callbacks.
What's next for Converge
- Open to any merchant. Today we run three fictional merchants. Next, real stores could sign up, import their own catalog, and set the pricing rules their agent must follow.
- More ways to ask. Add voice and photo requests, so a buyer could snap a broken charger and say "find me this, but faster."
- Wider shopping. Support more categories (clothing, home goods, small appliances) and multi-store orders, where the best bundle splits across sellers.
- Insights for sellers. Show merchants why they lost a bid (price, delivery speed or missing evidence) without revealing any rival's private terms.
Mana chats
https://www.mana.space/shared-chats/LddFKCIDJyPuAssYpcBpqXVpgcJ3/0017928696344713ee11b045fbc49f6b509 https://www.mana.space/shared-chats/LddFKCIDJyPuAssYpcBpqXVpgcJ3/001792919986762e55be3ac6b054e1f986d
Built with
react · typescript · vite · convex · convex-auth · convex-workflow · zod · fetch.ai · uagents · agentverse · creao · apify · python · docker · vitest · figma · github-actions
Built With
- agentverse
- apify
- convex
- craeo
- docker
- fetch.ai
- figma
- python
- react
- typescript
- uagents
- vite




Log in or sign up for Devpost to join the conversation.