Urgent.News

What's breaking now, across thousands of outlets.

AI

Giving AI Agents a Deterministic Clock (Zero LLM in the Loop)

When building autonomous AI systems, developers eventually hit a fundamental architectural wall. Your coding agent asks you a question, and you step away from the keyboard. Today, nothing happens. The session hangs, the question rots, and the work stalls. At J. Servo LLC , we architect enterprise AI systems to operate predictably. We built Sundial to act as the missing half of the…

When creating autonomous AI systems, developers inevitably encounter a critical design limitation. Your coding agent poses a question, and you step away from the keyboard. The session stalls, the query stagnates, and progress grinds to a halt. At J. Servo LLC, we engineer enterprise AI systems to function predictably. We developed Sundial to serve as the missing piece in the human-in-the-loop framework. Sundial operates on a single guiding principle: measuring absence rather than time.

When the human becomes a blocker, Sundial's clock continues ticking. It gently prompts you on your desktop, escalates politely through your absence, and welcomes you back with seamless continuity. If no response is forthcoming, the agent proceeds based on its predetermined judgment or ceases operation altogether. This deterministic operation is achieved without relying on any model calls and runs entirely locally.

The flawed conventional approach involves using Large Language Models (LLMs) to determine user abandonment. This violates lean architecture principles, as time tracking should reside at the system level. Sundial enforces a strict architectural boundary across three primary components: Sensors, Watcher Daemon, and Ledgers.

Sensors perform zero-permission OS reads using HIDIdleTime, lsappinfo, pmset on macOS, and xprintidle or loginctl on Linux. If any sensor returns no data, Sundial defaults to wall time instead of blocking the system. The Watcher Daemon, a pure Python loop running via launchd, handles presence classification and escalation without utilizing any LLMs.

Ledgers store plain JSON files in a git-ignored data/ directory. State transitions are written atomically using NamedTemporaryFile, fsync(), and os.replace(), and serialized through inter-process locking via fcntl.flock. The core architecture comprises four main components: Presence-Scaled Absence Ladder, Bounded Breakpoint Delivery, Self-Calibrated Task Estimation, and the Autonomy Gate.

The Presence-Scaled Absence Ladder defines three strict presence states: HERE (chat visible, clock paused), ELSEWHERE (in another application, clock runs at half speed), and AWAY (workstation idle, clock runs at full speed). Escalation only occurs while the human is genuinely absent. The Bounded Breakpoint Delivery ensures that ripe nudges are not delivered mid-keystroke, holding them for up to three minutes until a natural typing gap or application switch occurs.

Self-Calibrated Task Estimation tracks the empirical ratio distribution of actual versus estimated task durations, applying a small-n honesty floor to ensure reliable estimates. Finally, the Autonomy Gate provides a deterministic verdict on whether to proceed with an action based on user input, with distinct responses for silence while present versus silence while absent.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in AI

More from Saturday 29 August →