NemoClaw 작동 원리

NemoClaw는 경량 CLI 플러그인과 버전 관리된 블루프린트를 결합하여 OpenClaw를 제어된 샌드박스 안으로 옮깁니다. 이 페이지에서는 NemoClaw의 핵심 개념을 상위 수준에서 설명합니다.

구성 요소의 연동 방식

nemoclaw CLI는 샌드박스화된 OpenClaw 에이전트를 설정하고 관리하는 메인 진입점입니다. 무거운 작업은 버전 관리된 블루프린트(Python 아티팩트)에 위임하며, 블루프린트가 OpenShell CLI를 통해 샌드박스 생성, 정책 적용, 추론 프로바이더 설정을 오케스트레이션합니다.

flowchart TB
    subgraph Host
        CMD["nemoclaw onboard"]
        PLUGIN[nemoclaw plugin]
        BLUEPRINT[blueprint runner]
        CLI["openshell CLI sandbox · gateway · inference · policy"]

        CMD --> PLUGIN
        PLUGIN --> BLUEPRINT
        BLUEPRINT --> CLI
    end

    subgraph Sandbox["OpenShell Sandbox"]
        AGENT[OpenClaw agent]
        INF[NVIDIA inference, routed]
        NET[strict network policy]
        FS[filesystem isolation]

        AGENT --- INF
        AGENT --- NET
        AGENT --- FS
    end

    PLUGIN --> AGENT

    classDef nv fill:#76b900,stroke:#333,color:#fff
    classDef nvLight fill:#e6f2cc,stroke:#76b900,color:#1a1a1a
    classDef nvDark fill:#333,stroke:#76b900,color:#fff

    class CMD,PLUGIN,BLUEPRINT nvDark
    class CLI nv
    class AGENT nv
    class INF,NET,FS nvLight

    style Host fill:none,stroke:#76b900,stroke-width:2px,color:#1a1a1a
    style Sandbox fill:#f5faed,stroke:#76b900,stroke-width:2px,color:#1a1a1a

설계 원칙

NemoClaw 아키텍처는 다음 원칙을 따릅니다.

슬림한 플러그인, 버전 관리된 블루프린트 플러그인은 작고 안정적으로 유지합니다. 오케스트레이션 로직은 블루프린트에 있으며, 독자적인 릴리스 주기로 발전합니다.

CLI 경계 준수 nemoclaw CLI가 메인 인터페이스입니다. 플러그인 명령어는 openclaw nemoclaw 아래에서 사용할 수 있지만, OpenClaw 빌트인 명령어를 덮어쓰지 않습니다.

공급망 보안 블루프린트 아티팩트는 불변이고, 버전이 지정되며, 실행 전에 다이제스트 검증을 거칩니다.

신규 설치는 OpenShell 네이티브로 기존 OpenClaw 설치가 없는 사용자에게는 플러그인 기반 부트스트랩 대신 openshell sandbox create 직접 사용을 권장합니다.

재현 가능한 설정 설정을 다시 실행하면 동일한 블루프린트와 정책 정의로 샌드박스를 재생성합니다.

플러그인과 블루프린트

NemoClaw는 두 부분으로 나뉩니다:

  • 플러그인은 TypeScript 패키지로, nemoclaw CLI를 구동하고 openclaw nemoclaw 아래에 명령어를 등록합니다. 사용자 상호작용을 처리하고, 오케스트레이션 작업을 블루프린트에 위임합니다.
  • 블루프린트는 버전 관리된 Python 아티팩트로, 샌드박스 생성, 정책 적용, 추론 설정에 필요한 모든 로직을 포함합니다. 플러그인이 블루프린트를 해석, 검증한 뒤 서브프로세스로 실행합니다.

이런 분리 덕분에 플러그인은 작고 안정적인 상태를 유지하면서, 블루프린트는 독자적으로 발전할 수 있습니다.

샌드박스 생성

nemoclaw onboard를 실행하면 NemoClaw는 격리된 컨테이너에서 OpenClaw를 실행하는 OpenShell 샌드박스를 생성합니다. 블루프린트가 OpenShell CLI를 통해 이 과정을 오케스트레이션합니다:

  1. 플러그인이 블루프린트 아티팩트를 다운로드하고, 버전 호환성을 확인하며, 다이제스트를 검증합니다.
  2. 블루프린트가 생성 또는 업데이트할 OpenShell 리소스(gateway, 추론 프로바이더, 샌드박스, 네트워크 정책)를 결정합니다.
  3. 블루프린트가 OpenShell CLI 명령어를 호출하여 샌드박스를 생성하고 각 리소스를 구성합니다.

샌드박스가 시작되면 에이전트가 그 안에서 실행되며, 네트워크, 파일시스템, 추론의 모든 제어가 적용됩니다.

추론 라우팅

에이전트의 추론 요청은 샌드박스에서 직접 나가지 않습니다. OpenShell이 모든 추론 호출을 가로채서 설정된 프로바이더로 라우팅합니다. NemoClaw는 기본적으로 추론을 NVIDIA 클라우드로 라우팅합니다. 구체적으로는 build.nvidia.com을 통해 Nemotron 3 Super 120B를 사용합니다. 샌드박스를 재시작하지 않고도 런타임에서 모델을 전환할 수 있습니다.

네트워크 및 파일시스템 정책

샌드박스는 openclaw-sandbox.yaml에 정의된 엄격한 기본 정책으로 시작합니다. 이 정책은 에이전트가 접근할 수 있는 네트워크 엔드포인트와 파일시스템 경로를 제어합니다.

  • 네트워크: 정책에 나열된 엔드포인트만 허용됩니다. 에이전트가 목록에 없는 호스트에 접근을 시도하면 OpenShell이 요청을 차단하고 TUI에 표시하여 운영자 승인을 기다립니다.
  • 파일시스템: 에이전트는 /sandbox/tmp에 쓰기가 가능합니다. 나머지 시스템 경로는 모두 읽기 전용입니다.

승인된 엔드포인트는 현재 세션 동안 유효하지만, 기본 정책 파일에는 저장되지 않습니다.

다음 단계

  • 빠른 시작에서 첫 번째 샌드박스를 실행합니다.
  • 아키텍처에서 파일 구조와 블루프린트 라이프사이클을 포함한 전체 기술 구조를 확인합니다.
  • 추론 프로필에서 프로바이더 설정 세부 사항을 확인합니다.