Overview
Podium’s memory and intelligence system gives agents a deep, evolving understanding of each user. Instead of treating every conversation as stateless, the agent accumulates structured knowledge — preferences, goals, concerns, products tried, price sensitivity — and uses that knowledge to score and explain recommendations. The system covers three capabilities:- Structured user memory — a versioned schema that captures everything the agent learns about a user
- ML scoring layer — popularity signals, temporal decay, and domain-specific weights that rank products intelligently
- Reason tags — human-readable explanations attached to every recommendation
AgentMemory
The agent builds and evolves a structured memory for each user. Memory is stored on the user’s intent profile and persists across sessions, channels, and devices.Schema
Key Design Decisions
Category-aware price ranges. A user might spend up to 30. ThepriceRange.byCategory map captures this naturally — the agent uses the most specific range available when filtering products.
Confidence-tracked signals. Every goal, concern, and avoidance carries a confidence level, mentionCount, and timestamps. Signals the user mentions repeatedly are weighted higher than one-off statements. Signals that haven’t been confirmed recently decay in influence.
Multi-source attributes. User attributes can originate from three sources:
Products tried with outcome tracking. The agent records not just which products a user has tried, but their sentiment and outcome. “Broke me out” vs “holy grail” is critical context for future recommendations.
Automatic Summarization
The agent extracts and updates memory at three trigger points:
Summaries are stored on the user’s intent profile (
agentSummary field), making conversation-derived intelligence available to recommendations, the agentic product feed, and downstream analytics.
Memory extraction runs as a background job — it does not add latency to the agent’s response. The user sees no delay.
Domain Taxonomy
Products are organized into a two-leveldomain:subcategory system. This taxonomy drives scoring weights, expert personas, and brand tier calibration.
Domains
Beauty
Beauty
moisturizer, serum, cleanser, sunscreen, toner, mask, exfoliant, eye cream, lip, makeup, hair care, body care, tools, fragrance
Wellness
Wellness
supplements, probiotics, protein, greens, vitamins, minerals, adaptogens, nootropics, collagen, sleep, longevity, fitness
Fashion
Fashion
clothing, shoes, accessories, bags, jewelry, watches
Home
Home
decor, kitchen, bedding, bath, storage, lighting, furniture
Domain-Specific Expert Personas
When re-ranking recommendations, the system activates a domain-specific expert persona. This shapes the language, evaluation criteria, and recommendation style:
Personas are applied during the re-ranking step — after initial retrieval and scoring, but before final product selection. The persona influences both which products surface and how the agent describes them.
ML Scoring Layer
Beyond profile matching, the intelligence system uses machine learning signals to rank products:Impression Logging
Every product shown to a user is logged with its position. This creates a feedback loop: the system knows which products were seen (not just clicked), enabling proper conversion-rate estimation and position-bias correction.Popularity Scoring
Product popularity is computed from weighted user interactions:
The raw score is normalized:
popularityScore = weightedSum / sqrt(totalInteractions). This prevents products with many low-quality interactions from outscoring products with fewer but stronger signals.
Temporal Decay
Interaction signals decay over time with a 720-hour half-life (approximately 30 days). A purchase from yesterday weighs more than one from three months ago. This keeps recommendations responsive to shifting user interests and seasonal trends.Feature Cache
For each product, the system maintains a pre-computed feature vector:
These features are cached for fast retrieval during scoring — no recomputation on every request.
Reason Tags
Every recommended product can include areasonTag — a concise, human-readable explanation of why it was selected. Reason tags build user trust by making the agent’s logic transparent.
Tag Types
Reason tags are generated during the re-ranking step and returned alongside product data in both the conversational agent responses and the companion recommendations endpoint.
Signal Scoring with Polarity
The scoring system handles negation and avoidances intelligently — a common pitfall in keyword-based matching.How It Works
When computing signal scores, the system applies domain-specific weights and checks polarity:- Avoidance-aware matching: If a user lists “fragrance” as an avoidance, a product described as “fragrance-free” is treated as a positive signal, not penalized. Similarly, “paraben-free” is not penalized when “parabens” is in the user’s avoidance list.
- Negative descriptor detection: Terms like “greasy”, “harsh”, and “irritating” carry negative weight regardless of user preferences. These are universally undesirable product attributes.
- Domain-specific weighting: A “lightweight texture” signal carries more weight in beauty (where texture is critical) than in wellness (where formulation matters more).

