Skip to content
Back to Blog
August 4, 2026

Agentic Memory: How Nowah Remembers Your Travel Style

Your fifth booking should be dramatically better than your first. Here is how we built a memory system that learns, retrieves, and respects privacy.

Agentic Memory: How Nowah Remembers Your Travel Style
M

Open any travel booking site you've used before. Search for flights. Notice how it treats you like a complete stranger. You've booked twelve trips through this platform, and it still doesn't know you prefer aisle seats, always fly from JFK, and would rather pay $50 more for a direct flight than deal with a connection.

Every session starts from zero. Every preference has to be re-entered. Every search is isolated from every other search. The platform has no memory, which means it has no way to get better at helping you over time. Your hundredth search is identical in quality to your first.

We built Nowah with agentic memory because we believe the fifth booking should be dramatically better than the first. Not incrementally better. Dramatically better. The agent should know your preferences, anticipate your patterns, and deliver results that feel hand-picked by someone who actually knows how you travel.

Here's how that system works, what it remembers, and just as importantly, what it doesn't.

Why stateless AI is a broken product

Illustration for this section

Think about the best travel agent you've ever worked with. A human one, if you've had the experience. After a few trips together, they knew things: you like morning flights, you prefer boutique hotels to chains, you have a window seat thing, you always want to be near good food. They didn't ask these questions every time. They built a mental model of you and used it to give better recommendations with each interaction.

Now think about the worst travel website you've used. It asks the same questions every time. Origin. Destination. Dates. Travelers. Class. Search. The same form, with the same blank fields, regardless of whether it's your first search or your hundredth. It has all your booking data in its database and does nothing with it.

Stateless AI suffers from the same problem. A conversational AI that starts with no context every session is only marginally better than a search form. It might feel more natural to talk to, but if it can't remember that you told it yesterday you hate layovers in Dallas, it's not actually more useful. You end up repeating yourself, re-establishing context, and manually providing information the system should already know.

70% of travelers say they're open to AI-assisted trip planning. But that openness comes with an implicit expectation: the AI should learn and improve. Nobody wants to train a new assistant from scratch every conversation. If I tell the AI my home airport once, I should never have to tell it again.

Three types of memory and when each matters

Our memory system tracks three distinct types of information, and the distinction matters for both engineering and product design.

Explicit preferences are things you directly tell us. "I always want a window seat." "I'm a Delta SkyMiles member." "My home airport is SFO." "I'm vegetarian." "I don't want to connect through O'Hare." These are facts with high confidence. The user stated them clearly, so we store them with full weight and they persist until the user updates them.

Explicit preferences are the most reliable type of memory. The user told us directly, so we can use them aggressively. When you search for flights, we automatically filter for your preferred airline, your home airport, and your seat preference without asking. When we show hotel results, we flag which ones have vegetarian-friendly restaurants nearby. These preferences don't need to be re-validated.

Learned patterns are preferences we infer from behavior. You've booked morning flights on your last five trips. You've never booked a hotel over $200 per night. You chose the direct flight over the cheaper connection three times in a row. You always search for airports with lounges when you have a layover.

These are probabilistic. We observe patterns and convert them into preference signals, but we hold them with less confidence than explicit statements because behavior isn't always preference. Maybe you booked morning flights because that's what was cheapest on those routes, not because you like waking up at 5 AM. Maybe you stayed under $200 per night because those trips were to cheaper cities, not because that's your hard budget cap.

Learned patterns influence ranking but don't override explicit statements. If you've booked morning flights five times but tell us "I hate mornings, find me an afternoon flight," the explicit statement wins immediately and the learned pattern gets downweighted.

Contextual history is the state of recent and ongoing conversations. What you searched for yesterday. The trip you're currently planning. The hotel you looked at but didn't book. The flight option you asked to compare but never selected. This isn't long-term preference data. It's short-term context that makes the current interaction smoother.

Contextual history is what makes the experience feel continuous. "Show me those Tokyo flights again" works because we remember what "those flights" refers to from yesterday's conversation. "What about the second hotel you showed me?" works because we have the list from earlier in the session.

Each type has different retention rules, different confidence levels, and different update mechanisms. Explicit preferences persist until the user changes them. Learned patterns decay over time if not reinforced by new behavior. Contextual history is ephemeral and expires after a configurable window.

The retrieval problem: surfacing the right memory at the right time

Supporting diagram

Having memory is useless if you can't surface the right memories at the right time. This is the retrieval problem, and it's harder than the storage problem.

When a user says "Find me flights to London next month," which memories are relevant? Their home airport (always relevant for flight searches). Their airline preference (relevant). Their seat preference (relevant but can wait until booking). The fact that they stayed at a particular hotel in London last year (maybe relevant if they ask about hotels, but not for a flight search). Their conversation from three months ago about a trip to Barcelona (not relevant). Their budget pattern for European destinations (relevant). Their preference for direct flights (relevant).

We use relevance scoring to decide what to inject into the agent's context window. Each stored memory gets a score based on:

Semantic similarity to the current query. "Airline preference" is semantically close to a flight search. "Hotel style preference" is less relevant to a flight search but highly relevant to a hotel search.

Recency of the memory. A preference expressed yesterday is more likely to be current than one from six months ago.

Frequency of use. A preference that has influenced multiple past interactions is more established and more likely to be relevant.

Direct applicability. "Home airport" directly maps to the "origin" parameter of a flight search. "Favorite restaurant in Barcelona" doesn't map to anything in a Tokyo flight search.

High-scoring memories get included in the agent's context. Low-scoring ones stay in storage. This selective retrieval prevents context window pollution. If we dumped every known preference into every conversation turn, the context window would fill with irrelevant information, and the model's reasoning quality would degrade. Selective retrieval keeps the context focused and the agent sharp.

The practical effect: when you search for flights, the agent knows your airport, airline preference, and budget range without asking. When you search for hotels, it knows your preferred style and neighborhood type. Each search type triggers retrieval of the memories most relevant to that search. And the retrieval happens fast, within about 100 milliseconds, so it doesn't add perceptible latency.

Privacy by design: what we store, what we don't, and why

Memory systems create privacy obligations. We take this seriously in the architecture, not as an afterthought.

Users can view everything the system remembers about them. They can edit any memory. They can delete individual memories or wipe the entire memory store. These controls are in the product, accessible through conversation ("What do you know about my preferences?" is a valid query) and through the settings UI.

We keep durable preferences, not every word of every chat. Structured signals matter more than raw transcripts. When you say "I hate connecting through Miami because the airport stresses me out," we store "prefers to avoid MIA connections" as a preference. The emotional context is lost in storage, which is intentional. We care about the actionable preference, not the personal story behind it.

We also distinguish between what we SHOULD remember and what we should let go. Some information is useful for personalization: seat preferences, budget ranges, favorite airlines, hotel styles. Other information is ephemeral and shouldn't persist: you mentioned your friend's birthday while chatting, or you vented about a bad day at work before asking about flights. The extraction pipeline is designed to capture travel-relevant preferences and discard everything else.

Sensitive data gets special treatment. Passport details, payment methods, and personal identification are stored in the secure profile system with encryption, not in the memory system. The memory system knows "this user has a valid passport" but not the passport number. It knows "this user has a saved payment method" but not the card number. This separation means that even if the memory system were compromised, sensitive personal data wouldn't be exposed.

The guiding principle is that remembering everything is as bad as remembering nothing. A memory system that surfaces irrelevant information ("You mentioned your cat's name is Muffin three months ago") erodes trust just as much as one that forgets important preferences. Good memory is selective memory.

Memory decay and relevance scoring: knowing when to forget

People change. You might switch from Delta to United because you moved to a United hub city. Your budget might shift as your career progresses. You might start traveling with kids when you used to travel solo. You might develop a health condition that changes your seating preference.

Static preferences would get stale. So our memory system implements decay. Memories that aren't reinforced by recent behavior gradually lose weight in the ranking calculations. If you always used to book Delta but your last three trips were on United, the Delta preference decays while the United preference strengthens.

Decay is not deletion. The memory still exists, but its influence on recommendations diminishes. If you suddenly book Delta again after six months of United, the preference recovers quickly because the underlying data is still there. The system adapts to changing behavior without losing historical context.

The decay function is tuned per preference type. Airline preferences decay slowly (people rarely switch airlines on a whim). Budget preferences decay moderately (income and spending patterns change). Destination preferences decay quickly (just because you went to Paris last year doesn't mean you want to go again). Seat preferences barely decay at all (people rarely change their aisle-vs-window preference).

We also handle contradictions explicitly. If you told us "I prefer aisle seats" but you've booked window seats on your last four flights, which signal wins? Our system flags the contradiction and, depending on confidence levels, either quietly adjusts the preference (low confidence in the original explicit statement because it's old and contradicted by recent behavior) or asks the user: "You mentioned you prefer aisle seats, but I notice you've been booking windows lately. Want me to update your preference?"

This active contradiction resolution is better than silently overriding explicit preferences. The user feels in control. And sometimes the explanation matters: "Oh, those window seats were for my kid. I still prefer aisle when I'm traveling alone." That response gives us a more nuanced preference model: aisle when solo, window when traveling with family.

The compounding advantage: why memory is a moat

The reason agentic memory is a competitive moat, not just a feature, is that it compounds. Every conversation adds data. Every booking refines the preference model. Every correction improves accuracy.

A user who's been with Nowah for six months has a rich preference profile that makes every interaction faster and more accurate. A competing product starting from scratch for that user is at a massive disadvantage. It would need to ask dozens of questions to build what we've accumulated through natural interaction over months.

Traditional OTAs could theoretically build memory systems, but they face a structural problem: their products don't generate the right kind of data. A form-based search tells you what someone searched for, not what they prefer. A filter selection tells you what they filtered, not why. A booking tells you what they chose, but not whether they were happy with it or what trade-offs they considered.

Conversational interaction generates much richer signal. When a user says "Actually, do you have anything a bit cheaper?" after seeing results, that's a budget signal. When they say "I don't mind a layover if it's at a nice airport," that's a convenience threshold signal. When they say "My partner prefers hotels with a pool but I don't care either way," that's a multi-traveler preference signal with relative importance weighting. This kind of nuanced preference data only emerges in conversation.

85% of travelers say personalization influences their booking decisions. Good personalization means knowing when to update the model, not just when to apply it.

Repeat users on traditional OTAs get the same experience as first-time visitors. On Nowah, repeat users get a qualitatively better experience. That gap widens with every booking. After ten bookings, the agent knows your patterns well enough that "Find me flights to London" triggers a search that's pre-filtered for your preferred airline, your home airport, your typical travel class, and your budget range. The results arrive pre-ranked by your personal preference model. The experience feels like having a dedicated travel agent who's worked with you for years.

Proactive memory in action

The most powerful application of memory isn't reactive (answering questions with context) but proactive (volunteering useful information before being asked).

"You usually fly Delta, but United has a much better fare on this route. Want me to show the United options?" That's proactive memory. The agent noticed a tension between a stored preference and the current search results, and surfaced it rather than silently biasing toward the preferred airline.

"Your passport expires in 4 months. Japan requires 6 months validity. You might want to renew before this trip." That's proactive memory combined with domain knowledge and a specific fact about this user's travel documents.

"Last time you went to Paris you stayed in Le Marais and loved it. Want me to look for hotels in the same neighborhood?" That's historical context applied to a new trip, creating continuity across travel experiences.

"You've been looking at flights to Tokyo for a few weeks. Prices dropped by about $80 since you first searched. This might be a good time to book." That's longitudinal awareness, tracking not just preferences but the user's ongoing planning process.

Each of these moments makes the AI feel less like a tool and more like a travel companion who actually knows you. That's the goal. Not artificial intelligence in the academic sense, but genuinely helpful intelligence in the practical sense.

The memory system is what makes that possible. Without it, we'd be a very good chatbot. With it, we're something closer to a personal travel agent that gets better every time you talk to it. And unlike a human travel agent, it never forgets, never retires, and never has an off day. The consistency of recall, combined with the growing depth of understanding, is what makes agentic memory the foundation of the product experience.


Nowah is an AI travel agent that searches and books real flights and hotels through conversation — no filters, no thirty open tabs. Plan your next trip.

Share this article

Ready to Plan with Nowah?

Bring the idea. Nowah will help turn it into a trip.

Try Nowah