DGX Spark에서 NemoClaw 시작하기
NVIDIA DGX Spark는 NemoClaw의 이상적인 개발 플랫폼이다. Grace Blackwell 아키텍처로 128GB 통합 메모리와 최대 1 페타플롭스의 AI 컴퓨팅 성능을 갖추고 있어, 단일 DGX Spark에서 Nemotron 120B MoE를 포함한 전체 NemoClaw 스택을 데스크톱에서 로컬로 실행할 수 있다.
이 튜토리얼은 개봉부터 첫 번째 보안 에이전트 Blueprint 실행까지의 전체 설정 과정을 안내한다.
사전 요구 사항
- •NVIDIA DGX Spark (또는 양자화 모델을 위한 24GB 이상의 VRAM을 갖춘 NVIDIA GPU 시스템)
- •Ubuntu 22.04 LTS 이상 (DGX OS는 Spark에 사전 설치됨)
- •Docker 24.0 이상, NVIDIA Container Toolkit 포함
- •모델 및 컨테이너를 위한 50GB 여유 디스크 공간
단계 1: NemoClaw CLI 설치
NemoClaw CLI는 스택 관리의 주요 인터페이스이다. 공식 설치 프로그램을 통해 설치한다:
# Download and run the NemoClaw installer
curl -fsSL https://github.com/NVIDIA/NemoClaw | bash
# Verify installation
nemoclaw version
# Output: nemoclaw v1.0.0-preview (built for linux/arm64)
# Initialize NemoClaw in your project directory
mkdir my-first-agent && cd my-first-agent
nemoclaw init
nemoclaw init 명령은 프로젝트 스캐폴딩을 생성한다:
my-first-agent/
├── nemoclaw.yaml # Main configuration
├── policies/
│ ├── sandbox.yaml # OpenShell sandbox policies
│ ├── network.yaml # Network access policies
│ └── privacy.yaml # Privacy Router configuration
├── blueprints/
│ └── starter.yaml # Default agent blueprint
└── scripts/
├── setup.sh # Environment setup script
└── test-agent.sh # Agent smoke test
단계 2: 스택 구성
nemoclaw.yaml을 편집하여 배포를 구성한다:
# nemoclaw.yaml
apiVersion: nemoclaw.nvidia.com/v1
kind: NemoClawConfig
metadata:
name: my-first-deployment
spec:
# Model configuration
model:
provider: local
name: nemotron-120b-moe
quantization: int4 # Use INT4 for DGX Spark
gpuLayers: all
# OpenShell configuration
openshell:
enabled: true
isolationLevel: standard # standard | strict | paranoid
auditLog: true
# Privacy Router configuration
privacyRouter:
enabled: true
defaultRoute: local
cloudEndpoints: [] # No cloud endpoints for local-only setup
# Network Policy Engine
networkPolicy:
enabled: true
defaultAction: deny
allowlist:
- "*.internal.company.com"
# Agent configuration
agent:
framework: openclaw
version: "3.13"
maxConcurrentTasks: 8
단계 3: Nemotron 모델 다운로드
NemoClaw는 Nemotron 120B MoE를 정책 평가 엔진으로 사용한다. DGX Spark에서는 128GB 통합 메모리에 여유있게 들어가는 INT4 양자화 변형을 사용한다:
# Pull the Nemotron model (approximately 35GB)
nemoclaw model pull nemotron-120b-moe-int4
# Verify the model is ready
nemoclaw model list
# Output:
# NAME SIZE STATUS
# nemotron-120b-moe-int4 34.7GB ready
메모리가 적은 시스템의 경우, NemoClaw는 더 작은 모델도 지원한다:
# Alternative: Nemotron 8B for systems with 24GB VRAM
nemoclaw model pull nemotron-nano-4b
단계 4: NemoClaw 런타임 시작
단일 명령으로 전체 스택을 시작한다:
# Start all NemoClaw services
nemoclaw up
# Output:
# ✓ OpenShell runtime started (kernel modules loaded)
# ✓ Nemotron 120B MoE loaded (34.7GB, 4-bit quantized)
# ✓ Privacy Router initialized (local-only mode)
# ✓ Network Policy Engine active (deny-by-default)
# ✓ OpenClaw agent framework ready
#
# NemoClaw is running at http://localhost:7860
# Dashboard: http://localhost:7860/dashboard
# API: http://localhost:7860/api/v1
대시보드는 에이전트 실행, 정책 평가, 보안 이벤트를 실시간으로 시각화한다.
단계 5: 첫 번째 Blueprint 배포
Blueprint는 보안 정책이 내장된 사전 구성된 에이전트 템플릿이다. 고객 지원 Blueprint를 배포해 보자:
# List available blueprints
nemoclaw blueprint list
# Output:
# NAME DESCRIPTION SECURITY LEVEL
# customer-support Tier-1 support ticket handling standard
# sales-ops CRM and sales automation standard
# security-ops Alert triage and remediation strict
# infra-management Cloud resource management strict
# code-review PR analysis and vulnerability scan standard
# data-pipeline ETL orchestration standard
# Deploy the customer support blueprint
nemoclaw blueprint deploy customer-support
- •OpenShell 샌드박스 정책 (파일 시스템 및 네트워크 접근 제한)
- •Nemotron 정책 규칙 (PII 감지, 의도 분류)
- •네트워크 허용 목록 (승인된 API 엔드포인트만)
- •운영자 승인 워크플로 (환불, 계정 변경에 대한 에스컬레이션)
단계 6: 에이전트 테스트
보안이 적용된 에이전트에 테스트 요청을 보낸다:
# Send a test message to the agent
nemoclaw agent test --blueprint customer-support \
--message "Customer John Smith (ID: 12345) is asking about their recent order #ORD-9876. They want to know the delivery status."
# Output:
# ┌──────────────────────────────────────────────┐
# │ NemoClaw Security Report │
# ├──────────────────────────────────────────────┤
# │ Policy Evaluation: PASS (45ms) │
# │ Intent Classification: customer-inquiry │
# │ Data Sensitivity: internal │
# │ Model Route: local (nemotron-120b) │
# │ Sandbox: cs-agent-sandbox-001 │
# │ Network Access: crm.api, orders.api │
# │ PII Detected: name, customer-id │
# │ PII Action: redacted-from-logs │
# │ Approval Required: no │
# ├──────────────────────────────────────────────┤
# │ Agent Response: │
# │ "I've checked order #ORD-9876 for the │
# │ customer. The order shipped on March 18 │
# │ via FedEx (tracking: FX123456789). Expected │
# │ delivery is March 21." │
# └──────────────────────────────────────────────┘
- •의도를 일상적인 고객 문의로 분류
- •PII(고객 이름 및 ID)를 감지하고 로그에서 마스킹
- •요청을 로컬 Nemotron 모델로 라우팅
- •CRM 및 주문 API에 대한 네트워크 접근만 허용
- •사람의 승인이 불필요하다고 판단
단계 7: 대시보드로 모니터링
브라우저에서 http://localhost:7860/dashboard를 열어 NemoClaw 모니터링 대시보드에 접근한다. 주요 기능:
- •실시간 이벤트 스트림 — 모든 에이전트 동작, 정책 평가, 보안 결정
- •정책 위반 알림 — 에이전트가 미승인 동작을 시도할 때 즉시 알림
- •감사 로그 — 모든 에이전트 활동의 완전하고 변경 불가능한 기록
- •성능 메트릭 — 레이턴시, 처리량, 리소스 사용률
- •승인 큐 — 고위험 동작에 대한 보류 중인 사람 승인 요청
일반적인 구성 패턴
외부 API 연결
에이전트가 외부 서비스에 접근하도록 허용하려면 네트워크 정책을 업데이트한다:
# policies/network.yaml
networkPolicy:
egress:
allow:
- domain: "api.zendesk.com"
methods: [GET, POST, PUT]
headers:
required: ["Authorization"]
- domain: "api.stripe.com"
methods: [GET] # Read-only access to payment data
운영자 승인 구성
민감한 작업에 대한 승인 워크플로를 설정한다:
# policies/sandbox.yaml
approvalWorkflow:
enabled: true
rules:
- action: "refund.process"
condition: "amount > 100"
approvers: ["support-leads"]
channel: "slack"
timeout: "10m"
- action: "account.modify"
condition: "always"
approvers: ["account-managers"]
channel: "teams"
timeout: "15m"
클라우드 모델 라우팅 활성화
민감하지 않은 작업의 경우, 더 나은 성능을 위해 클라우드 모델 라우팅을 활성화할 수 있다:
# policies/privacy.yaml
privacyRouter:
defaultRoute: local
cloudEndpoints:
- name: "nvidia-nim"
url: "https://build.nvidia.com"
apiKey: "${NVIDIA_API_KEY}"
allowedSensitivity: ["public", "internal"]
문제 해결
OpenShell 커널 모듈 로드 실패
# Check kernel module status
nemoclaw diagnose openshell
# If using a custom kernel, ensure eBPF is enabled
# and the kernel version is 5.15+
모델 로딩 시 메모리 부족
# Check available GPU memory
nemoclaw diagnose gpu
# Switch to a smaller quantization or model
nemoclaw model pull nemotron-120b-moe-int2 # Smaller but less accurate
nemoclaw model pull nemotron-nano-4b # Much smaller
다음 단계
이제 DGX Spark에서 완전히 작동하는 NemoClaw 배포가 완료되었다. 여기서부터 다음을 수행할 수 있다:
- 1.특정 사용 사례에 맞게 보안 정책 커스터마이징
- 2.조직의 에이전트 워크플로에 맞는 커스텀 Blueprint 구축
- 3.기존 SIEM 및 관찰 가능성 도구와 통합
- 4.NemoClaw Cluster 모드를 사용한 멀티 노드 배포로 확장
다음 글에서는 OpenShell의 보안 런타임에 대한 심층 분석을 다룬다.