In the beginning, we wrote the rules by hand. The expert systems of the 1980s and 90s were magnificent and exhausting. You found the best person in the building — the diagnostician, the underwriter, the network guru — and you sat a knowledge engineer across from them for months, extracting their judgment one IF-THEN at a time. Thousands of rules, curated into a knowledge base, executed by a deterministic inference engine that never hallucinated, never improvised, never surprised you. The execution was flawless. The problem was everything else: knowledge engineering cost a fortune, the expert could never quite articulate the intuition they actually used, and the systems were brittle in a way that bordered on comic — one step outside the rulebook and the magnificent machine went silent, or confidently applied a rule that did not fit. Every new product version meant another expensive rule-surgery project. The support costs compounded, and expert systems became a cautionary tale: perfect execution, starved by its own knowledge.
The generative AI era inverted exactly one thing: where the rules come from. Instead of interviewing the expert, you curate the raw record of their work — every decision, every correction, every recovery — and let an autoregressive probabilistic model learn the patterns from the data. The rules are no longer written; they are learned. And here is the part people get wrong about how these systems run in production: the model does not execute anything. It fills in a carefully formatted card — a JSON form, a tool call — and hands it to a deterministic harness that reads the card and does the work. It reminded me of nothing so much as the mainframe punchcard. Judgment happens in the model; execution happens in code; the card is the boundary. The expert system is back, but the knowledge base is learned, and the inference engine is split in two: a probabilistic form-filler in front of a deterministic executor.
Talk is cheap, so I ran the experiment on myself. I took a small open-weights model — free to download — and trained a LoRA adapter on three months of my own agent sessions: every failure, every recovery, curated into a few thousand clean examples. The adapter training cost me under $50 in GPU time. The model itself was free, so the total cost of my custom model is $50. For this price nowadays you can get dinner in a good restaurant. But I have a model and it works. I ran it in ollama, served it locally as an endpoint, and pointed my harnesses at it — Interpreter, VSCode+RooCode. I could not tell the difference.
Your mileage may vary. But the direction is set: the cost of a custom model is now the cost of a dinner, the data is the work you already did, and the harness does not care whose card it reads