Dell Technologies Dell Deskside Agentic AI Solutions
Home / solutions / nemoclaw / deploy-guide-dev

OpenClaw on NemoClaw — Developer Quick-Start

Who this is for: developers standing up the NemoClaw runtime on a Dell workstation to build a custom tool-using agent.

IT fleet path: IT-Admin Guide.

Shipping agent: if you want the ready-to-use tool-using agent, see Hermes on NemoClaw instead.

Prerequisites

  • Ubuntu 24.04 LTS or newer on Dell Pro Precision 9 towers and Dell Pro Precision with GB300; GB10 systems ship with DGX OS.
  • Docker CE + NVIDIA Container Toolkit — docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu24.04 nvidia-smi should succeed.
  • Node.js ≥ 20 (installed via nvm by the NemoClaw installer if missing).
  • Hugging Face token (HF_TOKEN) with access to the Nemotron 3.5 Lightning NVFP4 model, or weights pre-cached in ~/.cache/huggingface.
  • Outbound network to nvidia.com, github.com, huggingface.co for the initial install.

1) Plane 1 — local LLM

Pick the recipe matching your hardware and serve on port 8000:

Dell system Recipe
Dell Pro Precision with GB10 recipes/gb10/vllm/docker-nemotron-3.5-lightning-nvfp4.sh
Precision T2 / T4 / T6 (Blackwell) recipes/precision/vllm/docker-nemotron-3.5-lightning-nvfp4.sh
Dell Pro Precision with GB300 recipes/gb300/vllm/docker-nemotron-3.5-lightning-nvfp4.sh

Commands in this guide run from the repository root (git clone this repo and cd into it).

recipes/<platform>/vllm/docker-nemotron-3.5-lightning-nvfp4.sh --port 8000
curl -s http://localhost:8000/v1/models

Prefer --gpu-memory-utilization 0.70 to leave headroom for the agent workload (the recipes default to this for GB10; adjust to 0.85–0.90 on M / L when you know your agents are LLM-heavy).

Model alternatives (same OpenAI-compatible API, tool-calling verified). The serving recipes bake the tool/reasoning parsers each model needs — do not swap the model without matching parsers, or agent tool-calling fails silently:

Tier Alternative model Recipe Tool parser
S Qwen3.8 27B NVFP4 (+ MTP) recipes/gb10/vllm/docker-qwen3.8-27b-nvfp4.sh qwen3_coder
M Qwen3.8-Flash-Next NVFP4 (MTP ×3, engram CPU offload) recipes/precision/vllm/docker-qwen3.8-flash-next-nvfp4.sh qwen3_xml
L GLM-5.3-Flash NVFP4 (320B/18B-active MoE, 262K ctx) recipes/gb300/vllm/docker-glm-5.3-flash-nvfp4.sh glm47

2) Plane 2 — NemoClaw + OpenShell

Plane 2 uses NVIDIA's shipping installer, which keeps you on NVIDIA's release cadence (for a fleet, scripts/landscape/deploy-solution.sh runs it non-interactively across a fleet):

curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
export PATH="$HOME/.local/bin:$PATH"
source "$HOME/.nvm/nvm.sh" && nvm use --lts

# Onboard the runtime (interactive; accept defaults for the base install)
nemoclaw onboard

3) Wire inference to Plane 1

openshell provider create \
  --name vllm-local \
  --type openai \
  --credential OPENAI_API_KEY=local \
  --config base_url=http://host.docker.internal:8000/v1

openshell inference set --provider vllm-local --model nvidia/nemotron-3.5-lightning
openshell status              # Connected

4) Create a sandbox

Every sandbox runs under a policy tier (strict / standard / permissive — see Solution overview). Start custom agents on standard; evaluate untrusted code on strict.

# Create a sandbox from the quick-start sample policy (review it, then adopt or edit it)
openshell sandbox create my-agent --policy solutions/openclaw-on-nemoclaw/policy/standard.sample.yaml

# List sandboxes
openshell sandbox list        # my-agent | Ready

# Enter the sandbox with a shell (for exploration)
openshell sandbox shell my-agent

Note: filesystem landlock is fixed at sandbox create time — pick the tier before you create. Network policy can be adjusted live.

5) Verify LLM access from inside the sandbox

# Inside the sandbox
curl -s http://host.docker.internal:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "nvidia/nemotron-3.5-lightning",
    "messages": [{"role":"user","content":"Reply with exactly: PLANE_1_OK"}],
    "max_tokens": 32
  }' | jq -r '.choices[0].message.content'

Expected: PLANE_1_OK. Nemotron 3.5 Lightning is a reasoning model — for real turns give clients max_tokens >= 512 (smaller budgets are consumed by the thinking trace).

Where to go next

  • Build your custom agent. NemoClaw provides the runtime, sandbox, and policy — your agent code lives inside the sandbox and calls the local LLM through the wired provider.
  • Wire MCP tools. Add your MCP servers and register them with the sandbox. Credentials stay outside the sandbox.
  • Budget tool-execution cost. If one agent turn triggers multiple sequential MCP calls, tool cost often dominates LLM cost — measure it early.
  • Use the shipping Hermes agent. If you don't want to write a custom agent, see Hermes on NemoClaw — same runtime, ready-made agent.

Troubleshooting

Symptom Fix
vLLM /v1/models returns 404 Server still loading weights. Watch docker logs for Application startup complete.
NemoClaw installer fails on Node.js version Ensure nvm is loaded (source "$HOME/.nvm/nvm.sh") and Node.js LTS is active.
Sandbox cannot reach Plane 1 endpoint Use host.docker.internal:8000 rather than 127.0.0.1:8000 from inside the OpenShell sandbox.
openshell status never reaches Connected Confirm the provider config used a reachable base URL and a model name that matches one of the --served-model-name aliases.
Model replies are empty with finish_reason=length Reasoning trace ate the token budget — raise max_tokens to ≥ 512.