WEBVTT

00:00:00.200 --> 00:00:02.463
An OmniNode is one node design.

00:00:02.499 --> 00:00:05.273
Its shape comes from a spec, a plain file.

00:00:05.587 --> 00:00:10.102
This spec gives the goal: find approved feed items whose source has changed,

00:00:10.138 --> 00:00:11.542
with no model call.

00:00:11.729 --> 00:00:15.292
It has four steps, and all four are deterministic code.

00:00:15.479 --> 00:00:17.811
Its daily model budget is zero.

00:00:18.340 --> 00:00:21.671
Before anything runs, a validator reads each spec.

00:00:21.986 --> 00:00:25.282
It refuses an unknown step, a budget over the limit,

00:00:25.294 --> 00:00:27.778
or a spec with no independent check.

00:00:28.330 --> 00:00:30.674
Now one real run on the live service.

00:00:30.861 --> 00:00:34.754
It took 37 approved items, read each one again from GitHub,

00:00:34.755 --> 00:00:35.829
and compared them.

00:00:36.074 --> 00:00:38.894
Deterministic code settled all 37.

00:00:39.209 --> 00:00:42.783
No model was called, and the run took 24 seconds.

00:00:43.280 --> 00:00:45.659
Then a different worker, with a different key,

00:00:45.765 --> 00:00:47.493
reads the same items again.

00:00:47.634 --> 00:00:49.490
It approved all 37.

00:00:49.805 --> 00:00:54.483
All 37 were unchanged, so this run found no change to report.

00:00:55.000 --> 00:00:58.099
The same runner serves other shapes from their own specs.

00:00:58.286 --> 00:01:02.151
These two add a model step, for the parts that code can't settle.

00:01:02.465 --> 00:01:05.587
For a new job, you change the spec, not the runner.

00:01:05.902 --> 00:01:07.828
Connect your agents today.
