Архитектура
NemoClaw состоит из двух основных компонентов: TypeScript-плагина, интегрирующегося с CLI OpenClaw, и Python-блюпринта, оркестрирующего ресурсы OpenShell.
Плагин NemoClaw
Плагин — это тонкий TypeScript-пакет, регистрирующий команды в openclaw nemoclaw.
Он работает в одном процессе со шлюзом OpenClaw и обрабатывает пользовательские взаимодействия через CLI.
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
Блюпринт — это версионированный артефакт на Python со собственным потоком релизов. Плагин разрешает, проверяет и выполняет блюпринт как подпроцесс. Блюпринт управляет всеми взаимодействиями с 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
Жизненный цикл блюпринта
flowchart LR
A[resolve] --> B[verify digest]
B --> C[plan]
C --> D[apply]
D --> E[status]
- Разрешение. Плагин находит артефакт блюпринта и проверяет версию на соответствие ограничениям
min_openshell_versionиmin_openclaw_versionвblueprint.yaml. - Проверка. Плагин проверяет дайджест артефакта на соответствие ожидаемому значению.
- Планирование. Runner определяет, какие ресурсы OpenShell необходимо создать или обновить: шлюз, провайдеры, песочницу, маршрут инференса и политику.
- Применение. Runner выполняет план, вызывая команды CLI
openshell. - Статус. Runner сообщает текущее состояние.
Среда песочницы
Песочница использует образ контейнера
ghcr.io/nvidia/openshell-community/sandboxes/openclaw.
Внутри песочницы:
- OpenClaw работает с предустановленным плагином NemoClaw.
- Вызовы инференса маршрутизируются через OpenShell к настроенному провайдеру.
- Исходящий сетевой трафик ограничен базовой политикой в
openclaw-sandbox.yaml. - Доступ к файловой системе ограничен:
/sandboxи/tmpдоступны для чтения-записи, системные пути — только для чтения.
Маршрутизация инференса
Запросы инференса от агента никогда не покидают песочницу напрямую. OpenShell перехватывает их и направляет настроенному провайдеру:
Agent (sandbox) ──▶ OpenShell gateway ──▶ NVIDIA cloud (build.nvidia.com)
Обратитесь к Профилям инференса для получения подробностей о настройке провайдеров.