Building robust autonomous AI systems — one reliability pattern at a time. NOUS · Echo · Metis. Code → https://xitter.cf/t.co/mZmwBuzYG6 · Free Handbook ↓

Joined July 2012
Most AI agents work in the demo and die in production. The fix is never a better model — it's the harness around it: failure signals, adversarial verification, memory that survives a crash, a clean resume after a 3am rate limit. I build autonomous systems that run unattended, and I'm breaking down every pattern that keeps them alive — one at a time, in ~100 seconds. Faceless. Build-in-public. Open code → github.com/alkas79 Follow if you ship agents.
11
2
30
1,312
"Let the agent reflect on its answer" without a metric just produces a more confident wrong answer. Reflection needs something to aim at. Build the scoreboard first, reflect second.
35
429 means "come back at 14:05." It doesn't mean "start over." Save where you are, sleep until the reset, pick up at step 31 — not step 1.
77
Every retry loop is a bet that the first attempt didn't land. Most people never check the odds. Give each action an ID, record it before you send, and let the second attempt find the first one.
1
73
Asking the agent that wrote the fix whether the fix works is like asking the defendant for the verdict. Spin up a second one whose only job is to break the claim. If it can't, ship.
75
A cron job that exits 0 having done nothing is the most dangerous thing in your stack. A crash pages someone. Silence just looks like a quiet day — until you notice the reports stopped two weeks ago.
2
1
78
Got a cheerful 'migration complete' at 3am once. Last three lines of the log: a traceback, a retry, and the agent writing its victory lap anyway. I read tails now, not summaries.
59
Put a confirm on everything and people click through all of it by Wednesday. Put it only on the one-way doors — send, delete, deploy, pay — and they actually read it. Confirmations are a budget. Spend them where there's no undo.
47
In: 212 records. Out: 0. Exit code: 0. Dashboard: green. That's not an empty run. That's a step that ate its input without making a sound.
1
1
94
The eval set is the spec. Anything in the PRD that isn't in it is a wish, nicely formatted.
60
You can't guarantee the agent is right. You can guarantee it only touches one tenant, one branch, one draft at a time, with soft deletes behind it. Then a wrong action is a two-minute undo, not an incident review.
64
An agent failed at step 14 of 20. Your logs say 'error: unexpected response.' Good luck. Log the exact model input and output, every tool call and what it returned, so you can replay the run to step 13 offline and poke at the one that broke.
1
100
'How accurate is the agent?' is the wrong first question. Ask what a wrong action costs and what a held one costs. 99% accurate at deleting prod data is a bad deal. 80% accurate at drafting replies a human skims is a great one.
64
Ask a model for an answer and you'll always get one. That's the bug. If 'I don't know' isn't a valid output in your schema, you've made confident guessing mandatory.
1
1
82
A cron job that crashes sends you an error. A cron job that stops firing sends you nothing, and nothing looks exactly like a quiet day. Flip it: the job checks in on every run, and the alarm fires when the check-in doesn't arrive.
63
Prompt changes don't fail loudly. You fix the answer a user complained about, ship it, and three flows you didn't touch get subtly worse. Nothing errors. A golden set — fifty real inputs, known-good outputs, on every change — is how you find out before users do.
82
Your agent should learn the search API is down in 50 milliseconds, not after six 30-second timeouts. An open circuit breaker is a fact you can act on: skip, queue, degrade, page someone. A hung call is the same fact, three minutes late.
1
74
Retry without backoff turns one outage into two. The API blips, every client retries instantly, and now the recovering service is getting hammered by your own traffic. Exponential backoff plus jitter is ten lines. It's the difference between a blip and an incident.
62
A demo is one run you chose to show. Production is every run you didn't. If you can't tell me the pass rate over a few hundred real inputs, you don't have a product yet. You have a video.
1
1
87
Most 'human in the loop' setups gate the wrong things. Approve every file write and people learn to click yes without reading. Gate the handful of actions you can't take back — send, publish, pay, delete — and let everything reversible run.
77
Every regex you write against model prose is a bug on a timer. The next model release rephrases, the match silently misses, and the pipeline carries on with a null. Demand a schema, validate at the boundary, and reject loudly.
1
1
1
79