In my recent essay about where the LLM belongs in a system, I said you can let a model interpret a request, then store and validate the result separately. It occurred to me I should expand a bit more on that.
Because what, exactly, are we storing?
Say a customer writes, “I moved last month. Can you send the next invoice to my office instead?” A language transform might produce a proposed billing-address change. Reasonable! But the customer didn’t give an office address, and “send the invoice” might refer to an email recipient rather than a mailing address. We have an interpretation, not an authorized update to a customer record.
What if, instead, the system can keep the original request and run a basic “match command” extraction against an approved set of commands or compound commands. Those might include validating which fields are actually known, dispatching a search request for what’s missing, or sending the result to apply whatever approval rules govern a change. But only after that combination of fuzzy extraction followed by fixed process has completed can the new value become durable state. And if someone corrects the interpretation later, there’s a record of what was requested and how the system got from there to the change it made.
That may sound like a lot of ceremony for one sentence of instruction. But think about just how much context, information, process, and decision weight is really buried in there! We already do this kind of thing with ordinary software. We don’t treat a text field as permission to rewrite a database just because we can parse it, that’s crazy! There’s a whole host of checks, merges, self-healing, and other elements that go into a genuinely usable database.
So why the hell would we treat an LLM any different?
An LLM gives us a useful way to cross the gap between a person’s words and a system’s structure. It doesn’t make that gap disappear. In fact, it will gladly widen that gap if you aren’t careful. The moment an interpretation becomes a fact the rest of the product will rely on is a system decision, and I’d rather be able to point to where that decision happens each and every time.