Architectuur

NemoClaw heeft twee hoofdcomponenten: een TypeScript-plugin die integreert met de OpenClaw CLI, en een Python-blueprint die OpenShell-resources orkestreert.

NemoClaw-plugin

De plugin is een dun TypeScript-pakket dat commando’s registreert onder openclaw nemoclaw. Het draait in-process met de OpenClaw gateway en verzorgt gebruikersgerichte CLI-interacties.

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

NemoClaw-blueprint

De blueprint is een geversioneerd Python-artefact met een eigen releasetraject. De plugin zoekt de blueprint op, verifieert deze en voert deze uit als subprocess. De blueprint stuurt alle interacties met de OpenShell CLI aan.

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

Blueprint-levenscyclus

flowchart LR
    A[resolve] --> B[verify digest]
    B --> C[plan]
    C --> D[apply]
    D --> E[status]
  1. Resolve. De plugin zoekt het blueprint-artefact op en controleert de versie tegen de min_openshell_version- en min_openclaw_version-restricties in blueprint.yaml.
  2. Verify. De plugin controleert de artefactdigest tegen de verwachte waarde.
  3. Plan. De runner bepaalt welke OpenShell-resources moeten worden aangemaakt of bijgewerkt, zoals de gateway, providers, sandbox, inferentieroute en beleid.
  4. Apply. De runner voert het plan uit door openshell CLI-commando’s aan te roepen.
  5. Status. De runner rapporteert de huidige status.

Sandbox-omgeving

De sandbox draait de ghcr.io/nvidia/openshell-community/sandboxes/openclaw container-image. In de sandbox:

  • OpenClaw draait met de NemoClaw-plugin vooraf geïnstalleerd.
  • Inferentieaanroepen worden gerouteerd via OpenShell naar de geconfigureerde provider.
  • Uitgaand netwerkverkeer wordt beperkt door het basisbeleid in openclaw-sandbox.yaml.
  • Bestandssysteemtoegang is beperkt tot /sandbox en /tmp voor lees-schrijftoegang, met systeempaden als alleen-lezen.

Inferentieroutering

Inferentieverzoeken van de agent verlaten de sandbox nooit direct. OpenShell onderschept ze en routeert ze naar de geconfigureerde provider:

Agent (sandbox)  ──▶  OpenShell gateway  ──▶  NVIDIA cloud (build.nvidia.com)

Raadpleeg Inferentieprofielen voor details over providerconfiguratie.