---
title: AI agents are still in the line-shaft era
description: Around 1900, one steam engine drove every machine in a factory through shafts and belts. Justin Schroeder says AI work runs the same way today, with one big model behind every task. His answer is small agents with one job each, and factory history says they spread only once there is a standard.
date: 2026-11-14
tags: AI agents, domain-specific agents, agent standards, evals, history of technology
---

"We are sort of in the line shaft era of agents." That is how Justin Schroeder describes AI work today. Around 1900, a factory had one big steam engine. Rotating shafts carried its power through the walls, and a belt ran down from the shaft to every machine. Today, he says, we put one big model in the middle and tie every task back to it. His answer is domain-specific agents: small agents, each built for one or two tasks.

The comparison goes further than a nice picture. Factories got the electric motor, and for decades they kept the same layout. What finally changed them was a plug: one voltage and one frequency, so anyone could buy a motor and put it at a machine. Agents have no plug yet. That part of the talk is about where we stand right now.

Schroeder runs Standard Agents, a small company that wants to write that standard. He opens with a warning: the talk contains forecasts, and forecasts age badly. His first slides are French postcards from 1899 that imagined life in the year 2000. The series, called *En l'an 2000*, has firemen with wings, a bus pulled by a whale and a school of the future. Some missed, some came eerily close. Keep them in mind for the end.

## One engine, a belt to every machine

A line shaft is a long rotating bar that carries power from one engine to many machines. In the factory photos Schroeder shows, the shafts run along the ceilings and under the floors. Each workstation has a belt that climbs to the shaft. Stop the engine and every machine stops. The belts caught clothes and hands. It was wasteful and dangerous, and it worked.

His point is that AI work has the same shape. One large model sits in the middle. Skills (packaged instructions a model can load) and MCP servers (a standard way to plug a tool into a model) are the shafts. Every task, from email to code, gets a belt back to that model. Skills and MCP are not bad, he says. They are simply how work gets done today.

What he wants instead is what factories got later: every workstation with its own power.

<figure class="fd-fig kf" aria-labelledby="ls1-cap" data-desc="A factory around 1900 against AI work today, in four rows. Power: one steam engine in the basement, against one large model in the middle. How it reaches the work: rotating line shafts in the walls and under the floors, against skills and MCP servers. Each workstation: a belt up to the shaft, against each task tied back to the model. The risk: belts and shafts everywhere, against one agent that can reach everything.">
<p class="kf-kick">A factory in 1900, AI work now</p>
<p class="kf-title">The same shape, <em>a century apart</em></p>
<div class="kf-swap is-3">
<p class="kf-swap-h"><small></small><span>Factory, around 1900</span><span>AI work, today</span></p>
<p><small>Power</small><span>One steam engine in the basement</span><em>One large model in the middle</em></p>
<p><small>Distribution</small><span>Line shafts in the walls and floors</span><em>Skills and MCP servers</em></p>
<p><small>Each workstation</small><span>A belt up to the shaft</span><em>Each task tied back to the model</em></p>
<p><small>The risk</small><span>Belts and shafts everywhere</span><em>One agent that can reach everything</em></p>
</div>
<figcaption id="ls1-cap">The comparison is Schroeder's. The rows are mine, from his slides and words.</figcaption>
</figure>

## An agent is the software around the model

Ask a room what an agent is, Schroeder says, and every answer is different. His own is short: deterministic software that uses the non-deterministic results of a model to reach a goal. That is also what people call a harness, and he thinks the two words now mean the same thing.

Building one looks easy. You call the model, it asks for a tool, you run the tool and feed the result back. That loop fits in a few lines. Making it reliable is the hard part: keeping the loop alive across slow calls, swapping model providers, and picking up a run that failed halfway.

He builds the agent up in layers, from the model to the rules. The top layer matters most for a business. A coding agent like Codex may take as many steps as it likes. A company that wants one process done does not want that. For them, an agent that keeps running is a bug.

<figure class="fd-fig kf" aria-labelledby="ls2-cap" data-desc="An agent as five layers, top to bottom. In blue, agent rules: how many steps it may take, and when it must stop. Hooks: code that runs at fixed points, every time. Tools: functions, small prompts for side tasks, and sub-agents. The system prompt: who the agent is and what it is for. The model: the base everything else stands on. Under the layers: often a file system and code execution too.">
<p class="kf-kick">What Schroeder counts as an agent</p>
<p class="kf-title">The model is one layer, <em>the rules sit on top</em></p>
<ol class="kf-stack">
<li class="is-key"><small>Agent rules</small><span>How many steps it may take, and when it must stop.</span></li>
<li><small>Hooks</small><span>Code that runs at fixed points, every time.</span></li>
<li><small>Tools</small><span>Functions, small prompts for side tasks, and sub-agents.</span></li>
<li><small>System prompt</small><span>Who the agent is and what it is for.</span></li>
<li><small>The model</small><span>The base everything else stands on.</span></li>
</ol>
<p class="kf-note">Often a file system and code execution come with it.</p>
<figcaption id="ls2-cap">Redrawn from the layers he builds up in the talk.</figcaption>
</figure>

## A heating company doesn't want one agent for everything

The common advice, Schroeder says, is not to build agents at all. Build MCP servers, give every employee a chat assistant, and let the big model do the rest. Yet across ordinary American businesses, everybody builds agents. Even teams that ship MCP servers often have an agent behind each call.

He sees three reasons.

- **Integration.** Businesses want the work wired deep into how they already operate.
- **Trust.** They don't trust one model that can touch everything to do only what it should.
- **Efficacy.** They don't care how the work is done. They want it done right, every time.

His example is a heating and air conditioning company. It runs on dozens of small processes: local campaigns for when the air conditioning breaks, lead capture, customer onboarding, sales forecasts. Each process is a line with a start and an end. Together, they are the business.

That company has no interest in one agent that takes over all of it, even one that works. The processes already work, so handing them all over is too much risk. What it will buy is one process done perfectly. Take fleet maintenance. A truck breaks down and someone reports it. Someone sets the priority and books a repair. The records get updated, and the truck goes back on the road. That line, and only that line, is the agent's job.

<figure class="fd-fig kf" aria-labelledby="ls3-cap" data-desc="Fleet maintenance at a heating and air conditioning company, as one process in five steps. One, report: a truck has a problem and the issue is logged. Two, assess: someone sets the priority. Three, schedule: a repair is booked. Four, update: the records are changed. Five, in blue, return: the truck goes back to the fleet. Under the steps: one start, one end, and nothing else is the agent's business.">
<p class="kf-kick">One process at a heating company</p>
<p class="kf-title">The agent's whole job is <em>one line, start to end</em></p>
<ol class="kf-steps">
<li><b>Report</b><span>A truck has a problem, and the issue is logged.</span></li>
<li><b>Assess</b><span>Someone sets the priority.</span></li>
<li><b>Schedule</b><span>A repair is booked.</span></li>
<li><b>Update</b><span>The records are changed.</span></li>
<li class="is-key"><b>Return</b><span>The truck goes back to the fleet.</span></li>
</ol>
<p class="kf-note">One start, one end. Nothing else is the agent's business.</p>
<figcaption id="ls3-cap">From the talk's example of a heating and air conditioning company.</figcaption>
</figure>

## A Gmail agent can't go check Twitter

Trust is easiest to see with email. Schroeder compares two setups. The first is a general assistant with a Gmail skill. It got some instructions on Gmail, and you hope it does the right thing. The second is a Gmail agent. It knows the whole Gmail API and has no other tools.

Now ask each one, while it writes an email, to go check Twitter. The Gmail agent says no. It can't, because it has no tool for that. The general assistant says yes, and might do much more. His own exaggeration: it reads that some popular tools were hacked and shuts down production "as a preventive measure" while it checks your mail. "It's a little bit of hyperbole," he says, "but not that much."

So he draws many small agents: a Gmail agent, a Figma agent, a Google Sheets agent. One orchestrator hands them the work, possibly over MCP. He points to a talk on the inside of one popular agent, which hands its subtasks to tiny agents of its own.

None of this is a new idea, he adds. Engineers have long known the principle of least privilege (give each part only the access it needs) and separation of concerns. His picture for it is Apollo 11 launch day. A few astronauts flew to the Moon, and behind them stood a whole team of experts, each in one field.

I wrote about the same limit from the other side in [An agent can carry your request, not your authority](/notes/agents-carry-requests-not-authority.html). A tool the agent doesn't have is a rule it can't break.

<figure class="fd-fig kf" aria-labelledby="ls4-cap" data-desc="Two cards. On the left, in red, a Gmail skill: a general assistant with some instructions on Gmail, every other tool still in reach, and you hope it does the right thing. On the right, in blue, a Gmail agent: it knows the whole Gmail API, has no other tools, and answers I can't do that when asked to check Twitter.">
<p class="kf-kick">The same request, two setups</p>
<p class="kf-title">The agent with one tool <em>can only do one thing</em></p>
<div class="kf-cards">
<div class="is-alert"><small>A Gmail skill</small><b>A general assistant</b><ul><li>Some instructions on how to use Gmail</li><li>Every other tool still in reach</li><li>You hope it does the right thing</li></ul></div>
<div class="is-key"><small>A Gmail agent</small><b>One job</b><ul><li>Knows the whole Gmail API</li><li>Has no other tools</li><li>"Check Twitter?" It can't.</li></ul></div>
</div>
<figcaption id="ls4-cap">From the talk's Gmail example. The red marks the risk he describes, not a measured failure.</figcaption>
</figure>

## A weak model can win a narrow job

Efficacy is the third reason, and it starts with a problem: you can't trust public benchmarks. Schroeder shows leaderboards where a cheap model beats a top one. He quotes a post that says the people hurt most by benchmarks are those too busy to try the models themselves. That is exactly the heating company.

He calls it the streetlight effect. A man who lost his keys searches under the streetlight, because that's where he can see, not because he lost them there. Public scores are the streetlight. The answer is somewhere else: an eval of your own process. A Gmail agent with one job is easy to test. You send it emails and check that it handles each one right, every time. Testing one big assistant on the same task is much harder, because its context is full of everything else.

Small agents also let you use what people call jagged models. A model can be great at one thing and poor at the rest, with no pattern you could guess. Schroeder runs a side project that gives every model the same prompt for a small 3D world. The world he liked best came from a Tencent model that, in his words, is bad at almost everything but amazing at 3D. The whole world cost 60 cents to generate.

Cost follows the same logic. Schroeder says DeepSeek V4 Flash is 137 times cheaper per task than Claude Fable. He is clear that it won't work like Claude in general. On a small task, like tracking a fleet of trucks, it is good enough. His team's own tests show much lower token spend on small tasks, but he says none of those numbers are public yet.

<figure class="fd-fig kf" aria-labelledby="ls5-cap" data-desc="Two big numbers from the talk. In blue, 137 times: DeepSeek V4 Flash is that much cheaper than Claude Fable per task, by the speaker's figure. 60 cents: the cost of a whole 3D world built by a Tencent model that is weak at almost everything else. Under the numbers: both are the speaker's figures, and his own token tests aren't public yet.">
<p class="kf-kick">Narrow jobs, cheaper models</p>
<p class="kf-title">For one small task, <em>the cheap model is enough</em></p>
<div class="kf-stats">
<p class="is-key"><b data-count="137">137×</b><span>cheaper per task: DeepSeek V4 Flash against Claude Fable</span></p>
<p><b>60 cents</b><span>for a whole 3D world, from a model weak at almost everything else</span></p>
</div>
<p class="kf-note">Both are the speaker's figures. His team's token tests aren't public yet.</p>
<figcaption id="ls5-cap">From the talk. Model names come from YouTube's automatic captions.</figcaption>
</figure>

## Thirty years of the same factory

Here the history comes back, and Schroeder corrects his own story. The electric motor did not change factories, at least not at first. Owners put a motor where the steam engine stood and kept every shaft and belt. That went on, he says, for about 30 years after the induction motor.

The numbers back him up. Nikola Tesla patented his induction motor in 1888. In 1899, the economist Paul David found, motors supplied less than 5% of the power that turned machines in American factories. The rest still came through shafts and belts.

Schroeder's version of today: upgrading the model in the middle of all your skills. It works, it's a little more efficient, and nothing else changes.

What changed factories, he says, was standards. Before them, there was no agreement on direct or alternating current, on frequency, on voltage. A factory that wanted an electric motor had to build one to fit its own power. In 1918, London alone had ten different frequencies. Once North America settled on 60 hertz, and Europe on 50, a motor became a standard product. Schroeder shows a bench mill from 1910 and one from 2021. In his words, they are interchangeable on the power side.

Economists tell a fuller story, and I told it in [the note on Levi's](/notes/levi-strauss-rebuilt-the-process-before-the-agents.html). The big gains came when factories were rebuilt around a motor at every machine: lighter buildings on one floor, and machines laid out freely. Both readings fit together. The standard made a motor at every machine affordable. The new floor plan is what made it pay.

<figure class="fd-fig kf" aria-labelledby="ls6-cap" data-desc="How electricity reached the factory floor, as a timeline of five steps. Before 1900: one steam engine, line shafts, a belt to every machine. 1888: Tesla patents the induction motor. 1899: motors drive under 5 percent of American factory machinery, often in the old engine's place. 1918: London alone has ten different frequencies, so there is no common plug. In blue, then: standard power, 60 hertz in North America and 50 in Europe, and a motor at every machine.">
<p class="kf-kick">Electricity on the factory floor</p>
<p class="kf-title">The motor came first, <em>the plug made it spread</em></p>
<ol class="kf-steps is-time">
<li><small>Before 1900</small><b>Line shafts</b><span>One steam engine, a belt to every machine.</span></li>
<li><small>1888</small><b>The motor</b><span>Tesla patents the induction motor.</span></li>
<li><small>1899</small><b>Same factory</b><span>Motors drive under 5% of the machinery, often in the engine's place.</span></li>
<li><small>1918</small><b>No common plug</b><span>London alone has ten different frequencies.</span></li>
<li class="is-key"><small>Then</small><b>The plug</b><span>60 hertz in North America, 50 in Europe. A motor at every machine.</span></li>
</ol>
<figcaption id="ls6-cap">The order is from the talk. The dates and figures are from Paul David's 1990 paper and Wikipedia, not from the talk.</figcaption>
</figure>

## What an agent plug would hold

There is no standard for building an agent today. "We are completely inventing this," Schroeder says. He lists what agents need before they can spread like motors did.

The tension in the list is on purpose. An agent should not depend on one vendor, yet each install should run the exact same model. Not a similar one: the same model, from the same provider, at the same quantization. Quantization is a compressed version of a model's weights, which runs cheaper but can answer differently. If any of them changes, the evals you ran may no longer hold.

Composability exists in pieces: some protocols already let agents talk to each other, and he says we need more.

His company wants to publish an open-source spec for building domain-specific agents. The goal is a runtime you install agents into, with competing runtimes, as there are for Node or Python.

<figure class="fd-fig kf" aria-labelledby="ls7-cap" data-desc="What agents need before they can spread, in five rows. Domain-specific: built for one business process. Editable harness: the whole harness comes with it and runs the same on any machine. Portable: you install an agent like a package, with npm or pip. Vendor agnostic, but pinned: no single vendor, yet every install runs the same model, provider and quantization. Composable: a standard way for agents to talk to each other.">
<p class="kf-kick">What agents need, by Schroeder's list</p>
<p class="kf-title">Five rules for <em>an agent you can install</em></p>
<div class="kf-swap is-short">
<p class="kf-swap-h"><span>Need</span><span>What it means</span></p>
<p><span>Specific</span><em>Built for one business process</em></p>
<p><span>Harness</span><em>It ships whole and editable<small>Same behaviour on your machine as on mine</small></em></p>
<p><span>Portable</span><em>Installed like a package<small>With npm or pip</small></em></p>
<p><span>Pinned</span><em>No single vendor, one exact model<small>Same model, provider and quantization</small></em></p>
<p><span>Composable</span><em>A standard way to talk to other agents<small>Some exist. He wants more</small></em></p>
</div>
<figcaption id="ls7-cap">His list from the talk. The one-word labels are mine.</figcaption>
</figure>

## His postcard from the future

Schroeder ends with forecasts of his own, so here is his postcard. He predicts fewer tools that let you pick your model. "Who cares?" he asks. The heating company certainly doesn't. Choosing a model is a burden to them; they only want the process done right.

In the questions, someone asks about governance. Models change all the time, so how does a company keep control of a fleet of agents on different models? His answer is a platform where the IT department sees every small agent. Each one has its own evals: private tests on its own process, not public scores. Then comes the part I find most useful. If an agent does its process right, don't upgrade it. Leave it alone until its model is retired.

<figure class="fd-fig kf" aria-labelledby="ls8-cap" data-desc="The factory path laid over agents, as a timeline of four steps. Today: one big model behind every task, through skills and MCP, like the line shaft. Each new model: upgrade the model in the middle and keep the rest, like the motor in the steam engine's place. Next: small agents with one job each, like a motor at every machine. In blue, then: a standard to install and run them, like the plug.">
<p class="kf-kick">The factory path, laid over agents</p>
<p class="kf-title">If history repeats, <em>the standard comes last</em></p>
<ol class="kf-steps is-time">
<li><small>Today</small><b>One big model</b><span>Every task tied to it through skills and MCP. The line shaft.</span></li>
<li><small>Each new model</small><b>Swap the engine</b><span>Upgrade the model in the middle, keep the rest.</span></li>
<li><small>Next</small><b>Small agents</b><span>One job each. A motor at every machine.</span></li>
<li class="is-key"><small>Then</small><b>The plug</b><span>A standard to install and run them anywhere.</span></li>
</ol>
<figcaption id="ls8-cap">His forecast, drawn as the factory story he tells. The order is a projection, not a measurement.</figcaption>
</figure>

A few things to keep in mind before you treat the postcard as a map.

- **Who gains.** Schroeder sells the standard he argues for. His company plans the spec and the runtime. The argument may still be right.
- **His numbers.** The 137 times and the token savings come from his own tests and his own choice of task. Nobody outside has checked them yet.
- **The history.** A standard alone did not fix the factories. They also had to be rebuilt around the work. A plug for agents won't help a team that keeps its old process.
- **The cost of small.** Ten small agents on ten models means ten things to watch. His answer, private evals and no upgrades until a model is retired, is sound. It is also work that someone has to do.

The postcards from 1899 got some things right and many wrong, and nobody could tell which at the time. Small agents with one job each feel right to me, for the trust and the evals more than for the token bill. What their standard will look like is still open.

## Try it

The talk runs 25 minutes. The line-shaft comparison starts at 2:18, the Gmail example at 10:24, jagged models at 15:42, and the standards at 18:53.

- Agentic AI Foundation, [Why Domain-specific Agents Are the Future](https://www.youtube.com/watch?v=wIPr9GmLRaQ), Justin Schroeder of Standard Agents.
- Paul A. David, "The Dynamo and the Computer", American Economic Review, 1990: the classic paper on why electric motors took decades to pay off.
- [Levi's rebuilt its development process before it added agents](/notes/levi-strauss-rebuilt-the-process-before-the-agents.html), the new factory floor for agents.
- [An agent can carry your request, not your authority](/notes/agents-carry-requests-not-authority.html), on limits an agent cannot cross.
- [Fork your agent's harness, keep the winner](/notes/fork-your-agents-harness.html), on testing a harness against your own task.

Then pick one process in your work with a clear start and end. Write down what an agent for it would need, and what it should never touch. If the second list comes out longer than the first, tell me which process it was.
