Once an action passes validation, it leaves the runtime as a typed event — REST, WebSocket, MQTT, ROS, dashboard. The Agent Runtime is the developer surface where you wire VAOS into the rest of your system.
Event-driven core. Agents subscribe to scene + validated-action streams.
Start · pause · resume · stop · restart. Health probes built in.
Drop-in extensions for new event handlers, new action sinks, new external integrations.
REST, WebSocket, MQTT, ROS 2 nodes. Robot, controller, or dashboard — all uniform.
ROS 2 native publishers for scenes and validated actions. ros-vaos package shipping in v0.10.
Pattern-based dispatching. Hot-swap handlers without restarting the runtime.
from vaos import Runtime, Agent runtime = Runtime(camera=0, hardware="rk3588") async def on_scene(scene): if scene.event.type == "restricted_zone_entry": await runtime.action("notify", target="safety-team") runtime.attach(Agent(on_scene=on_scene)) runtime.start()
VAOS handles perception, cognition, validation, and memory. You handle the action surface.