Build a persistent LLM memory layer with DSPy and QDrant
Chat history arrays are a log, not memory. This walks through the LLM memory layer I build instead: DSPy signatures for extracting atomic facts, QDrant for per-user vector storage, and a maintenance agent that decides when an old fact gets updated or deleted.