Arquitetura
O NemoClaw possui dois componentes principais: um plugin TypeScript que se integra com o CLI do OpenClaw, e um blueprint Python que orquestra recursos do OpenShell.
Plugin do NemoClaw
O plugin é um pacote TypeScript enxuto que registra comandos em openclaw nemoclaw.
Ele roda no mesmo processo que o gateway do OpenClaw e lida com as interações de CLI voltadas ao usuário.
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 do NemoClaw
O blueprint é um artefato Python versionado com sua própria cadência de release. O plugin resolve, verifica e executa o blueprint como um subprocesso. O blueprint conduz todas as interações com o CLI do 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 do Blueprint
flowchart LR
A[resolve] --> B[verify digest]
B --> C[plan]
C --> D[apply]
D --> E[status]
- Resolve. O plugin localiza o artefato do blueprint e verifica a versão contra as restrições
min_openshell_versionemin_openclaw_versionemblueprint.yaml. - Verify. O plugin verifica o digest do artefato contra o valor esperado.
- Plan. O executor determina quais recursos do OpenShell criar ou atualizar, como gateway, provedores, sandbox, rota de inferência e política.
- Apply. O executor executa o plano chamando comandos do CLI
openshell. - Status. O executor reporta o estado atual.
Ambiente do Sandbox
O sandbox roda a imagem de contêiner
ghcr.io/nvidia/openshell-community/sandboxes/openclaw.
Dentro do sandbox:
- O OpenClaw roda com o plugin NemoClaw pré-instalado.
- As chamadas de inferência são roteadas através do OpenShell para o provedor configurado.
- A saída de rede é restrita pela política de linha de base em
openclaw-sandbox.yaml. - O acesso ao sistema de arquivos é confinado a
/sandboxe/tmppara leitura e escrita, com caminhos do sistema em modo somente leitura.
Roteamento de Inferência
As requisições de inferência do agente nunca saem do sandbox diretamente. O OpenShell as intercepta e roteia para o provedor configurado:
Agent (sandbox) ──▶ OpenShell gateway ──▶ NVIDIA cloud (build.nvidia.com)
Consulte os Perfis de Inferência para detalhes de configuração do provedor.