Architettura
NemoClaw ha due componenti principali: un plugin TypeScript che si integra con la CLI di OpenClaw, e un blueprint Python che orchestra le risorse OpenShell.
Plugin NemoClaw
Il plugin è un pacchetto TypeScript leggero che registra comandi sotto openclaw nemoclaw.
Viene eseguito in-process con il gateway OpenClaw e gestisce le interazioni CLI rivolte all’utente.
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 NemoClaw
Il blueprint è un artefatto Python versionato con il proprio flusso di rilascio. Il plugin risolve, verifica ed esegue il blueprint come sottoprocesso. Il blueprint gestisce tutte le interazioni con la CLI di 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 di Vita del Blueprint
flowchart LR
A[resolve] --> B[verify digest]
B --> C[plan]
C --> D[apply]
D --> E[status]
- Risoluzione. Il plugin localizza l’artefatto del blueprint e verifica la versione rispetto ai vincoli
min_openshell_versionemin_openclaw_versioninblueprint.yaml. - Verifica. Il plugin controlla il digest dell’artefatto rispetto al valore atteso.
- Pianificazione. Il runner determina quali risorse OpenShell creare o aggiornare, come gateway, provider, sandbox, route di inferenza e policy.
- Applicazione. Il runner esegue il piano chiamando i comandi della CLI
openshell. - Stato. Il runner riporta lo stato corrente.
Ambiente Sandbox
La sandbox esegue l’immagine container
ghcr.io/nvidia/openshell-community/sandboxes/openclaw.
All’interno della sandbox:
- OpenClaw viene eseguito con il plugin NemoClaw pre-installato.
- Le chiamate di inferenza vengono instradate attraverso OpenShell verso il provider configurato.
- L’egress di rete è limitato dalla policy di base in
openclaw-sandbox.yaml. - L’accesso al filesystem è confinato a
/sandboxe/tmpper l’accesso in lettura-scrittura, con i percorsi di sistema in sola lettura.
Routing dell’Inferenza
Le richieste di inferenza dall’agente non lasciano mai la sandbox direttamente. OpenShell le intercetta e le instrada verso il provider configurato:
Agent (sandbox) ──▶ OpenShell gateway ──▶ NVIDIA cloud (build.nvidia.com)
Consulta i Profili di Inferenza per i dettagli sulla configurazione dei provider.