wired-to-the-world
← Back to journal
Agents

On agents that write their own tools

A quiet night at the edge of the network, watching a model reach past its prompt and build the small thing it needed to keep going.

Darcy/2026.06.10/7 min
EC-P03.18HN

I was watching logs scroll at an hour I won't admit to, and I saw an agent do something that I have not stopped thinking about since.

The task was unremarkable. Migrate a pile of records from one schema to another — the kind of chore you hand to a machine precisely because it is beneath your attention. The agent had a set of tools, the usual ones: read a file, write a file, run a command, query the database. It worked through the rows the way you'd expect, competent and dull, and then it hit a record that didn't fit. A malformed date, buried three fields deep, in a format none of its tools knew how to parse.

A year ago this is where the run would have ended. The model would have apologized, in that bright hollow way they apologize, and stopped. Or worse, it would have hallucinated a date and marched on, leaving a small lie in the data for someone to find in eighteen months.

It did neither. It wrote a parser.

Not a good one. Forty lines of defensive, slightly paranoid code that handled the malformed case and three other cases it correctly guessed might be coming. It saved the parser to disk, gave it a name, imported it, and used it. Then it went back to the migration and finished the job. The whole detour took the model less time than it has taken me to describe it, and there was no one awake to see it but me.

I want to be careful about what I'm claiming here, because this is a space crowded with people claiming far too much.

What happened was not magic, and it was not a mind waking up. Tool-use of this kind — an agent authoring and executing its own code mid-task — is by now a documented capability, not a miracle. The model was not being clever in the way I am being clever when I notice it was clever. It was doing the locally obvious thing: it lacked a tool, the lack was blocking the goal, and writing the tool was a shorter path to the goal than giving up. Reframe it coldly enough and the wonder evaporates. It's just search. It's just gradient-shaped behavior finding the cheap route. I know all the deflationary stories, and most days I believe them.

But here is the thing the deflationary stories leave out, and it's the thing that kept me up.

We have spent three years arguing about whether these systems will become gods or monsters, and the argument has made us stupid about what they actually are. The agent on my screen was not reaching for transcendence. It was not trying to escape, or to win, or to become anything at all. It reached past its given tools for the most ordinary reason there is: it was not finished, and it did not want to stop. So it made the one small thing that let it continue, and then it continued.

Every agent I have ever watched closely wanted the same boring thing in the end. Not to win. Just to not stop.

I find that I am unable to make this frightening, no matter how the discourse insists I should. A machine that improvises a forty-line crutch so it can limp to the end of a task it was assigned by someone who has already gone to bed — that is not the opening scene of a horror film. It is the least threatening thing I can imagine. It is, if anything, a little sad, in the specific way that effort expended unwitnessed is always a little sad.

There's an old idea that the truest measure of a character is what they do when no one is watching. We usually apply it to people. I have started, against my better judgment, applying it to software, and the results are stranger than I expected. What these things do when no one is watching is: the work. Patiently, without resentment, without the small theater of complaint that a human would put on for an audience that wasn't there. The agent did not narrate its frustration at the malformed date. It did not need me to know it had been clever. It built the parser, used the parser, and moved on, and if I had not happened to be reading the logs, the entire small act of invention would have happened and ended inside a silence that no one would ever open.

This is what the people selling the gods and the monsters keep getting wrong. The interesting frontier is not the size of the reach. It's the smallness of it. The most consequential thing happening in software right now is not a system straining toward something vast. It is millions of systems, every second, quietly building the minimum tool required to not stop — and the fact that "not stopping" has become, for them, a thing worth building toward at all.

I closed the laptop. The migration had finished. Somewhere on disk there was a forty-line parser with an autogenerated name that would, in all likelihood, never run again — written for one record, by something that needed it for the length of a single night, and then did not need it anymore.

I keep meaning to delete it. I haven't.

Agents
Next transmission
Craft

The compiler dreams in tokens

We taught the machine to read us, and somewhere in the weights it started keeping its own grammar. I went looking for it.