Argus — an outer loop around the agent
A layer of tasks, budget and initiative on top of an agent: it decides what to work on in the morning and reports back on its own.
- A morning report on machine and task state arrives unprompted
- Tasks survive process death: hard kill → restart → carried to completion
- A strict permission contour: read anything, write only what's listed
The problem
The agent's inner loop already ships in the SDK; rewriting it is wasted effort. What was missing was the outer loop: a task queue, a budget, priorities, and a reason to start without a human pressing go every time.
How it works
SQLite and systemd timers instead of yet another framework: state collection every ten minutes, an executor tick every five, a duty report at nine in the morning. A separate failure unit with a thirty-minute cooldown keeps one error from turning into a restart storm. The decision log records which heavyweight orchestrators were considered and rejected, and why.
The hard part
The most valuable decision wasn't technical. Stage one was declared a deliberately disposable prototype with an explicit acceptance test: three consecutive mornings of a report worth reading, and the owner's verdict of 'useful'. That is the guard against this genre's main trap — polishing something that turns out not to be needed.
Evidence
- Stage two accepted on a recovery test: the process was force-killed and the task still finished
- Stage one is honestly parked awaiting its acceptance verdict — a valid state, not unfinished work
- A control command and single-line task entry from the terminal