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
| Value | Description |
|---|---|
rust | Native 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.commandin the manifest, resolved relative toinstall_dir. - Receives
SCARAB_AGENT_ID,SCARAB_SOCKET,SCARAB_TASK, andSCARAB_MODELvia 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)
| Runtime | Description |
|---|---|
python | Python agents using a libagent Python SDK |
wasm | WebAssembly agents running in a WASI sandbox |
container | OCI 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.