agent-machine probe is the local discovery and evidence command for Agent Machine. It must produce a machine-readable report that can be converted into AgentMachine, CacheTier, RuntimeCapability, PlacementFact, and receipt objects.
The probe is not a benchmark by default. It is a trust and capability inventory. Benchmark subcommands can be added later.
- Identify the host profile accurately.
- Discover local runtime envelopes.
- Discover storage backends and cache/evidence mount safety.
- Discover inference provider readiness without downloading models or starting unsafe services.
- Emit secret-free evidence for AgentPlane and Policy Fabric.
- Fail closed when sensitive cache/evidence assumptions are unsafe.
The probe should collect:
- hostname;
- OS and distribution;
- kernel release;
- architecture;
- immutable-host signals such as rpm-ostree availability;
- cgroup mode;
- SELinux mode;
- systemd availability;
- container runtime availability;
- user namespace availability;
- basic memory and disk facts.
Profile classification should prefer explicit evidence over assumptions.
Example profiles:
m2-asahi-linux;sourceos-workstation;fedora-silverblue;linux-gpu-node;linux-edge-node;kubernetes-node;macos-apple-silicon-compat.
The probe should detect accelerators conservatively:
| Accelerator | Detection posture |
|---|---|
| CPU | Always present, but record architecture and feature hints. |
| Vulkan | Probe runtime and device availability; do not assume working inference support. |
| CUDA | Detect driver/toolkit/runtime presence where applicable. |
| ROCm/HIP | Detect runtime presence where applicable. |
| Metal | Only applicable to macOS compatibility profile, not M2 Asahi Linux. |
| MLX | Distinguish macOS/Apple Silicon acceleration from Linux CPU-only compatibility. |
For M2 Asahi Linux, Metal must report unavailable and Vulkan must be probe-gated.
The probe should inspect:
- expected Agent Machine base directories;
- mountpoints;
- filesystem type;
- total/free bytes;
- owner/group/mode;
- world-writable risk;
- symlink traversal risk;
- LVM physical volumes, volume groups, thinpools, and logical volumes where readable;
- LUKS/dm-crypt/fscrypt signals where available;
- TopoLVM/Kubernetes indicators when running on a Kubernetes node;
- tmpfs availability for hot cache;
- object-store configuration only by reference, never by secret value.
The probe should classify storage backend as one of:
filesystem;local-lvm;topolvm-k8s;tmpfs;object-store;remote-volume.
Sensitive volumes fail closed when:
- the mountpoint is missing;
- the mountpoint is world-writable;
- the mountpoint is owned by an unexpected user/group;
- a sensitive cache path traverses an untrusted symlink;
- expected encryption is absent;
- expected quota is absent;
- the container runtime cannot bind mount the path safely;
- SELinux labeling is absent or incompatible where SELinux is enforcing.
The probe should detect local envelopes:
- systemd service support;
- systemd user service support;
- Podman;
- Quadlet;
- Docker compatibility;
- bubblewrap;
- toolbox;
- Kubernetes node context;
- k3s/kind/k3d/minikube hints where applicable.
Podman/Quadlet should be preferred over Docker for SourceOS-managed long-running local AgentPods.
The probe should detect provider availability without assuming runtime readiness:
llama.cppbinary or server path;- OpenAI-compatible local endpoints configured for Agent Machine;
vLLMavailability on Linux GPU nodes;SGLangavailability on Linux GPU nodes;Ollama-compatibleendpoint availability as compatibility only;oMLXonly under macOS Apple Silicon compatibility profiles;- embeddings/reranker providers;
- OCR/VLM providers.
Provider detection must record:
- provider type;
- version where available;
- endpoint or binary reference;
- supported API surfaces;
- acceleration path;
- model directory reference;
- policy requirements;
- whether the provider is enabled, disabled, or probe-only.
The probe output should be JSON-first. It should be able to emit:
AgentMachinecandidate object;CacheTiercandidate objects;- runtime capability facts;
- placement facts;
- warnings;
- hard failures;
- receipt metadata.
No probe output may include secret values, raw prompts, raw KV-cache contents, private memory content, or unredacted credentials.
agent-machine probe
agent-machine probe --format json
agent-machine probe --profile m2-asahi-linux
agent-machine probe --storage-only
agent-machine probe --runtime-only
agent-machine probe --providers-only
agent-machine probe --fail-closed
agent-machine probe --emit examples/local-probe.json
These command shapes are design targets, not implemented CLI behavior yet.
The first implementation should produce:
- host facts;
- SELinux mode;
- cgroup mode;
- container runtime facts;
- LVM and mountpoint facts;
- cache/evidence path safety checks;
- CPU/Vulkan/CUDA/ROCm/Metal availability flags;
- provider discovery for
llama.cppand local OpenAI-compatible endpoints; - one
AgentMachineJSON candidate; - zero or more
CacheTierJSON candidates.
- benchmark mode;
- model digest inventory;
- tokenizer digest inventory;
- prompt-prefix cache inventory by hash only;
- TopoLVM PVC and StorageClass mapping;
- TPM/FIDO2 attestation hooks;
- signed probe receipts;
- AgentPlane direct receipt submission;
- Policy Fabric direct admission checks.