When an AI agent needs to remember what it has done, most product roadmaps point straight to vector embeddings. The promise is simple: turn a conversation into a high-dimensional point, store it, and later ask the model to find the nearest point. In practice, that promise brings a host of hidden costs -- cloud latency, opaque storage, and a dependency on a constantly-trained embedding model. As a data engineer who spends every day balancing storage efficiency against query speed, I found those trade-offs hard to accept for a tool that should feel as immediate as a local file.
In the first months of building LoreConvo, I set out to prove that a well-tuned full-text search engine could give the same recall quality without the baggage of embeddings. The result is a local-first memory layer that lives in a single SQLite file, works offline, and integrates with every major AI surface I use. Below I walk through the problem with embedding-only memory, explain why SQLite + FTS5 is a practical alternative, share what I observed in real use, and outline the scenarios where a hybrid approach still makes sense.
Embeddings feel powerful, but they hide complexity
Embedding models are attractive because they turn any string into a fixed-size vector. Once you have a vector, you can drop it into a nearest-neighbor index and retrieve "similar" sessions with a single dot-product. The mental model is clean, and many cloud providers ship it as a managed service.







