Rally

Inspiration and Core Motivation

Travel planning is currently a fragmented mess of disjointed apps and manual calendar stitching. Rally was built to move beyond "one-shot" generation, creating an interactive planning system that reasons across all contexts in a single, fluid flow, even via voice.

What Rally Does

Rally transforms raw user intent into structured, durable trip plans by:

  • Generating multi-day itineraries based on specific user constraints.
  • Ranking travel context using a high-precision vector database.
  • Triggering live web research when internal data is stale or insufficient.
  • Processing voice commands (MP3 to Text) to perform real-time edits like "skip" or "change."
  • Persisting data for long-term iteration and retrieval.
  • Personalization via Profile Vectors: We embed user preferences (budget, pace, interests, avoid-tags) into profile vectors so each query is steered toward semantically aligned candidates before final reranking.

Technical Architecture

We built Rally using a modular, multi-agent architecture designed for testability and flexibility.

1. The Stack

Layer Technology
API / Service FastAPI
Orchestration LangGraph state machine
AI Agents Nemotron (Planner) via OpenRouter and Claude (Research)
Multimodal ElevenLabs (Speech-to-Text)
RAG Stack Qdrant + NVIDIA Embeddings + NVIDIA Reranking
Persistence Databricks SQL Warehouse (with local in-memory fallback)

2. The Orchestration Flow

The system follows a phased execution path:
ingest_input -> retrieve_rag -> quality_gate -> planner/research -> enrich -> validate

Challenges and Learnings

  • Latency vs. Quality Tradeoff: Live web research and reranking significantly boost accuracy but require careful optimization to keep response times acceptable.
  • Provider Orchestration: Managing a fleet of providers (Anthropic, OpenRouter, ElevenLabs, etc.) necessitated a robust retry and error-handling framework.
  • Deterministic Policy Gates: We learned that agentic workflows are only as reliable as the validation logic wrapping the LLM's reasoning.
  • Stateful Mutations: Safely applying edits to a living itinerary without breaking the structure required an advanced audit logging and mutation engine.

Accomplishments We're Proud Of

  • True Agentic Flow: Moved beyond simple chains to a dynamic orchestrator that decides when to research.
  • Multimodal Integration: Successfully mapped voice transcription to structured intent for itinerary mutations.
  • Durable Persistence: Built a system that treats trips as long-lived entities with full event histories and cache-aware retrieval.

What is Next for Rally

  • Further improvement for user experience
  • Performance Optimization: Implementing smarter parallelism to reduce latency across the research and planning phases.
  • Expanded Mutations: Adding batch edits and constraint-aware replanning (e.g., "re-plan my Tuesday but keep the 7 PM dinner").

Built With

Share this project:

Updates