A backend engineer boarded a late train with a half-finished agent run still sitting in a terminal. The laptop held repository tokens inside a local vault, and the next tool call needed a long compile that would wake every fan. Cellular data flickered between two bars and airplane mode, so a naive always-remote setup would stall without warning. An always-local setup would cook the chassis and drain the battery before the next station arrived.

That commute is the whole placement problem in miniature for teams that still ship local-first agents. Some work must never leave the disk, because secrets and customer fragments live beside the checkout. Some work cannot finish without extra cycles, because the host is already warm, battery constrained, or thermally throttled. The network is not a promise, and latency is a measured round trip that either beats local load time or does not.

Placement belongs in the control plane, not in a prompt preface or a vendor checkbox. The rest of this write-up treats four signals as executable policy, then ships a decision table, a small Python gate, and tests that lock the lanes. Readers can delete every product name and still keep a working local-versus-remote split.