Runtimes

Every agent definition in the Agent Store has a runtime field that records the execution environment used to run the agent binary. This metadata helps agentd and operators understand how to spawn and manage agents.

Runtime field

The runtime field is stored alongside the agent definition when it is installed:

ash agent install manifest.yaml   # defaults to "rust"

The field defaults to rust for all manifests installed via ash agent install.

Current runtime values

ValueDescription
rustNative compiled Rust binary (default)

Additional runtimes (Python, WASM, container) are planned for future phases.

Rust runtime (default)

Rust agents are compiled to a native binary and spawned directly by agentd as a child process. The binary:

  • Is located at spec.command in the manifest, resolved relative to install_dir.
  • Receives SCARAB_AGENT_ID, SCARAB_SOCKET, SCARAB_TASK, and SCARAB_MODEL via environment variables.
  • Communicates with agentd over a Unix domain socket using the libagent SDK.

Build and install workflow

# 1. Build the agent binary
cargo build --release -p my-agent

# 2. Create the install directory
mkdir -p /var/lib/scarab-runtime/agents/my-agent

# 3. Copy the binary
cp target/release/my-agent /var/lib/scarab-runtime/agents/my-agent/

# 4. Install the manifest
ash agent install etc/agents/my-agent.yaml \
  --dir /var/lib/scarab-runtime/agents/my-agent

The manifest's command field should point to the binary:

spec:
  command: my-agent   # relative to install_dir, or absolute path

command and args in manifests

The command and args manifest fields control what agentd spawns:

spec:
  command: target/debug/example-agent
  args:
    - "--config"
    - "/etc/my-agent/config.toml"

If command is a relative path, it is resolved relative to install_dir. If omitted, agentd derives a default binary path from install_dir/<name>.

Listing installed agents with runtimes

ash agent list

The RUNTIME column in the output shows the recorded runtime for each installed agent. This is informational metadata; agentd uses spec.command from the stored manifest to determine what to actually execute.

Future runtimes (planned)

RuntimeDescription
pythonPython agents using a libagent Python SDK
wasmWebAssembly agents running in a WASI sandbox
containerOCI container images as agent processes

When additional runtimes are available, ash agent install will detect or accept a --runtime flag to record the appropriate value.