Qloo TasteGraph Agentic Concierge (v2.0) — "Agents, but with taste"

Author: Vigneshwara Kireeti Alugunulla (vigneshalugunulla)
Organization: NuAIBot Technologies
Competition: Qloo Agentic Hackathon: Agents, but with taste
Live Interactive Web Application: https://getplacedoff-ops.github.io/qloo-agentic-taste-concierge/
Public Open-Source Repository: https://github.com/getplacedoff-ops/qloo-agentic-taste-concierge
License: MIT


1. Inspiration & Problem Statement

Standard LLM travel and lifestyle agents suffer from Popularity Collapse: when asked to plan an evening in Tokyo, New York, Paris, or London, they recommend the same generic tourist traps regardless of whether the user's cultural sensibility leans toward Wong Kar-wai + Miles Davis + Haruki Murakami or Wes Anderson + Daft Punk + Anthony Bourdain. Worse, naive embedding retrieval produces Redundant Clumping—recommending five nearly identical coffee shops in a row instead of a balanced multi-category experience.

We built Qloo TasteGraph Agentic Concierge (v2.0) to give autonomous agents genuine cultural taste using Qloo Taste AI™ (/v2/entities, /v2/insights, /v2/tags), Maximal Marginal Relevance (MMR) experiential diversity optimization, Autonomous Budget & Category Self-Correction, and a standardized Model Context Protocol (MCP) Server.

Qloo TasteGraph Architecture


2. How It Works: 4-Stage Autonomous Agentic Loop

  1. Stage 1 — Multi-Modal Cultural Seed Perception (/v2/entities):
    • QlooTasteAPIClient.resolve_seed_entities resolves user seed preferences across Film (urn:entity:movie), Music (urn:entity:artist), and Literature (urn:entity:book) into canonical Qloo Entity URNs and aggregates their cross-domain taste embeddings into a unit L2 vector $\mathbf{u} \in \mathbb{R}^8$.
  2. Stage 2 — Cross-Domain Qloo /v2/insights Graph Expansion:
    • QlooTasteAPIClient.query_cross_domain_insights queries GET /v2/insights?filter.type=urn:entity:place&signal.interests.entities=...&filter.location.query=... to project abstract media preferences into physical venues (Dining, Vinyl_Listening_Bar, Indie_Cinema, Bookshop_Cafe, Gallery_Salon).
  3. Stage 3 — Maximal Marginal Relevance (MMR) Diversity Optimization:
    • Instead of greedy top-$K$ similarity, QlooAgenticItineraryOrchestrator sequentially selects stops maximizing: $$S_{\text{MMR}}(c \mid S_{\text{selected}}) = \lambda \cdot (\mathbf{v}c^\top \mathbf{u}) - (1 - \lambda) \max{s \in S_{\text{selected}}} (\mathbf{v}_c^\top \mathbf{v}_s), \quad \lambda = 0.88$$
  4. Stage 4 — Autonomous Constraint Self-Correction:
    • Inspects total itinerary spend against max_budget_usd and category diversity constraints, autonomously replacing any budget-violating stop with the highest-affinity affordable alternative and generating an explainable cultural rationale for every stop.

Qloo 50-Persona Benchmark Comparison


3. Empirical Evaluation Benchmark (50 Cultural Personas x 60 Venues)

Metric Generic Popularity Concierge Baseline Qloo TasteGraph Agentic Concierge (v2.0) Verified Gain
Mean NDCG@5 Cultural Relevance 0.3508 0.9982 +0.6474 (+184.5%)
Intra-List Experiential Diversity 0.5810 0.6351 +9.3% Higher Variety
Budget Cap & Constraint Compliance 72.0% 100.0% (Autonomous Self-Correction) +28.0%
Total Evaluation Latency (50 Personas) 18.4 ms 125.16 ms (2.50 ms / persona) Real-Time Ready

4. Repository Structure & Quickstart

  • qloo_taste_agent.py: Core QlooTasteAPIClient (/v2/entities, /v2/insights), QlooAgenticItineraryOrchestrator, and 50-persona benchmark.
  • qloo_mcp_server.py: JSON-RPC 2.0 Model Context Protocol (MCP) server exposing qloo_resolve_cultural_entities, qloo_query_cross_domain_insights, and qloo_plan_agentic_itinerary.
  • evaluate.py: Benchmark runner and Matplotlib chart generator (qloo_benchmark_comparison.png).
  • test_suite.py: 10-test unit & Qloo API v2 schema verification suite.
  • index.html: Interactive Qloo TasteGraph Concierge web application.
# 1. Run the 10-test unit & Qloo API v2 verification suite
python test_suite.py

# 2. Run the 50-persona benchmark & generate visual charts
python evaluate.py

# 3. Inspect MCP Server tool schemas
python qloo_mcp_server.py

Built With

Share this project:

Updates

Submission history