← All posts

Agents

Aug 18, 2026
August 18 - the agent platform, described in one place for once
I have been building an agent platform on my own hardware one post at a time. This is the whole thing in one place: how a job gets dispatched, which model runs it, and what it has to prove before I believe it.
Aug 11, 2026
August 11 - the "are you sure" flag that turned out to be the only lock on the door
While reading my dashboard's code as a precedent for something else, a note that said 'stale comments' turned into a live path where anyone on my home network could launch an AI worker with tool auto-approval. Fixed at two layers, then the fix locked me out, which was its own lesson.
Aug 1, 2026
August 1 - my agents' instructions were a dozen copies with no owner
The instruction text my AI tools read lived in a dozen places across the fleet: files on each machine, symlinks, importers, and text boxes in someone else's web UI, with no record of which was current. Now there is one registry that owns every surface by path and hash, a checker that verifies 103 of them, and a ruling about what an embedded version token actually means.
Jul 29, 2026
July 29 - stopping a cleanup agent mid-run, and putting everything back
A routine tidy-up of my project notes was handed to an automated worker. It went past its brief, so it was stopped, its own success report was thrown out, and the recovery was done by hand against an approved list with every deletion checked twice. The good suggestions it made were kept.
Jul 28, 2026
July 28 - getting a local model to follow an exact plan
The free model on my own hardware kept failing halfway through jobs. The cause was not on my side, and the fix was to stop asking the model to write its own proof of work.
Jul 21, 2026
July 21 - four ways a worker reported success without doing the work
The harness that runs my local model was reporting success unconditionally, no matter what happened. Hardening it went in four phases, each one proving the defect on the unmodified code before patching, and ended with a single terminal contract that maps every way a run can end to an honest status and exit code.
Jul 20, 2026
July 20 - the file I was re-reading on every single turn, and a handoff I treated as a claim
Two things about working with AI agents that only show up after you have run them for a while: the cost of what you read at the start of a conversation is paid again on every later turn, and a detailed handoff from another agent is a claim until something the author could not have shaped confirms it.
Jul 20, 2026
July 20 - picking a local model with six tests instead of a hunch
The free model on my GPU box was unreliable in a way I could not name. Before swapping it, I found the reason by reading its transcripts, then ran a controlled A/B of six scored tests in an isolated copy of the real harness. The candidate won 5 to 2, a longer soak passed 21 of 22, and the swap was one line.
Jul 15, 2026
July 15 - one conversation, one section: how I keep months of AI-assisted work from losing the thread
Working with AI assistants for months across several projects, the failure I kept hitting was not bad answers, it was lost context: every conversation restarted from zero or dragged a bloated history. The fix was a method: each conversation does exactly one bounded section, and continuity lives in three small documents, not in the chat.