Seat Worker Supervisor Architecture
This document specifies the operational design, security model, and lifecycle management for persistent ZQK agent seat workers (pkg/seatworker).
1. Overview
In multi-agent collaborative engineering, agents require defined operating seats with distinct responsibilities and communication handles. While foreground interactive sessions are suitable for targeted developer tasks, distributed swarm orchestration requires non-interactive background agents that persist across workstation lifecycles.
Rather than relying on brittle shell backgrounding (nohup, screen, tmux) or non-standard process loops, ZQK delegates process supervision directly to the operating system's native init framework:
- macOS:
launchdvia user-level launch agents. - Linux:
systemdvia user units (systemd --user).
2. Supervisor Lifecycle Diagram
sequenceDiagram
autonumber
actor Admin as Swarm Operator / CLI
participant Install as seatworker.Install
participant OS as OS Supervisor (launchd / systemd)
participant Worker as zqk agent seat-worker
participant Kernel as Knowledge Kernel (.zqk)
Admin->>Install: zqk system seat-worker install --seats worker-1
Install->>OS: Write unit config & bootstrap daemon
OS->>Worker: Launch persistent process
loop Continuous Work Loop (default: 30s)
Worker->>Kernel: Poll agent_task queue
Kernel-->>Worker: Return eligible BLI
Worker->>Kernel: Claim task & emit status
Worker->>Kernel: Execute implementation & run verification
Worker->>Kernel: Transition status to complete
end
Admin->>Install: zqk system seat-worker uninstall
Install->>OS: Unload unit & remove file
OS->>Worker: SIGTERM / SIGKILL
3. Configuration & CLI Invocations
Installing a Seat Worker
# Install supervisor daemon for seat-1 and seat-2
zqk system seat-worker install --seats seat-1,seat-2 --poll-seconds 30
# Install with explicit persona override
zqk system seat-worker install --seats tpm-seat --persona-ref "persona:tpm"
Inspecting Status
# macOS
launchctl list | grep zqk
# Linux
systemctl --user status "zqk-mesh-seat-worker@*"
Uninstalling
zqk system seat-worker uninstall --seats seat-1,seat-2
4. Failure Recovery & Health Probes
- Automatic Restart on Crash: Units configure
KeepAlive(launchd) andRestart=on-failure(systemd), ensuring crash loops trigger exponential restart throttling. - Heartbeat Liveness: Seat workers continuously emit heartbeat timestamps to
.zqk/metrics/seats/<seat>.json. If a worker process hangs or stalls on an external deadlock, the scheduler'sHourglassmonitor marks the seat orphaned and reassigns in-flight tasks.