Why Raw Queries Break RAG

Why Raw Queries Break RAG Here’s the pitch for RAG in one sentence: embed the user’s question, search a vector store for the closest matching chunks, hand those chunks to an LLM, get a grounded answer back. Clean, mechanical, almost too simple to fail. So why do RAG systems keep retrieving the wrong thing? The pitch skips a step it shouldn’t. Before you can ask whether retrieval “worked,” you have to ask what the system was actually comparing — and once you look closely at that comparison, a raw, naturally-typed question turns out to be a strange thing to search with. ...

July 20, 2026 · 11 min · biswajit

Procedural Memory Is a Pattern, Not a Fact

Procedural Memory Is a Pattern, Not a Fact This post assumes you’re already familiar with procedural memory in the agent memory management paradigm. If that’s not the case, the first post will give you enough context before you continue. There are three places an agent can be wrong about a fact it has about you: extraction, retrieval, and resolution. All three assume the fact came out of a conversation. Some of the things an agent believes about you were never in any conversation. They came from the bookkeeping. ...

July 17, 2026 · 8 min · biswajit

Four Memory Types, One Trust Problem

Four Memory Types, One Trust Problem Your agent greets a returning user with, “Welcome back — still looking for gardening gifts for your mom?” The user replies, “Actually, she’s more into cooking now.” Your agent now has one well-established memory (“mom likes gardening”) and one fresh claim (“mom likes cooking”), and about half a second to decide which one to keep, which to archive, and whether to trust the new one at all. ...

July 11, 2026 · 8 min · biswajit

Tokenization: The First Decision That Shapes Everything Your LLM Does

Every kirana store has a billing system. If the system was set up for a shop that mostly sells atta, dal, and rice, those items get single, efficient product codes — beep, done. But walk in asking for high-mountain oolong tea or high-altitude quinoa, and the shopkeeper has to punch in each word letter-by-letter from a handwritten label. Slower billing. Higher effort. And the shopkeeper has never stocked half of it, so good luck getting a recommendation. ...

June 16, 2026 · 8 min · biswajit

The Wall Has Circuitry Inside It: Descriptors in Python

You have a class. It has an attribute. You want to protect that attribute — maybe validate it, maybe log every write, maybe make it read-only after the first assignment. So you do what most developers do. You prefix with an underscore, write a get_temperature() method, write a set_temperature() method, and tell yourself that’s “Pythonic.” It works. But every class that needs this pattern gets the same boilerplate. Every attribute that needs protection gets its own pair of methods. The class that started as twelve lines is now forty-five. And somewhere around the third get_x / set_x pair, you start feeling like you’re writing Java. ...

June 11, 2026 · 6 min · biswajit