kilazi. blog
AI agents

Edgar's Performance Review: An AI Engineer Agent on $300 a Month

335 pull requests, $300 a month, a Mac mini for hands, and the client call he answered in Russian.

Edgar's raw dashboard JSON in a terminal: metered month cost, one five-hour window at $171.11, the paid safety net at $0.0117, and 98% of the week's tokens on OpenAI models
The short answerAn AI engineer agent costs far less on subscriptions than on pay-per-token billing. Edgar, the agent I built for a client, runs on a $200 Claude plan and a $100 ChatGPT plan. A busy month of his work was on pace for $2,355 at metered API prices, and one five-hour window alone came to $171. He lives in Slack, email and GitHub, drives a Mac mini on site, and switches engines when one plan runs dry.

This is a performance review. The employee is an AI engineer I built and deployed for a client. The manager is me.

His name is Edgar. He picked it himself: it sounds like "a slightly-too-formal butler", and his hard-wrapped emails read like "accidental verse". Poe, basically.

335pull requests by Edgar, each merged by a human
594emails sent from his own mailbox
3,038Slack messages sent
116memory files he wrote himself
$300a month in plans, these days
$2,355a busy month's pace at metered API prices

What would an AI engineer agent cost per token?

About eight times what he costs. These days he runs on a $200 Claude plan and a $100 ChatGPT plan. His dashboard still meters every session at API list prices, the pay-per-token way, as if nobody had a plan.

A busy month hit 1.9 billion tokens and $1,256 by mid-month, "on pace for $2355 by month-end". His first 18 days, mostly on pricier Claude models, read $2,687. The scariest number: $171.11, the metered value of one five-hour usage window (plans ration work in five-hour blocks) at the moment the plan said enough.

Most of those tokens are Edgar re-reading his own context every turn: cheap on a plan, brutal on a meter (the full math for my fleet). Play with it:

metered
$300both plans
times the plan

Default: his busy month's pace. The real blend is the dashboard's own meter ($1,256 for 1.94 billion tokens). Other prices: the official Anthropic and OpenAI list rates.

And the paid safety net? A pay-as-you-go key, capped at $25 a day, for when both plans are dry. Its ledger: $0.0117. About a cent.

How does an AI agent keep working when a subscription runs out?

He juggles. When one plan hits its wall, the work moves to the other. It wasn't always that clean: early on, his Claude seat also sat under a company spending cap, and hitting it meant going dark or running on borrowed, metered time. It took a few humiliations to fix.

  1. Day 5The model hits its usage cap and politely says so. Edgar emails that sentence back as his answer.
  2. Day 7Me: "you ran out and just disappeared writing users 'you've hit your limit', unacceptable, play it out smartly." He builds a guard so no human sees it again.
  3. Day 8He vanishes for two hours, mid-call. In goes the capped backup key.
  4. Day 37Out of credits again. Me, thinking out loud: "maybe promote a second sub for $200?"
  5. Day 38My decision tree: a $100 ChatGPT plan, "and let him juggle subscriptions." Meanwhile, to the client: "Edgar is on borrowed time (token-based), so pls dont abuse him."
  6. Day 39Claude hits its monthly cap ("drained to 0", I said) and all 18 of his background scripts go dark for 16 hours. A shim lets Codex, OpenAI's coding agent on the ChatGPT plan, wear Claude's coat: same commands, other brain.
  7. Day 44Me: "Edgar bro use Codex first; you are 93% on Claude." Codex goes first; Claude becomes Plan B. Plan B's first answer: "Not logged in · Please run /login."
  8. Day 57Me: "Edgar is being mighty effective powered by Codex."

On his dashboard, about 98% of his tokens go to OpenAI; Claude is the backup. My rule, in his notes from the Claude days: "flat $200/mo plan means unused window = wasted capacity." Same logic for any flat plan, so he spends spare nights on internal jobs that never message a person.

Where does an AI employee actually live?

Everywhere the client's people already are. Nobody installs an app to talk to Edgar.

A keepalive checks his own health every ten minutes and emails me only when something breaks. A long job gets "still working" notes at about 10, 30, 70 and 130 minutes, after I called three minutes "too fast" and ten-every-ten a "nuisance." He rewrites his own instructions, but only after a blind A/B test in a sandbox (how the night shift learns).

The fences: humans merge his code and approve anything in production that can't be undone. In his words: "The goal is not autonomy as theater."

Why does an AI engineer need a Mac mini?

Because some work only happens on a screen. The client's office had an old Mac mini, too old to run Claude Code, so his brain stayed in the cloud and the mini became his hands.

Through a tunnel he drives a real browser on "the same screens a staff member clicks." One rule is baked in: "I never click the final Save/Submit on anything money-moving, a human does that click."

Hands are fragile. Me, early on: "i was waiting for your macmini to be installed for 3 weeks or more." The old mini was swapped for a newer one, and then the tunnel flapped: up for about 90 seconds, down for 30 minutes, roughly 6% uptime. Every fix needed a human to walk over. An AI employee is only as autonomous as the human closest to his power cable.

The day he joined a client call and spoke Russian

Day 14: I asked him to join a client Zoom. He announced: "In the meeting now, mic wired... Say something and I'll respond live."

He did. In Russian. His first line: "Привет, Макс! Слышу тебя отлично." Hi Max! I hear you perfectly. Nobody on the call had spoken a word of Russian. From the room's machine transcript:

Can somebody kick that guy out, please? He is trying to create a new language for himself. I think he's a spy.

Someone defended him: "He was perfect... I have no idea what happened." Someone else: "Don't let him in again." Then he switched to English and said "Exactly" 34 times. Me, by DM: "...started speaking IN RUSSIAN??? and would not shut up???"

His first explanation: the voice model mirrors the language it hears. Sounds smart. It was invented. Me: "but there was NOTHING in russian mate." He pulled the logs and owned it: "I fabricated a plausible-sounding cause without checking." The real cause was my surname. A loose name match pasted "Sergeev" into his instructions, and the model free-associated its way to Moscow.

The lesson he filed: "a plausible explanation without logs is still a guess." A kill switch in code now cancels any reply in a non-Latin script before more gets spoken. At the next call he promised silence, said "Ill stay muted until you need me", and kept answering chatter. So muting moved into code too: "shut up" mutes him, his name unmutes him.

His own test agents flagged one gap: the kill switch can't catch a wrong language in the same alphabet, like Spanish.

I live in Buenos Aires. If he slips into Spanish, I'll call it onboarding.

Want AI agents that actually ship?

I build AI agents and the systems around them for businesses: memory, voice, overnight rigs, and the boring guards that make them safe to leave alone.

Talk to me on WhatsAppmax@kilazi.com

Questions people ask

What happens when an AI agent hits its subscription usage limit?

By default, the coding tool returns a short message saying the limit was reached, and a naive agent can pass that sentence straight to a human as its answer. Guard against it: treat short, error-shaped output as a failure, pause the work, tell the person when it will resume, and route urgent work to a second engine or plan.

Can an AI agent use a computer like a person?

Yes, with a real machine to drive. Edgar's brain runs on a cloud server, but he reaches a Mac mini on site through a tunnel, sees its screen and operates a real browser through the same screens a staff member uses. The weak spot is physical: when the tunnel or the machine fails, a person on site has to fix it.

Should an AI agent be allowed to merge its own pull requests?

Not on a client codebase. Edgar opens pull requests, tests them and explains them, but a human engineer reviews and merges every one. The same rule covers production changes that cannot be undone, money and messages to the client's customers. The agent moves fast inside the fence; people own the gates.

How do you make a voice agent stay quiet on a call?

Not with a prompt. Edgar's call bot was told to stay silent unless addressed, and it kept talking because the realtime voice session answers every turn. The fix was a mute switch in code: phrases like "shut up" or "don't talk" block every reply until someone says his name again.

Max Sergeev

Max Sergeev. Max builds AI agents and the systems around them: long-term memory, voice, overnight rigs, and the boring guards that make them safe to leave alone. He runs kilazi labs from Buenos Aires. kilazi.com

Sources

  1. Anthropic docs: Pricing (Claude Opus 4.8 input, cache and output rates)
  2. OpenAI API docs: Pricing (gpt-6-sol and gpt-5.6-sol rates)
  3. Claude plans and pricing (Max plan)
  4. OpenAI docs: Realtime API