Four-Layer Memory Architecture: How Huolala's AI Agents Remember, Self-Evolve, and Lift Conversion by 1.7pp
Costing only 0.2s extra per response, this architecture buys a 1.7pp conversion gain, a 1.6pp churn reduction, and a 75% profile coverage rate within two weeks—concrete numbers for any team building conversational agents that need to survive long, multi-session customer journeys instead of resetting each time.
Conversational agents at scale often reset to zero on every new session. Huolala's engineering team built a four-layer memory architecture that turns that reset into an accumulating cognitive base: L0 stores raw dialogue faithfully, L1 extracts intent and emotion per message, L2 owns state machines and strategy dispatch, and L3 maintains six long-term user profile dimensions. The layers feed forward: raw data becomes perception, perception feeds decisions, decisions accumulate into profiles, and profiles guide future interactions.
The design directly addresses the 'octopus tragedy'—individual intelligence that never gets inherited across generations. Instead of flat tags like 'user state = not ordered', the system keeps the full evidence chain: tone, response intervals, excuses, and stage context. It also bridges channels by keying on user identity, so a phone call's outcome carries into an instant messaging session. The experiment ran for two weeks with account splitting: conversion rate went from 58.3% to 60%, average messages dropped from 18.4 to 12.1, churn fell from 2.8% to 1.2%, and profile coverage reached 75%. The trade-off is 0.2s extra per response (0.25s vs 0.45s), which the team considers worth it.
The 'octopus tragedy' framing is a useful way to think about why conversational agents stall: without an inheritance mechanism, every session is a fresh start, and the cost compounds over long user journeys with 3–5 interruptions.
Separating raw data (L0) from interpretation (L1) and decision (L2) avoids the classic mistake of storing conclusions without evidence; the model only sees what the system has carefully distilled, but the full chain remains for trace-back.
The 0.2s latency penalty is surprisingly small for the complexity added, suggesting that layered memory can be implemented without crippling response times when design keeps layer updates asynchronous and incremental.
Reaching 75% profile coverage in two weeks indicates the bootstrap loop is fast; the daily batch plus in-session micro-updates after 5 messages strikes a practical balance between freshness and cost.
A 1% strategy elimination rate is conservative; it suggests the team prioritized stability over aggressive self-optimization, and the real win was replacing a 2–3 week manual review cycle with an automated feedback signal.