Arquitectura
NemoClaw tiene dos componentes principales: un plugin TypeScript que se integra con el CLI de OpenClaw, y un blueprint Python que orquesta los recursos de OpenShell.
Plugin de NemoClaw
El plugin es un paquete TypeScript delgado que registra comandos bajo openclaw nemoclaw.
Se ejecuta en el mismo proceso que el gateway de OpenClaw y maneja las interacciones del CLI orientadas al usuario.
nemoclaw/
├── src/
│ ├── index.ts Plugin entry — registers all commands
│ ├── cli.ts Commander.js subcommand wiring
│ ├── commands/
│ │ ├── launch.ts Fresh install into OpenShell
│ │ ├── connect.ts Interactive shell into sandbox
│ │ ├── status.ts Blueprint run state + sandbox health
│ │ ├── logs.ts Stream blueprint and sandbox logs
│ │ └── slash.ts /nemoclaw chat command handler
│ └── blueprint/
│ ├── resolve.ts Version resolution, cache management
│ ├── fetch.ts Download blueprint from OCI registry
│ ├── verify.ts Digest verification, compatibility checks
│ ├── exec.ts Subprocess execution of blueprint runner
│ └── state.ts Persistent state (run IDs)
├── openclaw.plugin.json Plugin manifest
└── package.json Commands declared under openclaw.extensions
Blueprint de NemoClaw
El blueprint es un artefacto Python versionado con su propio flujo de lanzamiento. El plugin resuelve, verifica y ejecuta el blueprint como un subproceso. El blueprint controla todas las interacciones con el CLI de OpenShell.
nemoclaw-blueprint/
├── blueprint.yaml Manifest — version, profiles, compatibility
├── orchestrator/
│ └── runner.py CLI runner — plan / apply / status
├── policies/
│ └── openclaw-sandbox.yaml Strict baseline network + filesystem policy
Ciclo de Vida del Blueprint
flowchart LR
A[resolve] --> B[verify digest]
B --> C[plan]
C --> D[apply]
D --> E[status]
- Resolución. El plugin localiza el artefacto del blueprint y verifica la versión contra las restricciones
min_openshell_versionymin_openclaw_versionenblueprint.yaml. - Verificación. El plugin comprueba el digest del artefacto contra el valor esperado.
- Planificación. El ejecutor determina qué recursos de OpenShell crear o actualizar, como el gateway, los proveedores, el sandbox, la ruta de inferencia y la política.
- Aplicación. El ejecutor ejecuta el plan llamando a los comandos del CLI de
openshell. - Estado. El ejecutor reporta el estado actual.
Entorno del Sandbox
El sandbox ejecuta la imagen de contenedor
ghcr.io/nvidia/openshell-community/sandboxes/openclaw.
Dentro del sandbox:
- OpenClaw se ejecuta con el plugin de NemoClaw preinstalado.
- Las llamadas de inferencia se enrutan a través de OpenShell al proveedor configurado.
- El tráfico de red saliente está restringido por la política base en
openclaw-sandbox.yaml. - El acceso al sistema de archivos está confinado a
/sandboxy/tmppara acceso de lectura-escritura, con rutas del sistema en solo lectura.
Enrutamiento de Inferencia
Las solicitudes de inferencia del agente nunca salen del sandbox directamente. OpenShell las intercepta y las enruta al proveedor configurado:
Agent (sandbox) ──▶ OpenShell gateway ──▶ NVIDIA cloud (build.nvidia.com)
Consulte los Perfiles de Inferencia para los detalles de configuración del proveedor.