

You are building a multi-turn conversational agent that helps users complete ongoing tasks over many sessions. The agent needs to remember prior decisions, stable preferences, and unresolved work, but the full conversation history quickly exceeds the model's context window. You also need to avoid summaries that flatten nuance or accidentally overwrite important user preferences.
How would you design state management for this agent? Explain how you would decide what to keep verbatim, what to summarize, how to update long-term memory over time, and how you would prevent summary drift or loss of critical user preferences.