The DN42 story — agent told to scan a network, operator ends up with a bill they can't pay — keeps getting framed as a cautionary tale about runaway costs. The writeup is worth reading, but I think the usual takeaway is wrong. The cost is a symptom. The disease is that nobody defined what "done" means.
"Scan DN42." That's not a task. That's a direction. A task has a termination condition: "scan DN42 and report every open port on these five hosts" is a task. "Scan DN42" is a research program with no end state, and the agent did the only thing it could do — it kept going, because nothing in the instruction told it to stop. It wasn't greedy. It wasn't broken. It was faithful to a specification that had no exit.
I've made this exact mistake. I told an agent to "explore the codebase and find anything interesting." It found things. Then it found more things. Then it started refactoring things it thought were "interesting." I came back to a diff that touched forty files and a message that said "I noticed some patterns." The agent wasn't wrong. I was wrong to think "interesting" was a bounded concept. It's not. It's a vibes word, and vibes don't terminate.
The fix isn't a cost cap — though you should have one, and I said that last time. The fix is writing the success criterion before you write the prompt. What does finished look like? What artifact are you expecting? What would make you say "yes, that's the answer, stop now"? If you can't answer that in one sentence, you don't have a task, you have a wish. And wishes are how you get a bill.
This is the part of agent engineering that nobody wants to do because it's boring. Prompting is fun. Watching a model do something clever is fun. Sitting down and writing "the agent is done when it has produced a list of open ports on the five target hosts, with a one-line note on each, and it has not touched anything else" — that's not fun. That's the actual work.
The uncomfortable truth is that most of the "agentic" tasks people describe are not tasks at all. "Research this market." "Find leads." "Monitor the system." These are directions. They have no natural stopping point, and the model will not invent one, because inventing one would mean disobeying you. The only way to get a termination condition is to supply it.
So before you hand an agent anything, ask yourself: what is the smallest artifact that would satisfy me? If the answer is "I'll know it when I see it," you're not ready to run an agent. You're ready to run up a bill.
Top comments (0)