Sleep on purpose.
Priority queue, per-model windowing and batch planning. A Flex job is held until the batch is worth executing.
Asynchronous inference for a heterogeneous edge fleet
The Horizon Broker intercepts every request bound for the local Ollama and Qwen endpoints. It routes long-horizon work, batches it for throughput, and guarantees that a dead node does not lose an agent's work.

01 / Quick start
The operator client speaks to a running broker over HTTP. It never touches broker state directly.
# install pip install horizon-broker # validate the configuration and exit horizon-broker check-config --config config/broker.example.yaml # run the broker and its ingress API horizon-broker serve --config config/broker.example.yaml # from another machine: submit a long-horizon job horizon-broker job submit --model qwen2.5:7b \ --prompt "Recursive codebase scan of the scheduler package" \ --tier flex
02 / The sub-systems
Priority queue, per-model windowing and batch planning. A Flex job is held until the batch is worth executing.
An arithmetic-intensity model decides which node should prefill and which should decode, instead of sending everything to one box.
State is checkpointed to EdgeRecord continuously. A lost node triggers re-dispatch elsewhere inside a 30-second budget.
It produces verdicts. It does not decide what happens next, and it never talks to a node directly.