Writing
Essays and analysis, newest first.
-
LiteLLM Budget Limits: max_budget Needs Postgres
A LiteLLM budget cap does nothing without a database. I tested v1.104.0, then set up per-agent keys and a team spend limit in ten minutes.
-
Vectorless RAG: Reasoning Over a Tree, Not Cosine Search
Vectorless RAG swaps embeddings for a table-of-contents tree the LLM walks. What PageIndex does well, what a query costs, and who should skip it.
-
MoE Expert Offloading: 125B on a 12GB GPU, With Catches
MoE expert offloading lets a 12GB GPU run a 125B model, but only for one user at a time. What Strata's numbers say, and what I'd run instead.
-
Why I’m Betting on a Minimal Agent Harness
Pi 1.0's own release notes claim a 40% prompt-token cut from Codemode. Here's the arithmetic I'd run before trusting a minimal agent harness.
-
Open-weight decision models: Clef vs Strands Decider
Clef and Strands Decider 2B are open-weight decision models that return a calibrated score, not text. Here's what shipped and why it matters.
-
The Hidden Risk of Letting AI Manage Ad Campaigns
MCP's own specs disagree on whether it is stateful. Neither defines a record of what changed in your ad account — and an unattended run needs that record.
-
Your Agent A/B Test Was Broken Before You Ran It
In parimutuel betting your own bet moves the odds you get, so you can't test a strategy against half your bankroll. Agents have the same problem, and almost nobody running an A/B test on one has noticed.
-
Half My Agent’s Budget Goes to Checking Its Own Work
I built the quality gate last, in an afternoon, as the cheap safety rail. Then I added up the API bills by phase. Across four runs it took 51.5% of everything the pipeline spent.
-
I Rewrote the Test Until My Writing Passed It
Five commits in four days, every one adjusting the grader that judges this blog's drafts, every one triggered by a verdict I disagreed with. Finance has been making that mistake with real money since the seventies.
-
The Bug Was Reproducible. My Logs Weren’t.
A post on this site ended in a raw API payload for 151 days. Fixing it took two minutes. Explaining it took longer, and I never finished, because I had not recorded what the model actually said.