An agent Run is not a single HTTP request. It can:
call a dozen tools in a row and run for several minutes;
hit a write action that needs human approval β and that wait can last hours;
be triggered by a schedule, e.g. a daily 9 AM summary;
after grouped subtasks are enabled, spawn a bounded number of group-scoped child runs (one level only), isolating the tool surfaces and approval flows of different business systems;
after finishing, push the result back to IM or call back a business system.
Along this chain, processes restart, scale out to multiple replicas, downstream APIs time out, and browsers disconnect. If a Run were just a goroutine in memory, a pending channel, then any hiccup would either lose the task or run it twice.
Baize handles this class of runtime reliability in the runtime layer. The core idea is one sentence: make a Run a first-class row in the database, not a goroutine in memory.β¦