Skip to content

Commit 5d115f8

Browse files
authored
docs: fix doc-validate findings across guide pages (NVIDIA#5630-NVIDIA#5640) (NVIDIA#5645)
Addresses the actionable findings from the 2026-06-19 doc-validate run across 11 guide pages. Closes NVIDIA#5630 Refs NVIDIA#5631 Closes NVIDIA#5632 Closes NVIDIA#5633 Closes NVIDIA#5634 Closes NVIDIA#5635 Closes NVIDIA#5636 Closes NVIDIA#5637 Closes NVIDIA#5638 Closes NVIDIA#5639 Closes NVIDIA#5640 | Issue | Page | Fix | |-------|------|-----| | NVIDIA#5630 | manage-sandboxes/lifecycle | bump stale NEMOCLAW_INSTALL_TAG example v0.0.63 → v0.0.65 | | NVIDIA#5631 | get-started/quickstart | self-contained non-interactive install (provider/key/sandbox name); consistent sandbox name | | NVIDIA#5632 | inference/set-up-sub-agent | guidance for non-Omni sub-agent configs (auth-profiles upload already documented) | | NVIDIA#5633 | inference/switch-inference-providers | show `credentials list` to discover provider names before switching | | NVIDIA#5634 | network-policy/integration-policy-examples | note `policy-add` is non-idempotent; remove before re-applying | | NVIDIA#5635 | inference/inference-options | state vLLM install + running-server prerequisites | | NVIDIA#5636 | inference/use-local-inference | add `--yes-i-accept-third-party-software` to non-interactive Ollama; add `docker network inspect` subnet discovery | | NVIDIA#5637 | reference/troubleshooting | nvm/Docker prerequisites note; make CA-bundle grep non-zero-safe (`|| true`) | | NVIDIA#5638 | deployment/sandbox-hardening | explain `nemoclaw-sandbox` image placeholder; Landlock verify expected output/fallback | | NVIDIA#5639 | manage-sandboxes/messaging-channels | quote angle-bracket credential placeholders | | NVIDIA#5640 | monitoring/monitor-sandbox-activity | correct legacy `sandbox exec` → `<name> exec --`; placeholder names; context-overflow `/reset` remediation | NVIDIA#5631 is referenced rather than closed: this PR fixes the quickstart docs (the non-interactive block now lists the required provider/key/sandbox-name vars, and the `connect` example uses a consistent sandbox name). The exit-1 failure in item 1 is an installer bug, root-caused in NVIDIA#5626 with the fix in flight at NVIDIA#5641, and item 2's name consistency is also covered by NVIDIA#5723. NVIDIA#5631 should close once those land, not on this docs PR. Not changed (with rationale): - The recurring "`$$nemoclaw` breaks copy-paste" finding (NVIDIA#5630, NVIDIA#5634, NVIDIA#5635, NVIDIA#5636, NVIDIA#5639, NVIDIA#5640): `$$nemoclaw` is the intentional `CLI_SENTINEL` replaced at build time by scripts/sync-agent-variant-docs.ts (and required on shared nav pages by `assertNoUnsharedPlaceholders`). It renders as `nemoclaw`/`nemohermes` in published docs, so it is correct as-is; the validator scanned raw MDX rather than rendered output. - NVIDIA#5637 "v0.0.43" string: kept — it is a historical "starting with version X" statement, not a stale version. - Some findings (NVIDIA#5636 hermes tool-calling-reliability link, NVIDIA#5639 hermes deploy link and backtick) are already resolved in current source (links are `AgentOnly variant="openclaw"` gated; backticks balanced). Signed-off-by: Abhimanyu Kumar <abhimanyukumar7290@gmail.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Strengthened sandbox hardening guidance with clearer runtime capability-dropping instructions and more explicit Landlock detection/fallback behavior. * Refreshed quickstart and installer/CLI examples, including corrected sandbox naming and a more reliable non-interactive install flow. * Updated inference setup materials (vLLM sequencing, endpoint readiness, provider discovery/selection, and streamlined sub-agent JSON editing). * Improved local inference, sandbox lifecycle install tag, monitoring command examples, and added context-reset troubleshooting. * Enhanced messaging/network-policy/troubleshooting snippets with safer quoting and more resilient command behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Abhimanyu Kumar <abhimanyukumar7290@gmail.com>
1 parent 0cfaf8f commit 5d115f8

11 files changed

Lines changed: 67 additions & 23 deletions

File tree

docs/deployment/sandbox-hardening.mdx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ To make the drop fail-closed instead, set `NEMOCLAW_REQUIRE_CAP_DROP=1` in the e
5555
This is opt-in because many hosts cannot drop capabilities, including cloud VMs, Docker Desktop, and WSL environments without `CAP_SETPCAP`.
5656
The check covers the agent process tree only.
5757

58-
For defense-in-depth, also drop all Linux capabilities at the container runtime when you launch the image directly:
58+
For defense-in-depth, also drop all Linux capabilities at the container runtime when you launch the image directly.
59+
In the examples below, `nemoclaw-sandbox` is a placeholder for the sandbox image NemoClaw builds during onboarding; substitute the image tag your install produced, which you can find with `docker images`.
5960

6061
```bash
6162
docker run --rm \
@@ -138,6 +139,9 @@ Verify Landlock availability:
138139
ls /sys/kernel/security/landlock
139140
```
140141

142+
On a kernel with Landlock support, the path exists and `ls` succeeds.
143+
If it reports `No such file or directory`, the kernel does not expose Landlock, and the sandbox falls back to DAC-only enforcement as described above.
144+
141145
For production deployments, use kernel 5.13+ with Landlock enabled.
142146
The `test/e2e/e2e-cloud-experimental/checks/04-landlock-readonly.sh` script validates enforcement at runtime.
143147

docs/get-started/quickstart.mdx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,17 @@ curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash -s -- --yes-i-accept-third-
5353
To run both installation and onboarding without prompts, also set non-interactive mode and the provider variables your chosen inference path requires:
5454

5555
```bash
56-
curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_NON_INTERACTIVE=1 NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1 bash
56+
curl -fsSL https://www.nvidia.com/nemoclaw.sh | \
57+
NEMOCLAW_NON_INTERACTIVE=1 \
58+
NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1 \
59+
NEMOCLAW_PROVIDER=build \
60+
NVIDIA_INFERENCE_API_KEY=<your-key> \
61+
NEMOCLAW_SANDBOX_NAME=my-gpt-claw \
62+
bash
5763
```
5864

65+
The example above uses the NVIDIA Endpoints path. Set `NEMOCLAW_PROVIDER` and the matching API key variable for your chosen path (see the provider table above), and set `NEMOCLAW_SANDBOX_NAME` so the run does not depend on a default left behind by a previous, possibly interrupted, onboard session.
66+
5967
If a scripted installer rerun finds a failed onboarding session, choose whether to discard the saved state with `--fresh` or retry it with `nemoclaw onboard --resume`.
6068
For the recovery commands, refer to [Previous onboarding session failed](../reference/troubleshooting#previous-onboarding-session-failed).
6169

@@ -275,7 +283,7 @@ openshell term
275283
```
276284

277285
```bash
278-
nemoclaw my-assistant connect
286+
nemoclaw my-gpt-claw connect
279287
# inside the sandbox:
280288
openclaw tui
281289
```

docs/inference/inference-options.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ To opt in to `/v1/responses`, set `NEMOCLAW_PREFERRED_API=openai-responses` befo
241241

242242
Start your model server.
243243
The examples below use vLLM, but any OpenAI-compatible server works.
244+
Install vLLM first if it is not already on the host (for example, `pip install vllm`), then start it:
244245

245246
```bash
246247
vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000
@@ -266,7 +267,8 @@ Route, configuration, and authentication failures still fail immediately.
266267

267268
### Non-Interactive Setup
268269

269-
Set the following environment variables for scripted or CI/CD deployments.
270+
Start your OpenAI-compatible server first; the endpoint in `NEMOCLAW_ENDPOINT_URL` must already be serving, or onboarding fails its validation probe.
271+
Then set the following environment variables for scripted or CI/CD deployments.
270272
Set `NEMOCLAW_REASONING=true` when the compatible endpoint serves a reasoning-only model.
271273

272274
<Warning>

docs/inference/set-up-sub-agent.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ python3 "$VLM_DEMO_DIR/vlm-subagent/openclaw-patch.py" "$NVIDIA_API_KEY" < /tmp/
8484
```
8585

8686
The helper reads `/tmp/openclaw.json` from standard input, adds the Omni provider and `vision-operator` entry, and writes the patched config to `/tmp/openclaw.updated.json`.
87+
For a sub-agent other than the Omni example, create `/tmp/openclaw.updated.json` from the exported config with `cp /tmp/openclaw.json /tmp/openclaw.updated.json`, then edit it before the upload step with your provider under `models.providers` and your sub-agent under `agents`.
8788
Do not commit `/tmp/openclaw.updated.json` or any other file that contains a real API key.
8889

8990
Upload the patched config and refresh the hash.

docs/inference/switch-inference-providers.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,17 @@ You do not need to restart the sandbox.
2121
- A running NemoClaw sandbox.
2222
- The OpenShell CLI on your `PATH`, which NemoClaw uses internally.
2323

24+
## Find the Provider Name
25+
26+
The `--provider` value must match a provider already configured on the sandbox.
27+
If you are not sure of the exact name, list the configured providers first:
28+
29+
```bash
30+
$$nemoclaw credentials list
31+
```
32+
33+
Use the provider ID shown there in the `inference set` commands below.
34+
2435
## Switch to a Different Model
2536

2637
<AgentOnly variant="openclaw">

docs/inference/use-local-inference.mdx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ On native Linux hosts, a firewall can allow the host proxy health check while st
148148
When the sandbox-side proxy probe fails with a TCP error, onboarding exits before it saves the inference route and prints a command like:
149149

150150
```bash
151-
sudo ufw allow from <openshell-docker-subnet> to any port 11435 proto tcp
151+
SUBNET=$(docker network inspect openshell-docker --format '{{(index .IPAM.Config 0).Subnet}}')
152+
sudo ufw allow from "$SUBNET" to any port 11435 proto tcp
152153
$$nemoclaw onboard
153154
```
154155

@@ -175,9 +176,14 @@ This does not delete downloaded model files.
175176
```bash
176177
NEMOCLAW_PROVIDER=ollama \
177178
NEMOCLAW_MODEL=qwen3.5:9b \
178-
$$nemoclaw onboard --non-interactive --yes
179+
$$nemoclaw onboard --non-interactive --yes --yes-i-accept-third-party-software
179180
```
180181

182+
Non-interactive runs cannot prompt for the third-party software notice, so include `--yes-i-accept-third-party-software` (or set `NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1`) whenever the path may install or start Ollama.
183+
For interactive local inference, choose the provider menu option that matches the local server you already started; use the Ollama option only when NemoClaw should manage Ollama for you.
184+
For vLLM, NIM, or another OpenAI-compatible endpoint, choose the compatible endpoint or custom provider path and enter the host URL from the server setup above.
185+
When later commands use `<name>`, replace it with the sandbox name you chose during onboarding, for example `my-assistant`.
186+
181187
If `NEMOCLAW_MODEL` is not set, NemoClaw selects a default model based on available memory.
182188
If `NEMOCLAW_MODEL` names a known bootstrap model (for example `qwen3.6:35b`) that does not fit the host's currently available GPU memory, NemoClaw warns and falls back to the largest known model that does fit.
183189
Unknown or custom tags, meaning any value the bootstrap registry has not seen, still pass through.

docs/manage-sandboxes/lifecycle.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ The standard installer follows the admin-promoted `lkg` release tag by default.
257257
If you need a specific release, set `NEMOCLAW_INSTALL_TAG` on the `bash` side of the install pipeline.
258258

259259
```bash
260-
curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_INSTALL_TAG=v0.0.63 bash
260+
curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_INSTALL_TAG=v0.0.65 bash
261261
$$nemoclaw upgrade-sandboxes --check
262262
```
263263

docs/manage-sandboxes/messaging-channels.mdx

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -175,21 +175,24 @@ NemoClaw also selects the matching network policy preset during policy setup so
175175
For scripted setup, export the credentials and optional settings for the channels you want to enable before you run onboarding:
176176

177177
```bash
178-
export TELEGRAM_BOT_TOKEN=<your-bot-token>
178+
export TELEGRAM_BOT_TOKEN="<your-bot-token>"
179179
export TELEGRAM_REQUIRE_MENTION=1
180-
export DISCORD_BOT_TOKEN=<your-discord-bot-token>
181-
export DISCORD_SERVER_ID=<your-discord-server-id>
182-
export SLACK_BOT_TOKEN=<your-slack-bot-token>
183-
export SLACK_APP_TOKEN=<your-slack-app-token>
184-
export SLACK_ALLOWED_USERS=<your-slack-member-id>
185-
export SLACK_ALLOWED_CHANNELS=<your-slack-channel-id>
186-
export MSTEAMS_APP_ID=<your-teams-app-id>
187-
export MSTEAMS_APP_PASSWORD=<your-teams-client-secret>
188-
export MSTEAMS_TENANT_ID=<your-teams-tenant-id>
189-
export TEAMS_ALLOWED_USERS=<your-entra-object-id>
180+
export DISCORD_BOT_TOKEN="<your-discord-bot-token>"
181+
export DISCORD_SERVER_ID="<your-discord-server-id>"
182+
export SLACK_BOT_TOKEN="<your-slack-bot-token>"
183+
export SLACK_APP_TOKEN="<your-slack-app-token>"
184+
export SLACK_ALLOWED_USERS="<your-slack-member-id>"
185+
export SLACK_ALLOWED_CHANNELS="<your-slack-channel-id>"
186+
export MSTEAMS_APP_ID="<your-teams-app-id>"
187+
export MSTEAMS_APP_PASSWORD="<your-teams-client-secret>"
188+
export MSTEAMS_TENANT_ID="<your-teams-tenant-id>"
189+
export TEAMS_ALLOWED_USERS="<your-entra-object-id>"
190190
export MSTEAMS_PORT=3978
191191
```
192192

193+
The placeholder values are quoted because angle brackets are shell metacharacters; the quotes keep the export from triggering a redirection or syntax error when you paste a real token in place.
194+
Before you run onboarding or channel commands, make sure Docker is running and that your user can access the Docker socket, either through the `docker` group or by using the documented `sudo` workflow for your host.
195+
193196
This release does not support non-interactive WeChat configuration because the iLink QR handshake requires a human to scan the QR on a paired phone.
194197
Run `$$nemoclaw onboard` interactively when you want to enable WeChat.
195198

docs/monitoring/monitor-sandbox-activity.mdx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Use these files for audit trails, compliance review, or replay tooling that incl
7272
Inspect the session directory from the host by running a sandbox command.
7373

7474
```bash
75-
$$nemoclaw sandbox exec <name> -- ls -lh /sandbox/.openclaw/agents/main/sessions
75+
$$nemoclaw <name> exec -- ls -lh /sandbox/.openclaw/agents/main/sessions
7676
```
7777

7878
Copy a session log for offline review with the OpenShell sandbox download command.
@@ -108,13 +108,13 @@ Send a test inference request to verify that the provider responds.
108108

109109
<AgentOnly variant="openclaw">
110110
```bash
111-
$$nemoclaw my-assistant connect
111+
$$nemoclaw <name> connect
112112
openclaw agent --agent main -m "Test inference" --session-id debug
113113
```
114114
</AgentOnly>
115115
<AgentOnly variant="hermes">
116116
```bash
117-
$$nemoclaw my-hermes connect
117+
$$nemoclaw <name> connect
118118
hermes
119119
```
120120
</AgentOnly>
@@ -126,6 +126,7 @@ If the request fails, check these items.
126126
If it shows `unreachable`, restart the local backend before retrying from inside the sandbox.
127127
2. Run `$$nemoclaw <name> logs --follow` to view error messages from the blueprint runner.
128128
3. Verify that the host can reach the inference endpoint.
129+
4. If the agent reports a context-overflow or token-limit error, clear the conversation with `/reset` (or start a fresh one with `/new`) in the TUI before retrying.
129130

130131
## Related Topics
131132

docs/network-policy/integration-policy-examples.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,9 @@ $$nemoclaw my-assistant policy-add outlook --dry-run
9696
$$nemoclaw my-assistant policy-add outlook --yes
9797
```
9898

99-
Configure the email or calendar tool credentials through the integration you run in the sandbox.
99+
`policy-add` exits non-zero if the `outlook` preset is already applied. If you applied it in the lifecycle example above, run `$$nemoclaw my-assistant policy-remove outlook --yes` first (or skip this apply step).
100+
101+
Then configure the email or calendar tool credentials through the integration you run in the sandbox.
100102
Keep OAuth client secrets and refresh tokens out of policy files.
101103

102104
If the tool still fails, run `openshell term`, trigger the workflow again, and inspect the blocked request.

0 commit comments

Comments
 (0)