Blog

Writing

Life, tech, and everything in-between.

One Word, Three Jobs: What "Agent" Means at Lunch and in Production

10 minAI

The lunch-table conversation about AI agents and the production-engineering conversation about AI agents are both right. They are talking about three different things and calling all of them "agent."

Evaluator-Optimizer: Iterative Refinement with a Separate Critic LLM

7 minAI

Some tasks improve on a second pass, but only when the critic is a separate LLM with its own mandate. Asking a generator to grade its own work produces confident praise for mediocre output.

Orchestrator-Workers: Dynamic Task Decomposition for LLM Agents

6 minAI

Routing picks from a fixed list. Parallelization runs a fixed fan-out. The orchestrator-workers pattern lets a planning LLM decide, at runtime, what the subtasks are and how many workers to spawn.

Parallelizing LLM Calls: Sectioning and Voting

6 minAI

Parallelizing LLM calls is not a single pattern. Sectioning runs different subtasks on the same input; voting runs the same task several times and aggregates. Choosing the wrong shape produces the wrong kind of improvement.

Routing: Classify and Dispatch LLM Requests to Specialists

6 minAI

A prompt tuned to handle billing refunds well is almost never the same prompt that handles technical outages well. Route the input instead, and give each category a prompt, a toolset, and sometimes a model of its own.

Prompt Chaining: Sequential LLM Pipelines with Validation Gates

6 minAI

A single unscoped prompt that tries to plan, draft, validate, and polish in one pass is a coin toss. Chain narrow calls instead, and put programmatic gates between them.

Workflows Versus Agents in LLM Systems

7 minAI

The term agent has become overloaded, and the overloading is expensive. A system in which the language model controls its own flow costs more to run and more to debug. The default should be a workflow.