Skip to main content

Command Palette

Search for a command to run...

What changes when the agent's output is the product

Updated
3 min readView as Markdown
M
Full stack engineer. 25+ years of production software engineering across e-commerce, workflow automation and agentic ai

Two platforms, one agent service, and the difference between them is a distinction I did not see until I crossed it.

On the orchestration side, when an agent classifies a failure incorrectly the cost is a wasted retry. The system notices, tries something else, and nobody outside ever knows. The judgment is internal: load-bearing for the machinery, invisible to the world.

On the publishing side there is no such cushion. The agent writes a paragraph, the paragraph goes into a brief, the brief goes to readers. A wrong classification announces itself. A plausible, well-written, subtly wrong sentence does not.

Same infrastructure. Completely different failure mode. Three things follow from that.

The role distribution inverts. On the orchestration platform, almost every agent call is a decision. On the publishing platform, five of the eight resident roles exist to write or edit reader-facing prose, and only one is doing internal decision-making. The infrastructure is identical and the shape of what runs on it is upside down.

Three agents read the same document and must not produce the same answer. When a release lands it goes to three roles pointed at the identical source with different jobs. A private analyst writing for one reader in the vocabulary of a specific framework. A public writer whose output goes in front of readers who do not work in finance. A structured scorer returning a classification, because parts of the system need a value rather than an argument.

That is not three prompts on one model. Each is a role with a standing definition that stays resident and accumulates context across everything it has read this week. Try it as a single call and you get mush: one paragraph hedging between two audiences and useful to neither. The reason to have an agent behind the endpoint rather than a model is precisely that it can hold a role.

Failure needs a taxonomy, not a retry. Unreachable is transient, so retry it. But an output you cannot parse, or one that arrived partial, must not be retried automatically. In a publishing context a partial answer is worse than no answer, because a missing analysis is visibly missing while a truncated one looks complete. It sits there reading like a finished thought with its conclusion silently amputated.

The whole thing turned out to be less like engineering than I expected and much more like editing.

The full piece is on my site, including the month of small embarrassments that taught me the audience lesson:

https://openred.space/blog/calling-an-agent-for-sentences.html