docs(inference): improve page readability#6590
Conversation
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR adds a new self-hosted inference guide, updates inference navigation and linked docs, and reflows several related inference documentation pages and tests. ChangesLocal and Compatible Inference Documentation
Estimated code review effort: 3 (Moderate) | ~30 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
PR Review Advisor (Nemotron Ultra) — No blocking findingsMerge posture: No blocking advisor findings This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision. |
|
🌿 Preview your docs: https://nvidia-preview-pr-6590.docs.buildwithfern.com/nemoclaw |
E2E Advisor RecommendationRequired E2E: None Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
|
E2E Target RecommendationRequired E2E targets: None Full E2E target advisor summaryE2E Target AdvisorBase: Required E2E targets
Optional E2E targets
Relevant changed files
|
PR Review Advisor — No blocking findingsMerge posture: No blocking advisor findings This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision. |
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
docs/inference/tool-calling-reliability.mdx (1)
123-149: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winPin and verify the vLLM recipe.
vllm/vllm-openai:latestmakes this setup non-reproducible, and the parser/auto-tool-choice flags are version-sensitive. Please pin a tested image tag or digest and confirm the CLI flags against that release before calling the snippet “known-good.”Suggested change
- image: vllm/vllm-openai:latest + image: vllm/vllm-openai:<tested-version-or-digest>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/inference/tool-calling-reliability.mdx` around lines 123 - 149, The vLLM example in the tool-calling reliability doc is not reproducible because it uses the floating latest image tag and version-sensitive CLI flags. Update the vllm-nemoclaw recipe to pin a specific tested vllm/vllm-openai image tag or digest, and verify that the --enable-auto-tool-choice and --tool-call-parser hermes options are valid for that exact release before labeling the snippet known-good.docs/inference/use-local-inference.mdx (1)
292-292: 📐 Maintainability & Code Quality | 🔵 TrivialLink this directly to the new setup guide.
Based on the PR split, this paragraph now describes content that lives in
local-compatible-inference-setup, so routing readers throughInference Optionsadds an unnecessary hop.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/inference/use-local-inference.mdx` at line 292, Update the reference in the paragraph about full compatible-endpoint prompt flow, non-interactive variables, API-path controls, managed vLLM profiles, NIM setup, and timeout settings so it points directly to the new local-compatible-inference-setup guide instead of routing through Inference Options. Locate the sentence in use-local-inference.mdx and change the link target to the new setup guide while keeping the surrounding wording intact.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/inference/inference-options.mdx`:
- Around line 306-308: The inbound links are still using the old anchor for the
renamed section, so they no longer jump to the correct place. Update the
references in the local inference docs that point to inference-options so they
use the new `#configure-local-and-compatible-providers` anchor, and verify the
link targets still resolve from use-local-inference.mdx and any other matching
references.
In `@docs/inference/set-up-sub-agent.mdx`:
- Around line 99-102: The setup guide text uses the wrong config path for adding
a secondary agent, which can mislead readers about where to place it. Update the
instructions in the sub-agent setup section to reference agents.list instead of
agents, and keep the surrounding wording aligned with the existing config
structure used elsewhere in the guide.
---
Nitpick comments:
In `@docs/inference/tool-calling-reliability.mdx`:
- Around line 123-149: The vLLM example in the tool-calling reliability doc is
not reproducible because it uses the floating latest image tag and
version-sensitive CLI flags. Update the vllm-nemoclaw recipe to pin a specific
tested vllm/vllm-openai image tag or digest, and verify that the
--enable-auto-tool-choice and --tool-call-parser hermes options are valid for
that exact release before labeling the snippet known-good.
In `@docs/inference/use-local-inference.mdx`:
- Line 292: Update the reference in the paragraph about full compatible-endpoint
prompt flow, non-interactive variables, API-path controls, managed vLLM
profiles, NIM setup, and timeout settings so it points directly to the new
local-compatible-inference-setup guide instead of routing through Inference
Options. Locate the sentence in use-local-inference.mdx and change the link
target to the new setup guide while keeping the surrounding wording intact.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 82d186e8-9817-4571-a49d-39f5d05b8bdf
📒 Files selected for processing (9)
docs/index.ymldocs/inference/declarative-agents-manifest.mdxdocs/inference/inference-options.mdxdocs/inference/local-compatible-inference-setup.mdxdocs/inference/model-capability-audit.mdxdocs/inference/set-up-sub-agent.mdxdocs/inference/switch-inference-providers.mdxdocs/inference/tool-calling-reliability.mdxdocs/inference/use-local-inference.mdx
| ## Configure Local and Compatible Providers | ||
|
|
||
| ## vLLM | ||
|
|
||
| When vLLM is already running on `localhost:8000`, NemoClaw can detect it automatically and query the `/v1/models` endpoint to determine the loaded model. | ||
| On supported Linux hosts with NVIDIA GPUs, the onboard wizard can also install or start a managed vLLM container for you. | ||
|
|
||
| For an already-running vLLM server, run `$$nemoclaw onboard` and select **Local vLLM [experimental]** from the provider list. | ||
|
|
||
| If vLLM is already running, NemoClaw detects the running model and validates the endpoint. | ||
| When vLLM exposes runtime metadata such as `max_model_len`, NemoClaw uses that value for the `contextWindow` baked into `openclaw.json` unless you set `NEMOCLAW_CONTEXT_WINDOW` yourself. | ||
| If vLLM is not running and your host matches a DGX Spark or DGX Station managed profile, NemoClaw shows the **Install vLLM** or **Start vLLM** entry by default. | ||
| Generic Linux NVIDIA GPU hosts still require `NEMOCLAW_EXPERIMENTAL=1` or `NEMOCLAW_PROVIDER=install-vllm` before the managed entry appears. | ||
| In interactive runs, the managed vLLM path lists the supported registry models for your host profile before it pulls weights. | ||
| Press **Enter** to use the default model, or choose a numbered entry to serve another validated model with its matching `vllm serve` flags. | ||
| NemoClaw pulls the vLLM image, downloads model weights into `~/.cache/huggingface`, starts the `nemoclaw-vllm` container on `localhost:8000`, streams Hugging Face download progress, and polls `/v1/models` until the model is ready. | ||
| Managed DGX Spark and DGX Station profiles use the stable NGC `nvcr.io/nvidia/vllm:26.05.post1-py3` container image. | ||
| If `docker pull` output stops making progress, a watchdog stops the stalled pull instead of failing slow but active downloads on a fixed wall-clock timeout. | ||
| If vLLM never becomes ready, NemoClaw prints a short tail of the vLLM container logs before exiting. | ||
| The first run can take 10 to 30 minutes. | ||
| Later runs reuse the cached image and model weights. | ||
|
|
||
| Managed vLLM uses these profiles: | ||
|
|
||
| | Host profile | Default model | | ||
| |---|---| | ||
| | DGX Spark | `nvidia/Qwen3.6-35B-A3B-NVFP4` | | ||
| | DGX Station | `deepseek-ai/DeepSeek-V4-Flash` | | ||
| | Linux with an NVIDIA GPU | `nvidia/NVIDIA-Nemotron-3-Nano-4B-FP8` | | ||
|
|
||
| <Note> | ||
| NemoClaw forces the `chat/completions` API path for vLLM. | ||
| The vLLM `/v1/responses` endpoint does not run the `--tool-call-parser`, so tool calls arrive as raw text. | ||
| </Note> | ||
|
|
||
| ### Non-Interactive Setup | ||
|
|
||
| Use an already-running vLLM server: | ||
|
|
||
| ```bash | ||
| NEMOCLAW_PROVIDER=vllm \ | ||
| $$nemoclaw onboard --non-interactive | ||
| ``` | ||
|
|
||
| Install or start managed vLLM when NemoClaw detects a supported profile. | ||
| On DGX Spark and DGX Station, `NEMOCLAW_PROVIDER=install-vllm` is enough for non-interactive runs; add `NEMOCLAW_EXPERIMENTAL=1` on generic Linux NVIDIA GPU hosts. | ||
| Non-interactive runs use the profile default unless you set `NEMOCLAW_VLLM_MODEL`. | ||
|
|
||
| ```bash | ||
| NEMOCLAW_PROVIDER=install-vllm \ | ||
| $$nemoclaw onboard --non-interactive | ||
| ``` | ||
|
|
||
| NemoClaw records the model returned by vLLM's `/v1/models` endpoint. | ||
| Start vLLM with the model you want before onboarding if you manage the server yourself. | ||
|
|
||
| ### Override the Managed-vLLM Model | ||
|
|
||
| Managed vLLM serves the profile default unless you choose a different registry entry in the interactive picker or set an override for automation. | ||
| Export `NEMOCLAW_VLLM_MODEL=<slug>` before invoking the installer to choose a different model without prompting. | ||
| NemoClaw uses the matching `vllm serve` flags, including the reasoning parser, tool-call parser, and `--max-model-len`. | ||
| Recognized slugs are: | ||
|
|
||
| | Slug | Hugging Face model | Notes | | ||
| |---|---|---| | ||
| | `qwen3.6-27b` | `Qwen/Qwen3.6-27B-FP8` | Supported override | | ||
| | `qwen3.6-35b-a3b-nvfp4` | `nvidia/Qwen3.6-35B-A3B-NVFP4` | Default on the DGX Spark profile | | ||
| | `nemotron-3-nano-4b` | `nvidia/NVIDIA-Nemotron-3-Nano-4B-FP8` | Default on the generic Linux + NVIDIA GPU profile | | ||
| | `deepseek-v4-flash` | `deepseek-ai/DeepSeek-V4-Flash` | Default on the DGX Station profile | | ||
| | `deepseek-r1-distill-70b` | `deepseek-ai/DeepSeek-R1-Distill-Llama-70B` | Gated. Requires Hugging Face license acceptance | | ||
|
|
||
| The slug is case-insensitive; the full Hugging Face id is also accepted. | ||
| An unrecognized value fails fast with a list of valid slugs. | ||
|
|
||
| Gated models require a Hugging Face token; export it before onboarding so NemoClaw can forward it into the managed vLLM container: | ||
|
|
||
| ```bash | ||
| export HF_TOKEN=<your-hf-token> | ||
| NEMOCLAW_PROVIDER=install-vllm \ | ||
| NEMOCLAW_VLLM_MODEL=deepseek-r1-distill-70b \ | ||
| $$nemoclaw onboard --non-interactive | ||
| ``` | ||
|
|
||
| NemoClaw accepts `HUGGING_FACE_HUB_TOKEN` as an alternative. | ||
| The token check runs on the host before any `docker pull`, so a missing or empty token aborts onboarding before bandwidth is spent on a 401. | ||
|
|
||
| ### Add Managed-vLLM Serve Arguments | ||
|
|
||
| For advanced vLLM options that are not in the NemoClaw registry yet, export `NEMOCLAW_VLLM_EXTRA_ARGS_JSON` as a JSON array of individual non-blank `vllm serve` tokens. | ||
| NemoClaw trims and validates the array before pulling images or downloading models, shell-quotes each token, and appends the tokens after the registry defaults. | ||
|
|
||
| ```bash | ||
| NEMOCLAW_PROVIDER=install-vllm \ | ||
| NEMOCLAW_VLLM_EXTRA_ARGS_JSON='["--max-num-seqs","2","--disable-log-requests"]' \ | ||
| $$nemoclaw onboard --non-interactive | ||
| ``` | ||
|
|
||
| Use this for operator-owned tuning only. | ||
| If the selected vLLM image does not support an argument, the managed container exits and NemoClaw prints the vLLM log tail. | ||
|
|
||
| ## NVIDIA NIM (Experimental) | ||
|
|
||
| NemoClaw can pull, start, and manage a NIM container on hosts with a NIM-capable NVIDIA GPU. | ||
|
|
||
| <Warning> | ||
| On Linux arm64 DGX Spark and DGX Station hosts, some NIM images may not publish a `linux/arm64` manifest. | ||
| NemoClaw prints an advisory warning and still attempts the selected image. | ||
| If the registry reports that no matching platform manifest exists, select NVIDIA Endpoints, managed vLLM, or another provider with an image for the host architecture. | ||
| </Warning> | ||
|
|
||
| Set the experimental flag and run onboard. | ||
|
|
||
| ```bash | ||
| NEMOCLAW_EXPERIMENTAL=1 $$nemoclaw onboard | ||
| ``` | ||
|
|
||
| Select **Local NVIDIA NIM [experimental]** from the provider list. | ||
| NemoClaw filters available models by GPU VRAM, pulls the NIM container image, starts it, and waits for it to become healthy before continuing. | ||
| On hosts with mixed NVIDIA GPU models, the preflight summary shows each detected GPU model and the total VRAM so you can confirm which device class the model selection used. | ||
| On Docker 29.x or containerd image-store hosts, NemoClaw resolves the host-platform manifest digest before pulling multi-architecture NIM images when the registry exposes an index. | ||
| It pulls `repo@digest` and retags the local image so NGC attestation metadata on other architectures does not block the selected platform. | ||
| If the registry does not expose a matching index, NemoClaw falls back to the tag pull. | ||
|
|
||
| NVIDIA hosts NIM container images on `nvcr.io`, and `docker pull` requires NGC registry authentication. | ||
| If Docker is not already logged in to `nvcr.io`, onboard prompts for an [NGC API key](https://org.ngc.nvidia.com/setup/api-key) and runs `docker login nvcr.io` over `--password-stdin` so the key is never written to disk or shell history. | ||
| The prompt masks the key during input and retries one time on a bad key before failing. | ||
| In non-interactive mode, onboard exits with login instructions if Docker is not already authenticated; run `docker login nvcr.io` yourself, then re-run `$$nemoclaw onboard --non-interactive`. | ||
| If `NGC_API_KEY` or `NVIDIA_INFERENCE_API_KEY` is already exported, NemoClaw passes it into the managed NIM container through the process environment instead of command-line arguments. | ||
| If the NIM container exits before the health endpoint becomes ready, onboarding stops early and prints the last container log lines. | ||
| After NIM becomes healthy, NemoClaw reads `/v1/models` and uses the served model id for validation when it differs from the catalog name. | ||
| Unsafe served ids are rejected instead of being written into the sandbox config. | ||
|
|
||
| <Note> | ||
| NIM uses vLLM internally. | ||
| The same `chat/completions` API path restriction applies. | ||
| </Note> | ||
|
|
||
| ### Non-Interactive Setup | ||
|
|
||
| ```bash | ||
| NEMOCLAW_EXPERIMENTAL=1 \ | ||
| NEMOCLAW_PROVIDER=nim \ | ||
| $$nemoclaw onboard --non-interactive | ||
| ``` | ||
|
|
||
| To select a specific model, set `NEMOCLAW_MODEL`. | ||
|
|
||
| ## Timeout Configuration | ||
|
|
||
| Local inference requests use a default timeout of 180 seconds. | ||
| Large prompts on hardware such as DGX Spark can exceed shorter timeouts, so NemoClaw sets a higher default for Ollama, vLLM, NIM, and compatible-endpoint setup. | ||
|
|
||
| To override the timeout, set the `NEMOCLAW_LOCAL_INFERENCE_TIMEOUT` environment variable before onboarding: | ||
|
|
||
| ```bash | ||
| export NEMOCLAW_LOCAL_INFERENCE_TIMEOUT=300 | ||
| $$nemoclaw onboard | ||
| ``` | ||
|
|
||
| The value is in seconds. | ||
| NemoClaw bakes this setting into the sandbox at build time. | ||
| Changing it after onboarding requires re-running `$$nemoclaw onboard`. | ||
|
|
||
| `NEMOCLAW_LOCAL_INFERENCE_TIMEOUT` only governs the inference-server validation probe. | ||
| During local Ollama setup, NemoClaw treats host-side curl process timeouts as retryable probe failures and retries with a larger timeout before it reports a validation failure. | ||
| NemoClaw also retries Docker runtime detection with a longer `docker info` timeout before it chooses the local inference route. | ||
| The post-create readiness wait (image build, gateway upload, in-sandbox boot) has its own budget, `NEMOCLAW_SANDBOX_READY_TIMEOUT`, also defaulting to 180 seconds. | ||
| On hosts where the sandbox image takes minutes to build or upload, raise both settings together. | ||
| Examples include large quantized models, DGX Station first runs, and remote VMs over a slow link. | ||
|
|
||
| ```bash | ||
| export NEMOCLAW_LOCAL_INFERENCE_TIMEOUT=300 | ||
| export NEMOCLAW_SANDBOX_READY_TIMEOUT=600 | ||
| $$nemoclaw onboard | ||
| ``` | ||
|
|
||
| <AgentOnly variant="openclaw,hermes"> | ||
| If onboard ends with `Sandbox '<name>' was created but did not become ready within 180s`, refer to [Troubleshooting](../reference/troubleshooting#sandbox-onboard-times-out-with-did-not-become-ready-within-ns). | ||
| </AgentOnly> | ||
| For custom endpoints, vLLM, NVIDIA NIM, and inference timeout configuration, refer to [Set Up Local and Compatible Inference](local-compatible-inference-setup). |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Search for references to the old heading/anchor text across docs
rg -n "setup-details-for-local-and-compatible-providers|Setup Details for Local and Compatible Providers" docsRepository: NVIDIA/NemoClaw
Length of output: 686
🏁 Script executed:
#!/bin/bash
rg -n "setup-details-for-local-and-compatible-providers|Setup Details for Local and Compatible Providers" .Repository: NVIDIA/NemoClaw
Length of output: 690
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Inspect the relevant section and any explicit anchor overrides in the file.
grep -nE '^## |^{#|id=' docs/inference/inference-options.mdx || true
sed -n '300,315p' docs/inference/inference-options.mdx
# Search for the new heading text and the old slug across the repository.
rg -n "Configure Local and Compatible Providers|setup-details-for-local-and-compatible-providers" .
# Show the surrounding links that still use the old anchor.
sed -n '280,330p' docs/inference/use-local-inference.mdxRepository: NVIDIA/NemoClaw
Length of output: 5264
Update inbound links to the renamed section. docs/inference/use-local-inference.mdx still points at inference-options#setup-details-for-local-and-compatible-providers; change both references to #configure-local-and-compatible-providers so they jump to the section instead of the page top.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/inference/inference-options.mdx` around lines 306 - 308, The inbound
links are still using the old anchor for the renamed section, so they no longer
jump to the correct place. Update the references in the local inference docs
that point to inference-options so they use the new
`#configure-local-and-compatible-providers` anchor, and verify the link targets
still resolve from use-local-inference.mdx and any other matching references.
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage remains at 96%, unchanged from the branch. TypeScript / code-coverage/cliThe overall coverage in the branch remains at 77%, unchanged from the branch. Show a code coverage summary of the most impacted files.
Updated |
cv
left a comment
There was a problem hiding this comment.
Requesting changes on exact head 72311a8a792c3e9be8b6a979774ac6daf5eef4fa.
The structural split builds cleanly (npm run docs: 0 errors, two existing warnings), the generated variants/routes are current, DCO passes, and all commits are Verified. The remaining blockers are semantic and safety-related:
- Complete the link migration.
inference-options.mdx:275sends NIM/vLLM readers to the now Ollama-only page;deploy-to-remote-gpu.mdx:185points to a timeout anchor that moved;tool-calling-reliability.mdx:214and several vLLM/NIM release-note entries still route touse-local-inference. Mixed Ollama/vLLM entries should link to both guides. Add focused semantic-link coverage so valid-but-wrong destinations are caught. - Do not recommend an unauthenticated
llama-serveron0.0.0.0without a firewall/authenticated-proxy warning. Prefer loopback for the documented localhost topology and add a regression guard for public compatible-server binds. - Scope the
max_model_len/openclaw.jsonstatement inlocal-compatible-inference-setup.mdx:186. It currently renders into Hermes and Deep Agents variants even though their config surfaces differ. - Restore operational guidance dropped by the move: managed-vLLM reboot recovery, port
8000coverage by thelocal-inferencepreset, and the raw-GGUF non-interactive example/model-id guidance.
The exact-head GPT advisor independently reached merge_after_fixes on the first two items. Please address these while the PR remains draft, resolve the stale review threads, then rerun the docs checks and both advisors.
|
Narrowing the changes-requested review for current head Addressed on this head:
Still requested:
The review remains |
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/inference-options-docs.test.ts`:
- Around line 207-223: These tests are overfitted to production source text
instead of behavior, so replace the raw file-content assertions with checks
against the actual public/runtime behavior of the relevant paths. Use the
existing symbols like shouldForceCompletionsApi, LOCAL_INFERENCE_PROVIDERS
consumers, and the isSandboxInternalUrl-gated validation flow to exercise
outcomes indirectly, while keeping only the documentation-prose assertions as
literal markdown checks. This will make the tests resilient to refactors such as
renames, formatting changes, or boolean-expression reordering without changing
behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 6a1a6a9b-4b56-4593-a3bd-90f430e9d131
📒 Files selected for processing (7)
docs/index.ymldocs/inference/inference-options.mdxdocs/inference/local-compatible-inference-setup.mdxdocs/inference/set-up-sub-agent.mdxdocs/inference/tool-calling-reliability.mdxdocs/inference/use-local-inference.mdxtest/inference-options-docs.test.ts
✅ Files skipped from review due to trivial changes (5)
- docs/index.yml
- docs/inference/tool-calling-reliability.mdx
- docs/inference/local-compatible-inference-setup.mdx
- docs/inference/set-up-sub-agent.mdx
- docs/inference/use-local-inference.mdx
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
🧹 Nitpick comments (2)
test/inference-options-docs.test.ts (2)
266-272: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueFixed 450-char proximity window is brittle.
Matching "host-side endpoint probing is skipped" only within the first 450 characters after each
hostGatewayAliasoccurrence is an arbitrary heuristic — if the surrounding doc prose grows or is reordered, this could false-negative without any real behavioral regression. Consider anchoring on structural boundaries (e.g., paragraph/section split) instead of a raw character count.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/inference-options-docs.test.ts` around lines 266 - 272, The proximity check in the markdown test is using a brittle fixed 450-character window after each hostGatewayAlias occurrence. Update the assertion in inference-options-docs.test.ts to validate the surrounding documentation using structural boundaries from the markdown output (such as paragraph or section splits) instead of slice(0, 450), and keep the same hostGatewayAlias and “host-side endpoint probing is skipped during onboarding” content checks.
10-37: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low valueUse a direct ESM import for
probeOpenAiLikeEndpoint
test/inference-options-docs.test.ts:13-16can importprobeOpenAiLikeEndpointnormally;../src/lib/inference/onboard-probesalready exports it, socreateRequireis only needed fortypescript.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/inference-options-docs.test.ts` around lines 10 - 37, The `probeOpenAiLikeEndpoint` import in `test/inference-options-docs.test.ts` is using `createRequire` unnecessarily even though `../src/lib/inference/onboard-probes` already provides an ESM export. Update the top-level imports so `probeOpenAiLikeEndpoint` is brought in with a normal ESM import, and keep `createRequire` only for the `typescript` CommonJS load; adjust the surrounding setup in the same test module without changing the test behavior.Sources: Coding guidelines, Learnings
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@test/inference-options-docs.test.ts`:
- Around line 266-272: The proximity check in the markdown test is using a
brittle fixed 450-character window after each hostGatewayAlias occurrence.
Update the assertion in inference-options-docs.test.ts to validate the
surrounding documentation using structural boundaries from the markdown output
(such as paragraph or section splits) instead of slice(0, 450), and keep the
same hostGatewayAlias and “host-side endpoint probing is skipped during
onboarding” content checks.
- Around line 10-37: The `probeOpenAiLikeEndpoint` import in
`test/inference-options-docs.test.ts` is using `createRequire` unnecessarily
even though `../src/lib/inference/onboard-probes` already provides an ESM
export. Update the top-level imports so `probeOpenAiLikeEndpoint` is brought in
with a normal ESM import, and keep `createRequire` only for the `typescript`
CommonJS load; adjust the surrounding setup in the same test module without
changing the test behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: b442b865-273e-4ca6-8a56-b5cf46c0a619
📒 Files selected for processing (6)
docs/about/release-notes.mdxdocs/deployment/deploy-to-remote-gpu.mdxdocs/get-started/windows-preparation.mdxdocs/inference/local-compatible-inference-setup.mdxdocs/inference/set-up-sub-agent.mdxtest/inference-options-docs.test.ts
✅ Files skipped from review due to trivial changes (4)
- docs/deployment/deploy-to-remote-gpu.mdx
- docs/get-started/windows-preparation.mdx
- docs/inference/set-up-sub-agent.mdx
- docs/about/release-notes.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
- docs/inference/local-compatible-inference-setup.mdx
Addressed on exact head 3a6b5f7: link migration and semantic regression coverage completed, unsafe public bind guidance removed/guarded, agent scoping corrected, operational recovery/policy/model guidance restored, docs build passed, and both exact-head advisors are clean.
## Summary Restructure the inference documentation so dense explanations are broken into shorter task-oriented sections. Separate the Ollama workflow from self-hosted compatible-server, vLLM, and NIM setup, keeping every resulting inference page below 500 lines. ## Changes - Rewrite long inference-page paragraphs into concise sections and subsections while preserving commands and technical guidance. - Narrow `use-local-inference` to Ollama and move raw model-file and self-hosted-server guidance to `local-compatible-inference-setup`. - Register the distinct Ollama and self-hosted-server pages in the OpenClaw, Hermes, and Deep Agents navigation variants. - Clarify that compatible-endpoint onboarding may probe Responses before choosing the default Chat Completions runtime. - Scope post-ready sandbox route verification to local vLLM and Ollama, which are the providers it covers. - Explain the containerized-gateway alias's host-side validation limit. - Restore and test self-hosted setup, recovery, routing, and verification details that moved during the Ollama split. - Point the platform-docs reasoning-mode regression test at the self-hosted guide, where that configuration now lives. - Add focused assertions for self-hosted setup links, API-probe selection, sandbox route scope, gateway validation, retained setup content, the loopback-only raw model-server example, and vLLM tool-calling remediation. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [x] Doc only (includes code sample changes) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [x] Docs updated for user-facing behavior changes - [ ] Docs not applicable — justification: - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Reviewed the docs-only inference diff to preserve technical guidance, commands, links, and agent-specific content. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run check:diff` passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: `npx vitest run test/inference-options-docs.test.ts` passed with 10 tests and `npx vitest run test/generate-platform-docs.test.ts` passed with 19 tests. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [x] New doc pages include SPDX header and frontmatter (new pages only) --- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a new guide for setting up self-hosted, OpenAI-compatible inference servers, including endpoint onboarding validation, `NEMOCLAW_PREFERRED_API` behavior, setup variables, and post-onboarding verification. * Updated inference navigation to replace “Use Local Inference” with “Use Ollama for Local Inference” and “Set Up Self-Hosted Inference Servers” where applicable. * **Documentation** * Clarified checked-in agents.yaml manifest consumption and reconciliation behavior. * Refreshed multiple inference guides (local inference, provider switching, tool-calling reliability, model capability audit, sub-agent setup) and updated related cross-links. * **Tests** * Expanded docs navigation and content-semantic assertions for the new self-hosted inference flow. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Summary
Restructure the inference documentation so dense explanations are broken into shorter task-oriented sections.
Separate the Ollama workflow from self-hosted compatible-server, vLLM, and NIM setup, keeping every resulting inference page below 500 lines.
Changes
use-local-inferenceto Ollama and move raw model-file and self-hosted-server guidance tolocal-compatible-inference-setup.Type of Change
Quality Gates
Verification
Verifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpx vitest run test/inference-options-docs.test.tspassed with 10 tests andnpx vitest run test/generate-platform-docs.test.tspassed with 19 tests.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only)Signed-off-by: Miyoung Choi miyoungc@nvidia.com
Summary by CodeRabbit
New Features
NEMOCLAW_PREFERRED_APIbehavior, setup variables, and post-onboarding verification.Documentation
Tests