Skip to main content

Operator Agent

The RotaStellar Operator Agent is a lightweight runtime that executes compute workloads on satellites. It uses a pull-based protocol designed for intermittent connectivity — agents operate autonomously and sync with Mission Control during contact windows.
The Operator Agent is open source. See the GitHub repository for the Rust SDK.

Architecture

The agent runs on the satellite (or in simulation on a development machine). It communicates exclusively with the Console API — there is no direct connection to the CAE planner.

How It Works

  1. Poll — Agent checks for pending workloads during contact windows
  2. Execute — Agent runs workload steps locally on the satellite
  3. Report — Agent streams execution events back to Console
  4. Telemetry — Agent sends periodic health/status heartbeats
The protocol is pull-based by design. Satellites have intermittent ground station contact windows — typically a few minutes per orbit. The agent polls when connectivity is available, executes autonomously, and reports results on the next pass.

Deployment Modes

ModeDescription
simulatedConsole generates events from CAE plan data. No agent involved. Good for testing and demos.
liveAgent polls, executes, and reports events. Real or hardware-in-the-loop execution.

Event Types

The agent uses the same event format as the CAE simulator. Events track the full lifecycle of a workload execution:
EventDescription
job.acceptedWorkload received and queued
placement.decidedStep placement decision (on-board vs ground)
plan.createdExecution plan finalized
step.startedCompute step begins
step.progressProgress update (25%, 50%, 75%)
step.completedCompute step finished
transfer.startedData transfer initiated
transfer.completedData transfer finished
checkpoint.savedState checkpoint persisted
security.encryptedData encrypted
job.completedAll steps finished successfully
job.failedExecution failed
constellation.step_assignedDAG step assigned to satellite
constellation.step_completedDAG step finished
constellation.failoverStep failed, reassigning
isl_transfer.startedISL data transfer initiated
isl_transfer.completedISL transfer done
checkpoint.predictedHazard prediction generated