About RideFare

Inspiration for my project

I commute a lot for work, visiting family, and leisure. Anyone who travels frequently knows the "ride-share shuffle", where you're stuck opening Uber, Lyft, and maybe Waymo to frantically compare ETAs, prices, and vehicle types while standing on a street corner. Existing aggregators only solve the display problem; they still leave the final decision to the human and treat every quote as static. I was inspired to build RideFare by asking myself: What if we treated ride selection as a multi-agent negotiation problem instead? I wanted to build a "society of agents" that could argue over your ride and make the best decision for you, acting like a personal dispatcher rather than just a calculator.

What it does

RideFare is a multi-agent ride-hailing negotiation system. It takes natural-language rider intent and runs a live negotiation.

  • Provider Agents (representing Uber, Lyft, Waymo, etc.) generate simulated bids and argue their case based on price, ETA, and current demand.
  • A Constraint Agent translates the rider's fuzzy preferences into strict hard and soft constraints.
  • A Coordinator Agent (powered by Qwen Cloud) arbitrates the bids, resolves conflicts (like a tie between speed and price), and makes a final, explainable recommendation.

The coolest part is the negotiation trace UI, which gives the user full visibility to see exactly how the agents argued and why the final decision was chosen.

How I built it

I architected the system with a clear separation of concerns:

  • Frontend: A Next.js and Tailwind application that replicates the familiar Uber.com input flow but adds my live negotiation trace panel.
  • Backend Orchestration: A Python/FastAPI service deployed on an Alibaba Cloud ECS instance. This backend hosts the independent agents.
  • AI Brain: I integrated Qwen Cloud (Qwen-Max/Plus) for the heavy lifting. Qwen powers the Constraint Agent to accurately parse messy natural language into JSON rules, and it powers the Coordinator Agent to negotiate the bids and generate the human-readable rationale.

Challenges I ran into

One of the biggest challenges was ensuring the negotiation felt like real reasoning and not just a rehearsed script. I had to engineer the Provider Agents to generate deliberate edge cases (like sudden surge spikes, stale quotes, or tied bids under different framings) so that the Qwen-powered Coordinator had actual conflicts to resolve. It was also challenging to prompt Qwen to return consistently structured JSON alongside its natural-language negotiation rationale without breaking the application logic.

Accomplishments that I'm proud of

I am incredibly proud of my efficiency benchmarks. I built a testing harness to evaluate my multi-agent RideFare system against a traditional single-agent baseline over dozens of synthetic scenarios. The multi-agent system consistently demonstrated zero constraint violations compared to the baseline. Seeing the Coordinator Agent successfully catch an edge case, e.g. overriding the cheapest option because it violated a user's safety constraint, was an amazing moment. I'm also proud of deploying the whole orchestration backend seamlessly to Alibaba Cloud ECS, as my experience with cloud deployment has been limited thus far.

What I learned

I learned a massive amount about prompt engineering for multi-agent systems. Using Qwen Cloud, I discovered how to effectively chain prompts so that one agent's output directly informs another agent's context. I also learned that building a "society of agents" isn't just about the LLM; it's about building the deterministic orchestration logic (in FastAPI) that corrals those agents into a reliable product.

What's next for RideFare

The immediate next step is building out the Memory Agent. I want RideFare to learn from the rider over time. If a user consistently overrides the "cheapest" pick in favor of an Uber before 9 AM, the Memory Agent should persist that preference into a Redis store and surface it as a soft prior in future negotiations without being explicitly asked. Further down the line, I'd love to explore actual API integrations to execute the one-tap bookings!

Built With

Share this project:

Updates

Submission history