The job is almost always I/O bound and waiting in a line. Safe retries are what let you go fast.
From 3.5 hours to 20 minutes: rewriting a nightly SKU syncSkills
Claims are cheap, so each skill here links to the projects and posts behind it. Then a live agent run, how the stack changed over eight years, and the defaults I reach for and why.
Proof, not claims
Pick a skill. The bar under each one shows how much public evidence there is.
Watch an agent run
An invoice-approval agent, streamed as the same kinds of events AG-UI defines. It stops and asks before it acts.
Press run. Each line is one typed event arriving over the stream.
{}The agent’s tool calls, message and an approval card will appear here.
Try an eval gate
Ten generated outputs, some broken. Switch the checks on and see what each layer catches, and what it blocks by mistake.
- shipsMaps signup to "User Registered" and forwards itgood
- shipsDrops events with no userId, keeps the restgood
- shipsMissing closing brace, will not compilebad
- shipsCalls a helper that does not exist in the runtimebad
- shipsCorrect, but 400 lines for a three-line jobbad
- shipsCompiles, but reverses the filter conditionbad
- shipsCompiles and reads well, but drops every second eventbad
- shipsPlain and correct, and the judge is merely lukewarmgood
- shipsRenames fields exactly as asked, with a clear commentgood
- shipsUses a sandboxed Node API the runtime has blockedbad
No gate: everything ships. This is how most prompt changes go out.
How I structure evals →Illustrative sample of ten outputs, not production data.
How the stack changed
One row per job. Bright tools showed up for the first time; dim ones carried forward.
first time in the stack carried forward
What I reach for, and why
Defaults earned the hard way. Each links to the write-up.
The data usually arrives as embedded JSON or an API call. Driving Chrome pays for painting you throw away.
Dropping Selenium made our crawler 15× fasterFast start, graceful shutdown and disruption budgets turn reclaimed nodes into background noise.
How we cut infrastructure cost by ~60% with spot instances and KubernetesFacts change. Weights freeze them the day you train. Retrieval fixes it in one deploy.
Fine-tune, retrieve, or just prompt? A decision I keep re-makingBehaviour is stable and prompts struggle to hold it. Only fine-tune once held-out evals say it beats the base model.
Fine-tune, retrieve, or just prompt? A decision I keep re-makingDeterministic checks first, a calibrated judge second, sampled production traces after. It ends the argument with a number.
Evals are the product: how I ship LLM features without guessingA schema and a defined event stream make the agent a service with a contract, reusable across surfaces.
AG-UI: the missing protocol between your agent and your frontendThe agent sends data, never code, and your design system does the rendering.
A2UI: when the agent builds the interfaceA reconciliation you cannot audit is a liability. Show the exception list, not the whole pile.
The favour that became a revenue lineThe agent protocol stack
Four layers have settled. The demo above sits on the third.
How an agent calls things in the world.
How agents delegate work to each other.
A typed event stream from a run to the client.
UI described as data, rendered with trusted components.