How the personalization engine works in Sprint 2—mapped onto 16 Tambo components with live persona data, five behavioral tiers, and two A/B conversation directions.
The personalization engine—from query to booking. A mental process woven into Edge's soul that governs how it perceives a traveler, identifies what it doesn't know, and learns from every interaction.
01
Choose a Traveler
Three Profiles, Three Experiences
Select a persona to see how the engine adapts. Every component mockup below changes based on who's traveling.
02
Tiered Data Model
Five Tiers—What Edge Notices, Asks, and Captures
The hierarchy determines which preferences gate search, which reshape results, and which are captured silently.
T0—Required
Hard Gate
Can't search without it. Always asked.
●DestinationCharlotte●DatesJun 10–12
T1—High Signal
Reshapes Results
Asked within the 2–3 question budget.
●HotelHyatt📌◉History3× Hyatt CLT, 2× United CLT→LGA
●StyleBoutique◉History1× Tribeca boutique
○HotelUnknown○HistoryNo prior bookings
T2—Strong
Re-ranks Results
Surfaced as editable chips after results.
○FlightNonstop pref.
○AreaNoDa district
○Area—
T3—Tie-Breaker
Available, Never Pushed
Captured passively. Available as chips.
◉CoffeeBlack, strong
◉DietPescatarian
○Diet—
T4—Trivia
Captured Silently
Never surfaces. Learned via updateTravelerModel.
No component rendered—silent capture only
●Declared—"I always fly Delta"
○Inferred—pattern-derived
◉Contextual—this trip / corrected / behavioral
↗See the exhaustive Data Map on the Design Concept page for every T0–T4 parameter across Hotels and Flights.
03
Engine Pipeline
Six Steps—From Query to Learning
The six-step engine maps directly to Edge's cognitive steps. The prompts use domain language—the underlying mental process is the same pipeline.
STEP 1
Acknowledge
Perceive intent
"Charlotte QBR, same as usual ●"
"Charlotte next week for a pitch."
"I need to book a trip to Charlotte."
→
STEP 2
Recall
Recall context
🏨✓Pulling Charlotte preferences…
🏨✓Checking hotel style prefs…
No profile to pull—cold start
→
STEP 3
Assess
Appraise what's missing
"She's been to Charlotte three times. QBR pattern. I have everything. No questions."
"Boutique preference noted. Kimpton or Ivey? Need neighborhood."
E
Preference
Any neighborhood preferences in Charlotte?
NoDaSouth EndUptown
"Charlotte for work—no dates, no airport, no prefs. Three T0 gaps. Full budget."
E
Required
When are you traveling?
Select dates…
→
STEP 4
Search
Decide what fits
Hyatt Place CLT
★ 4.2 · Uptown $189/nt
The Dunhill Hotel
★ 4.5 · Uptown $215/nt
Waiting for answers before searching…
→
STEP 5
Recommend
Reason about presentation
Confirm & Book
3 hotels + 2 flights presented as options
Basic results after questions answered
→
STEP 6
Confirm
Learn from response
●
HOTELHyatt Place CLT confirmed
✓
○
AREAPrefers NoDa district
✓
●
SCHEDULEFirst preference learned
✓
04
Autonomy Calibration
How Much Latitude Does Edge Have?
The question isn't just "how many questions does Edge ask"—it's "how much does Edge act on its own." Profile richness × autonomy level determines the interaction shape.
RICH + HIGH AUTONOMY
One-click booking
Elena's 5th Charlotte trip. Edge recognizes the pattern from 4 prior bookings—same hotel, same room, same flight. Books instantly. No questions, no confirmation screen. Just "Done ●"
RICH + LOW AUTONOMY
Present choices with reasoning
Edge knows everything but shows its work. "I found your usual Hyatt, but there's a new boutique 2 blocks closer to the venue. Here are both."
THIN + HIGH AUTONOMY
Infer aggressively, ask minimally
New user who said "just book something." Edge picks the top-rated option within policy, books it, and asks one follow-up: "How was the hotel?"
THIN + LOW AUTONOMY
Full question flow with options
New traveler who wants to see everything. Edge asks up to 3 questions, presents multiple options at every step, and confirms before booking.
BOOKING INTENT OVERRIDE
When the user is ready to book, get out of the way.
When Edge detects high purchase intent—urgent language, time pressure, rapid query refinement, or explicit booking signals—it compresses the question budget regardless of profile state. A high-intent user with a thin profile gets fast results with conservative defaults rather than 3 follow-up questions.
"Book me the cheapest hotel in Charlotte tonight"—even with an empty profile, Edge skips all questions. Conservative defaults applied (mid-tier, city center, best value). Results shown immediately. After booking, silently captures: Charlotte destination, price sensitivity, last-minute booking pattern.
Tradeoff: A fast booking with conservative defaults may not surface the best match. But it's a booking—and the profile learns from it either way. The next trip will be better because this one happened fast.
05
Walkthrough
Same Query, Three Profiles
"Charlotte next week for work"—profile richness determines the question budget and result quality.
Elena—Rich Profile
8/8 categories · High autonomy · 0 questions
"Your Charlotte QBR—I've got it ● Hyatt Place CLT, room 1814, United nonstop from LGA. Aisle seat, forward cabin."
Hyatt Place Charlotte City Parkbest match
★ 4.2 · Uptown · $189/night
✓ Loyalty match—Globalist
Your usual spot. Room 1814 requested, high floor, firm mattress, gym access before 7am.
United UA 1847$342
7:15aLGA
2h 15m
9:30aCLT
✓ Seat match—aisle, forward
Nonstop, arrives 2.5h before your QBR. Aisle seat in Economy Plus.
Confirm & Book
Marcus—Medium Profile
5/8 categories · Medium autonomy · 1–2 questions
"Charlotte for a pitch—nice ○ I know you like boutique spots. Quick question before I search:"
E
Preference
Any neighborhood you'd like to be near for the pitch?
NoDaSouth EndUptown
The Dunhill Hotelbest match
★ 4.5 · Uptown · $215/night
Boutique, 1912 building with exposed brick. 10min to NoDa. Local coffee roaster in lobby.
New Traveler—Empty Profile
0/8 categories · Low autonomy · 3 questions
E
Welcome to Edge
I learn your preferences over time
The more we travel together, the less I ask
Your fifth booking will feel effortless
E
Required
What dates are you traveling?
Select dates…
E
Required
Which airport do you fly from?
SFOOAKSJC
06
A/B Testing
Two Manifestations of the Same Engine
The personalization engine is the same mental process in both directions. What differs is the externalization pattern—how Edge shows its work.
Direction A—Inline Inference
Preferences woven into conversation as editable chips
These design decisions govern how the engine scores, defaults, resolves conflicts, and handles dealbreakers.
Decision 01
Scoring Formula
The original spec defines numeric weights. Our implementation achieves the same ranking through qualitative LLM reasoning—the agent explains why each option fits.
EDGE'S REASONING
Hyatt Place CLT selected: loyalty match (Globalist), proximity match (Uptown, 0.3mi from venue), room history (1814 available, booked 3 prior stays—strongest signal), schedule fit (arrives 2.5h before QBR). Booking intent: high—returning to a prior search, booking language detected—compressed question budget, skipped T1 gaps. Runner-up Dunhill scored on ambiance but lacked loyalty integration.
Decision 02
Defaults for Unknowns
When a preference is missing, Edge fills in conservative defaults: budget → mid-tier, loyalty → best value, timing → mid-day. TripSummarySheet shows these defaults as dash-marked rows.
Defaults applied
○BudgetMid-tier
—
○LoyaltyBest value
—
Decision 03
Query vs. Profile
When the query contradicts the profile, the query always wins for this trip. The profile is not updated from a one-off—it only changes on explicit correction or repeated behavior. Edge surfaces the conflict transparently.
Schedule conflict
4:00 PM flight—arrives 30min after meeting starts
1:00 PM flight—$80 more, arrives 2h early
Recommend the earlier flight for this trip.
💡 Your profile says "fine with arrivals up to 11pm" but this meeting starts at 3pm—the late flight cuts it close.
Decision 04
Dealbreakers
The spec defines hard-filter dealbreakers that are never shown and never ranked low. This is designed but not yet built—the current system uses declared preferences with high confidence as a soft equivalent.
Sprint 3 candidate
↗See the Design Concept for detailed rationale behind each decision, including the scoring formula breakdown.
08
Memory System
Read, Write, Learn
Every interaction teaches the model. The memory system has two sides: reading the persona profile before each response, and writing learnings back after each interaction.
Read—lookupPersonaMemory
lookupPersonaMemory(category)
Agent calls this tool to pull the traveler's profile by category. Returns structured data—loyalty status, room preferences, flight habits, dietary needs, schedule patterns, calendar events, trip history, autonomy level.
After each interaction, the agent calls this tool to persist what it learned. Each entry includes a confidence score and source type. The ModelUpdateToast makes every learning visible.
Learning Accumulation
●
DECLARED · 95%"I always fly Delta"
✓ Learned
○
INFERRED · 72%Price-sensitive—asked about cost 3 times
Every component the agent can select at runtime, registered with Zod schemas. The agent's description field is its only signal for when to use each component.
EdgeMessage
Base chat message with "E" avatar and memory badges
BothBoth
InferenceChip
Read-only preference chip with source dot + confidence
PrefDir A
InferenceChipEditable
Tap-to-correct chip—corrections flow to agent
PrefDir A
InferenceChipGroup
Expandable group with summary header
PrefDir A
TripPrefsOverlay
Full preference profile grouped by category
PrefBoth
TripSummarySheet
Confirm-first checklist before search
PrefDir B
HotelResultCard
Hotel result with rating, price, loyalty, reasoning