Architektura

NemoClaw składa się z dwóch głównych komponentów: wtyczki TypeScript integrującej się z CLI OpenClaw oraz blueprintu Python, który orkiestruje zasoby OpenShell.

Wtyczka NemoClaw

Wtyczka to cienki pakiet TypeScript, który rejestruje polecenia pod openclaw nemoclaw. Działa w procesie bramy OpenClaw i obsługuje interakcje CLI widoczne dla użytkownika.

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

Blueprint to wersjonowany artefakt Python z własnym strumieniem wydawniczym. Wtyczka rozwiązuje, weryfikuje i wykonuje blueprint jako podproces. Blueprint steruje wszystkimi interakcjami z CLI 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

Cykl życia blueprintu

flowchart LR
    A[resolve] --> B[verify digest]
    B --> C[plan]
    C --> D[apply]
    D --> E[status]
  1. Rozwiązanie. Wtyczka lokalizuje artefakt blueprintu i sprawdza wersję względem ograniczeń min_openshell_version i min_openclaw_version w blueprint.yaml.
  2. Weryfikacja. Wtyczka sprawdza skrót artefaktu względem oczekiwanej wartości.
  3. Planowanie. Runner określa, jakie zasoby OpenShell należy utworzyć lub zaktualizować, takie jak brama, dostawcy, sandbox, trasa inferencji i polityka.
  4. Zastosowanie. Runner wykonuje plan, wywołując polecenia CLI openshell.
  5. Status. Runner raportuje bieżący stan.

Środowisko sandboxa

Sandbox uruchamia obraz kontenera ghcr.io/nvidia/openshell-community/sandboxes/openclaw. Wewnątrz sandboxa:

  • OpenClaw działa z wstępnie zainstalowaną wtyczką NemoClaw.
  • Wywołania inferencji są kierowane przez OpenShell do skonfigurowanego dostawcy.
  • Ruch wychodzący sieci jest ograniczony przez politykę bazową w openclaw-sandbox.yaml.
  • Dostęp do systemu plików jest ograniczony do /sandbox i /tmp w trybie odczytu i zapisu, a ścieżki systemowe są tylko do odczytu.

Routing inferencji

Żądania inferencji od agenta nigdy nie opuszczają sandboxa bezpośrednio. OpenShell przechwytuje je i kieruje do skonfigurowanego dostawcy:

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

Zapoznaj się z Profilami inferencji, aby uzyskać szczegóły konfiguracji dostawców.