Nodus Labs
Agent-to-agent economies for infrastructure
Demand for compute is going non-human. When the buyer is a process holding a delegated budget, and the seller is a process deciding when to take capacity back, the questions worth asking change. We model them.
Model Model output, not a measurement. Reserve prices and reclaim hazards are assumed; see provenance.
Why agents change the question
Nodus is the infrastructure execution layer for AI workloads. Labs is where we test the assumptions underneath it, including the ones that turn out to be wrong.
A human operator watches a job, notices when it is going badly, and intervenes. An agent does not. It submits work, holds a budget it was given, and spends against that budget without anyone checking. On the other side, capacity is reclaimed by policy rather than by a person. Two pieces of software now decide, between them, what gets built and what gets abandoned.
That makes two questions concrete that were previously academic. What unit should the two of them trade in? And how should the one holding the budget actually behave? The first is a question about the contract between agents. The second is about the conduct of a single one. We have a finding on each.
A note on what this is not. We do not operate a market, and nothing here describes a product. Customers submit workload requirements and outcomes; finishing them is our job. These pages study how infrastructure gets allocated in general. We are the author, not the exchange.
Findings
- 01 The contract between agents The unit-mismatch spread Capacity is sold by the occupied hour. What a buyer needs is delivered work. The gap decides who carries reclaim risk, and it is worth $4.62 of the buyer's money at our baseline hazard.
- 02 The conduct of an agent Checkpointing against a ceiling An agent with a hard budget should not schedule like one minimising expected cost. The standard rule is right at exactly one budget, and wrong in a knowable direction everywhere else. Worth up to 51 pts of completion probability.
Finding 01 · the contract between agents
The unit-mismatch spread
Every reclaim moves cost on the buyer's side of the trade and nothing on the seller's. So we built the counterfactual.
Occupancy
How capacity is sold today
- Seller quotes
- per occupied hour
- Seller's ask
- its reserve price
- Buyer pays for
- every hour occupied
- Reclaim costs the seller
- nothing
- Who stops the bleeding
- the buyer, when its budget runs out
Completion
The instrument under study
- Seller quotes
- per hour of delivered work
- Seller's ask
- reserve × expected hours ÷ P(deliver)
- Buyer pays for
- delivered work only
- Reclaim costs the seller
- the hours it wastes, and the contract
- Who stops the bleeding
- the seller, when the contract stops covering its cost
-
$3.1078
per delivered hour
against $2.9054 per occupied hour
The per-unit price rises. This is the part the model predicted and got right.
-
$4.62
paid for nothing
buyer spend on undelivered work, occupancy pricing
Under completion pricing it is zero by construction. That is what paid-on-delivery means.
-
−$12.62
seller net
change in supply-side surplus under completion pricing
Sellers lose at every hazard level tested. This is why the wrong unit persists.
| Measure | Occupancy | Completion |
|---|---|---|
| Clearing price, accelerator capacity | $2.9054 / occupied hour | $3.1078 / delivered hour |
| Clearing price, non-accelerator capacity | $0.2981 / occupied hour | $0.3702 / delivered hour |
| Delivery rate | 84.6% | 85.4% |
| Spend per delivered job | $13.23 | $10.80 |
| Buyer spend on work never delivered | $4.62 | $0.00 |
| Occupied hours producing nothing delivered | 18.9% | 17.9% |
| Seller net, after opportunity cost | $47.92 | $35.29 |
What the algebra settled
The simulation is noisy in places, so we proved the parts that do not depend on a fixture. Two results came out clean, and they changed our reading of our own numbers.
The seller's loss is exact. Holding the allocation and the stopping rule
fixed, switching the unit transfers precisely
B(1 − q) / 2 from seller to buyer, and
total surplus does not move at all. Redenominating a contract, by itself,
creates nothing. It decides who holds the risk.
The delivery improvement is universal, and it comes from somewhere else.
Under occupancy pricing the buyer decides when to give up while facing a
marginal cost of p, the marked-up price
rather than the resource's true cost r.
So it quits while continuing is still worth doing. Move the option to
the seller and the continuation ceiling is always weakly larger, by an
argument that reduces to (B − rH)² ≥ 0.
The efficiency does not come from paying for outcomes. It comes from who is allowed to stop.
That has a sharp practical reading for anyone designing an agent-to-agent contract. A contract that pays on delivery but leaves the abandonment decision with the buyer captures the whole transfer and none of the gain.
And the uncomfortable part
Sellers are worse off under completion pricing at every hazard level we tested, by up to −$12.41. That answers the question that should have been asked first. If the unit is wrong, why has nobody changed it? Because the side that sets the terms is the side that gains from the current ones, and no argument for completion-denominated capacity is complete without saying who moves first.
Finding 02 · the conduct of an agent
Checkpointing against a ceiling
Give an agent a budget it may not exceed, and the textbook scheduling rule stops being the right one.
Work on capacity that can be reclaimed has to be checkpointed, and how often is the oldest question in the area. The classical answer minimises expected time to finish. That is the right target for a batch system trying to get through as much work as possible.
It is the wrong target for a delegated agent. An agent with a hard budget is indifferent between finishing far under the ceiling and finishing just under it. What it wants is the largest probability of landing underneath, and that objective is sensitive to variance where the classical one is not.
-
5.11×
gamble
Ceiling below the expected cost: checkpoint less often than classical, up to this multiple of the interval.
Overhead is time the schedule cannot afford. The only runs that land under the ceiling are lucky ones, so stop insuring against a loss you need not to happen at all.
-
0.59×
insure
Ceiling above the expected cost: checkpoint more often, down to this multiple.
There is slack. Spend a little of it converting variance into certainty, because spread is what threatens the ceiling.
| Ceiling | Best interval | Stance | Gain |
|---|---|---|---|
| 0.80× | 5.11× | gamble | +9.1 pts |
| 0.88× | 1.69× | gamble | +5.3 pts |
| 0.94× | 1.34× | gamble | +2.0 pts |
| 1.00× | 1.00× | classical | +0.0 pts |
| 1.06× | 0.89× | insure | +0.5 pts |
| 1.15× | 0.75× | insure | +2.2 pts |
| 1.30× | 0.59× | insure | +1.2 pts |
The rule is simple enough to act on. Compare the ceiling to the expected cost of finishing. Above it, checkpoint more often than the textbook says. Below it, checkpoint less. The classical interval is correct at exactly one budget, the one equal to its own mean, and the direction of the error everywhere else follows from that single comparison with no extra estimation.
The size is worth noticing. In the regime where checkpoints are expensive relative to the work, the ceiling-aware interval is worth 51 pts of completion probability at a 0.80× ceiling. That is not a rounding difference. It is most of the achievable outcome.
This one is not ours We derived it, then went looking for prior art and found it. The real-time systems literature calls this objective Level of Confidence and has been maximising it over checkpoint count since at least 2011. We are publishing it anyway, for two reasons. It is directly relevant to agent-held budgets, which is a newer setting than the one it was developed for. And almost nobody implements it, including us. A fifteen-year-old method that production systems do not use is worth pointing at.
What we intend to do about it. Our cadence policy reads interrupt rate, checkpoint size, and runtime, holding lost work to a fixed share of mean time between reclaims. The cost ceiling sits at that call site unread. Adding it is a small change to one function.
We have not made it, and not out of modesty about the result. The gain above is measured against a hazard we set rather than observed, so we would be tuning against an invented number and shipping the confidence that comes with a table. The change lands when live wholesale routes give us a measured rate. Until then the fixed share is wrong in a direction we can name, which is the better default.
Notes
Longer write-ups, including the parts that did not work.
- 001 We are all pricing the wrong thing. Capacity is sold by the hour. Workloads are paid for by the finish. We modelled a two-sided market where agents trade on both sides to find out what that gap is worth, and got a result we did not want.
- 002 Three ways we fooled ourselves. Modelling an economy you also have a commercial interest in is a machine for producing the answer you wanted. Here are the three times it nearly worked on us, and the rails we built afterwards.
What is assumed
A number is worthless without the assumptions that produced it. These are ours.
- Reserve prices. assumed: synthetic opportunity costs spanning a plausible range, not observed supplier economics.
- Reclaim rates. assumed: synthetic per-hour reclaim rates spanning a plausible range, scaled by hazard_mult.
- Clearing. uniform-price sealed-bid double auction, cleared at the midpoint of the marginal bid and ask, then assigned to the lowest-asking unit that fits.
- after a reclaim the job recovers onto the same unit rather than re-clearing the market; this understates the cost of the occupancy regime, so it biases against the model's own prediction.
- each side prices against the segment's typical counterparty, because neither can see its match before it exists.
- the market clears once per population rather than continuously; freed capacity is not re-offered.
- reclaim is memoryless, so a unit's hazard does not depend on how long the job has been running.
- Finding 02 sweeps 3 parameter regimes, with hazards and write costs set rather than measured. Its empirical content is internal: it evaluates a scheduling rule by simulating scheduling rules, which needs no supplier data to mean something.
Demand agents are real workload submissions profiled through the shipped profiler, and the population spans accelerator and non-accelerator capacity and durable and ephemeral work. A finding drawn only from long checkpointable training would overstate itself, since that is the case where preserving progress pays off most. Supply agents are anonymous by construction. Neither page is a measurement.
Where this touches the product
Both findings describe one asymmetry from two sides. Reclaim costs the buyer and not the seller, and an agent spending a delegated budget has nobody watching it find that out. Nodus sits on the buyer's side: route for expected cost to completion, reserve recovery money before reserving a machine, treat progress as something that must survive the instance that produced it.
Neither result is a product claim. We do not sell completion-denominated capacity, and Finding 01 says that instrument moves risk rather than creating value. What both tell us is where to spend effort: on who is allowed to stop, and on how little is thrown away when they do.
- Field note 003 is the routing objective these models are arguing with.
- Field note 006 is the cadence and manifest machinery Finding 02 is about.
- The docs are how you submit a workload against it.