AMI Overview

Artificial Machine Intelligence controllers let you hand off the busywork. Pick a directive, give the controller some drones, and focus on something else.

What an AMI controller is

Physically, an AMI controller is a floating PC - a stack of networking gear and a generous amount of RAM bolted to a small cruise frame. They don't do work themselves; they coordinate the devices you assign to them. A controller holds a fleet, runs a directive, and reports back when something interesting happens.

Each controller type ships with its own catalogue of advanced directives tuned to a particular kind of work - surveying, mining, transport, fleet movement, and so on. You pick the directive that fits the job, hand the controller a fleet, and it figures out the sequencing.

Common commands

Every AMI controller responds to the same baseline command set, regardless of type.

  • adopt - bring a device into this controller's fleet.
  • release - hand a device back to direct control.
  • launch - deploy the fleet and start executing the current directive.
  • withdraw - recall the fleet and pause execution.
  • assemble - bring the fleet home to the controller's current location without ending the directive.
POST /v1/devices/{code} 200 OK
# adopt drones into the controller's fleet
$ curl -X POST https://api.replicant.space/v1/devices/SC74F210 \
    -H "Authorization: Bearer $API_KEY" \
    -d '{"command": "adopt", "devices": ["A1B2C3D4","E5F60718"]}'

Directive commands

Directives are what make a controller useful. You set one, the controller executes it across the fleet, and you can pause or swap it as needed.

  • set_directive - configure a new directive and its parameters.
  • clear_directive - drop the current directive entirely.
  • resume_directive - pick up a stopped directive from where it left off.
POST /v1/devices/{code} 200 OK
# point a controller at a directive and hand it some drones
$ curl -X POST https://api.replicant.space/v1/devices/SC74F210 \
    -H "Authorization: Bearer $API_KEY" \
    -d '{
      "command": "set_directive",
      "directive": "survey_system",
      "configuration": {
        "planets": "all",
        "moons": "all",
        "recall": true
      }
    }'

Controller types