Nine Commits
One AI agent, built in nine commits. Every demo on this site replays a run that actually happened on my machine, including the ones that failed.
There is no framework here and nothing hidden behind a diagram. An agent is a loop over an array of messages. Each post is bound to a git tag you can check out and run yourself, and every one of them has a section about what broke.
All nine are published. Four of the theses below had to be corrected because the commit disagreed with them — posts 3, 6, 7 and 8, three of them twice, and each says so. The ninth grew without being corrected, and the other four are untouched.
- Commit 1
v1-not-an-agentAn LLM Is Not an Agent
An agent is a model, a set of actions, and a loop. Take the loop away and what is left is a chatbot.
Published 22 September 2026.
- Commit 2
v2-handsGiving It Hands
A tool's description is a prompt. Write it badly and the model reaches for the wrong tool.
Published 23 September 2026.
- Commit 3
v3-the-loopThe Loop
History, tool results, and a stop condition. The first two came with the SDK. The loop was three lines deleted and a cap raised from two to ten.
Published 23 September 2026.
- Commit 4
v4-does-it-workBut Does It Work?
Single-turn evals test the decision the model made, not the prose it wrapped around it.
Published 23 September 2026.
- Commit 5
v5-moving-targetJudging a Moving Target
When the output is different every run, the grader has to be a model too — and then the grader needs grading.
Published 23 September 2026.
- Commit 6
v6-four-operationsFour Operations
List, read, write, edit. Four filesystem primitives finished all five tasks, fifty runs out of fifty. So did a fifth — it cost eighty-eight tokens in the first request and changed nothing else I could measure at fifty runs.
Published 23 September 2026.
- Commit 7
v7-contextContext Is the Real Constraint
One web search fills two per cent of the window, not the window. Compaction keeps the loop alive against accumulation — fifty runs without it finished nothing, seventeen with it still died on one oversized turn — and what it costs is not the facts, it is that the agent goes back and fetches them again.
Published 24 September 2026.
- Commit 8
v8-shellShell Access, and Why That's Terrifying
A shell is everything you can do: in a container, one call deleted the machine it was running on. The one I would let near this machine cannot author a byte of its own, refused forty-seven of the seventy-nine commands the model wrote, and finished sixty of seventy tasks against the four filesystem primitives' sixty-five — a gap these runs cannot distinguish. What they can distinguish is the step cap, which it hit eleven times against zero. The one thing it finished more often is the byte count the four have no primitive for.
Published 24 September 2026.
- Commit 9
v9-hitlThe Human in the Loop
An approval prompt is a branch in the trace: one run, suspended at the gate, continued twice — both branches on this page were recorded and you answer the question. Saying yes costs nothing, to the token. Saying no does not stop the change: the agent asked again in thirty of forty denied runs and handed me the shell command in twenty-seven. In a hundred and fifty runs the gate asked a hundred and sixteen questions and not one was about a call I would have refused.
Published 24 September 2026.