Use a Manifest#
An exported policy package contains a manifest.json file.
exports/act_policy/
├── manifest.json
├── model.xml
└── stats.safetensors
In most cases, you load the package through InferenceModel.
model = InferenceModel("./exports/act_policy")
If you need to inspect metadata directly, load the manifest itself.
from physicalai.inference.manifest import Manifest
manifest = Manifest.load("./exports/act_policy/manifest.json")
print(manifest.model.runner)
print(manifest.model.artifacts)
Declare inference callbacks#
Callbacks use the same ComponentSpec syntax and declaration order as
preprocessors and postprocessors. Built-in callbacks can use their registered
short name with flat constructor arguments, or a fully qualified class path
with init_args:
model:
callbacks:
- type: rldx1_vtc
video_length: 4
video_stride: 2
- class_path: physicalai.inference.callbacks.LatencyMonitor
init_args:
window_size: 100
The RLDX-1 callback above creates temporal image windows before preprocessing
without Python-side callback wiring. Manifest callbacks receive on_load,
on_predict_start, on_predict_end, and on_reset lifecycle events.
When constructing InferenceModel, an explicitly supplied callbacks list
takes precedence over the manifest, including an explicitly supplied empty
list. Invalid, unknown, or incompatible callback specifications fail while the
model is loading.
Use manifests to describe exported artifacts. Use workflow config to author training, inference, or runtime workflows before execution.