Ten agents and what they actually cost me
I audited my own agent estate on camera. I could not enumerate it from memory, and I have been building it for eighteen months.
5 min read
The title is wrong. I left it that way on purpose.
I do not have ten agents. As of the August 12, 2026 audit I have 24 scheduled tasks. 22 are enabled. They fire about 41 times a day, roughly 15,000 invocations a year. I have been building this estate for eighteen months, and I could not list it from memory. That is the finding, not a flourish.
I audited it on camera because I wanted the count to be public the way a board packet is public. I sat down to name what I run, and I could not. If you cannot name the jobs, you do not know what they cost. If you do not know what they cost, you are not operating them. You are living near them.
I will stay inside the audit. The audit is explicit: no per-task token, API, or time accounting exists anywhere. That sentence is the cost section. Everything else is what I actually pay, and what I spend attention on.
What I pay is $200 a month for Claude Max and $200 for ChatGPT Max. That is what the card sees. It is not a cost model for 24 tasks, and I will not pretend I ran the posted-rate math. Attention is the expensive cost. Adding scheduled tasks once consumed 100% of the Claude allowance in a single week. That is the only utilization number I will stand behind, because it is the only one I have.
Now the estate, as counted on August 12.
Credentials are named in 5 of the 24 tasks. Expiry is recorded in zero. Owner: zero. Creation date: zero. I built this, and I cannot tell you from the task records who owns a job, when it was born, or when its secrets die. That is not a tooling complaint. That is an operator who did not write the fields down.
Five tasks have a prose description that does not match the cron. event-finder-area is described as weekly on Thursday. The cron is daily at 03:30. video-monitor's description does not match the three-times-daily schedule it actually keeps. content-generation-helper claims 6am and runs twice a day. portfolio-brief runs at 04:00, not 6:15. gun-finder is described as once daily, and it is disabled. Those five mismatches are the difference between the document you would hand a new operator and the schedule the machine actually keeps. I wrote both sides. They drifted. I did not notice until I audited.
lastRunAt is an attempt, not a success. A healthy timestamp means the job was tried. It does not mean the job produced the thing you think it produces. I had been reading lastRunAt as a pulse. It is a knock.
research-gap-monitor is the cleanest example. Enabled: true. lastRunAt: healthy. The newest report on disk: GAP-REPORT-2026-08-07.md, six runs old. Six consecutive runs produced no output. The task is a monitor, and one of the projects it monitors, moto-finder, has been dead 49 days and is still on its list. A monitor that keeps a dead project on the list and then emits nothing for six runs is not monitoring. It is keeping a calendar.
gun-finder is enabled false, and its lastRunAt is the morning of August 12. Disabled is a flag. It is not a guarantee the thing is quiet. I do not have a better sentence than those two facts next to each other.
Thirteen tasks are confirmed browser-session tasks. Six more are undeclared. That is 19 jobs that may be holding a browser, six of them without the description saying so. Undeclared is worse than confirmed, because undeclared means I cannot reason about the estate from the docs. Three of the 24 mutate external state: video-monitor writes YouTube playlists, google-tasks-sync completes Google Tasks, and a third is in the same class. Most of the estate can be wrong quietly. These three can be wrong in someone else's product, and lastRunAt will not tell me whether the mutation was the one I wanted.
Ten of the 24 wrappers violate the thin-wrapper convention. Two of the ten were authored the same day the convention was restated. A rule I wrote did not constrain me the afternoon I wrote it. That is the operator problem in one line. The estate is not only drifting from age. It is drifting from the hand that claims to govern it.
If I cannot enumerate the jobs, I cannot cost them, and the $200 and $200 are the only honest money sentence I have. They are the door fee, not the work. I am not going to convert 15,000 invocations into a rate the audit says does not exist.
So what they actually cost me is this. $400 a month. One week that ate an entire allowance. And attention spread across 24 jobs I cannot recite, five of which lie about their schedule, one of which monitors a corpse, three of which touch the outside world, and none of which record an owner, a birthday, or an expiry.
I have been an engineer since 1998. I have led teams I could not interrupt. I have been a CTO. None of that gave me a dashboard. The transferable habit is the one I used on people: define done, treat a mismatch as my defect, do not trust a green timestamp.
I left the title as ten because the stale title is part of the evidence. I thought I had a round number I could hold in my head. I had 24, and I could not hold them. The correction is the post.
Related: Agent estate, Agentic operator, Harness