Inspiration

Planning group outings is chaos. Everyone has different budgets, schedules, and tastes — and someone always flakes. We wanted to build a system where AI agents do the hard work: collecting preferences, finding events, voting fairly, and handling payments — all without anyone downloading an app.

## What it does

It coordinates group event planning through autonomous AI agents. An organizer starts a conversation with our agent on ASI:One, gets a shareable form
link, and sends it to friends. Each friend submits their preferences (budget, time, location, likes, dislikes), and behind the scenes:

  • A FriendProfileAgent is created for each person, holding their private preferences
  • A DiscoveryAgent uses Browser Use Cloud to search real websites for events near everyone
  • Each FriendProfileAgent scores every event independently based on budget fit, category match, and time compatibility
  • A ConsensusAgent runs ranked-choice voting across all scores to pick the winner
  • Stripe Payment Links collect payment from each member before tickets are booked
  • A ReservationAgent automates the booking flow via browser automation

The organizer sees everything unfold in real-time through ASI:One's chat interface — progress bars for form submissions, voting results, payment status, and
booking confirmation.

## How we built it

Agent framework: Fetch.ai's uAgents with Chat Protocol, registered on Agentverse. The orchestrator is the only externally-facing agent — all others (friend, consensus, discovery) run internally in a shared Bureau.

Event discovery: Browser Use Cloud spins up real browser sessions to search San Diego event listings, verify venue distances via Haversine formula, estimate costs from menus/Yelp, and extract booking URLs.

Voting: Deterministic scoring with soft penalties — over-budget events get penalized (-1 per $10 over) rather than vetoed. Likes/dislikes match against
event names and descriptions, not just categories.

Intent parsing: Claude Sonnet parses natural language commands with full group context, so the organizer can say "tell me more about the karaoke one" and
the agent resolves it to the right numbered event.

Payments: Stripe Payment Links with webhook integration. Each payment triggers a progress notification to the organizer. After all payments clear, the
booking agent automatically navigates to the ticketing page.

Stack: Python, FastAPI, uAgents, Browser Use Cloud, Stripe, Claude API, ASI:One, Agentverse, Next.js.

## Challenges we faced

  • ASI:One's session model — we couldn't send unprompted notifications without ASI:One treating them as new prompts and generating its own responses. We had to carefully design which messages to send and when.
  • Agent-to-agent messaging — dynamically created FriendProfileAgents couldn't reliably receive messages through the Bureau, so we run scoring synchronously through the agent's identity while keeping the real agent instances for demo visibility.
  • Browser Use rate limits — free tier allows 3 concurrent sessions, so multiple groups searching simultaneously would queue up.
  • Stripe webhook integration — the Stripe SDK returns StripeObjects (not dicts), which broke our webhook handler until we added proper attribute access.

## What we learned

  • Multi-agent systems are powerful for coordination tasks but the messaging infrastructure matters more than the agent logic itself
  • Browser automation for real-world data (event listings, pricing, booking) is surprisingly effective but slow and rate-limited
  • LLM-based intent parsing dramatically improves UX over keyword matching, especially when you give it context about the current state
  • Stripe's Payment Links are the fastest path to collecting group payments without building a custom checkout

## What's next

  • Stripe Issuing for virtual cards so the booking agent can complete checkout automatically
  • Persistent storage (currently in-memory — state resets on restart)
  • Multi-group support per organizer with a dashboard view
  • Post-event settlement — split costs for dinner, Uber, etc.

Built With

Share this project:

Updates