<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prem Naraindas</title>
    <description>The latest articles on DEV Community by Prem Naraindas (@premnaraindas).</description>
    <link>https://dev.to/premnaraindas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4245602%2Fc3ddcbde-e920-4a6a-b7df-424ee10c629d.jpg</url>
      <title>DEV Community: Prem Naraindas</title>
      <link>https://dev.to/premnaraindas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/premnaraindas"/>
    <language>en</language>
    <item>
      <title>Installing NVIDIA NeMo Helix on a clean machine: the five fixes I needed</title>
      <dc:creator>Prem Naraindas</dc:creator>
      <pubDate>Sun, 15 Nov 2026 08:24:26 +0000</pubDate>
      <link>https://dev.to/premnaraindas/installing-nvidia-nemo-helix-on-a-clean-machine-the-five-fixes-i-needed-1om9</link>
      <guid>https://dev.to/premnaraindas/installing-nvidia-nemo-helix-on-a-clean-machine-the-five-fixes-i-needed-1om9</guid>
      <description>&lt;p&gt;NVIDIA deprecated the NeMo Agent Toolkit in October 2026 and replaced it with three open-source projects: NeMo Relay, NeMo Fabric and NeMo Helix. Helix is the one with a web interface, NeMo Studio, for evaluating and improving agents.&lt;/p&gt;

&lt;p&gt;I wanted to see it for myself, so I installed it on a clean machine the way the documentation recommends. It took five fixes before the sample agent answered. None of them is hard once you know it. This post is the list, so you can skip the afternoon I spent finding them.&lt;/p&gt;

&lt;p&gt;Everything here was tested on NeMo Helix 0.9.1 on 14 November 2026, and each problem was rechecked against the &lt;code&gt;main&lt;/code&gt; branch the same day. I have reported them to NVIDIA, and the issue links are at the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ubuntu 24.04, four CPU cores, 16 GB of memory, no GPU&lt;/li&gt;
&lt;li&gt;Python 3.12, &lt;code&gt;uv&lt;/code&gt;, and Docker (Helix starts a ClickHouse container to store traces)&lt;/li&gt;
&lt;li&gt;A hosted model API for the agent to call&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You do not need a GPU to run the sample agent or an evaluation. You do need one to deploy or fine-tune a model inside NeMo Studio.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;p&gt;If you only want the working commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Install, with the extra the sample agent needs&lt;/span&gt;
uv tool install &lt;span class="s2"&gt;"nemo-helix[all,nemo-agents-plugin-deepagents]"&lt;/span&gt;

&lt;span class="c"&gt;# 2. Point the agent adapter at the right Python, for services and for jobs&lt;/span&gt;
&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;ADAPTER_PYTHON&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"$HOME/.local/share/uv/tools/nemo-helix/bin/python"&lt;/span&gt;
&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;VIRTUAL_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"$HOME/.local/share/uv/tools/nemo-helix"&lt;/span&gt;
&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"$VIRTUAL_ENV/bin:$PATH"&lt;/span&gt;

&lt;span class="c"&gt;# 3. Set up a model provider (use a hostname, not an IP address)&lt;/span&gt;
nemo setup

&lt;span class="c"&gt;# 4. Start and open NeMo Studio&lt;/span&gt;
nemo services start
&lt;span class="c"&gt;# http://localhost:8080/studio&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then in NeMo Studio: create the sample workspace, open the agent, and send a message in its chat tab. If the sample agent's default model is not one your API key can call, edit the agent configuration to one that is.&lt;/p&gt;

&lt;p&gt;The rest of this post explains each line.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 1: &lt;code&gt;nemo setup --auto&lt;/code&gt; rejects an IP address
&lt;/h2&gt;

&lt;p&gt;I pointed setup at a local model server by IP:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;NEMO_DEFAULT_INFERENCE_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://127.0.0.1:11434/v1
&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;NEMO_DEFAULT_INFERENCE_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;placeholder
nemo setup --auto
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It failed with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Invalid input:
  name  String should match pattern '^[a-z](?!.*--)[a-z0-9\-@.+_]{1,62}(?&amp;lt;!-)$'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The error does not say which name. Setup derives the provider's name from the host in the address, turning dots into hyphens, so &lt;code&gt;127.0.0.1&lt;/code&gt; becomes &lt;code&gt;127-0-0-1&lt;/code&gt;. Names must start with a letter, so it is rejected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; use a hostname. &lt;code&gt;http://localhost:11434/v1&lt;/code&gt; works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 2: the sample agent's runtime is not installed
&lt;/h2&gt;

&lt;p&gt;With the documented install, &lt;code&gt;uv tool install "nemo-helix[all]"&lt;/code&gt;, the sample agent deploys and shows as running. Every call then fails with an HTTP 502. The real error, in the adapter's output, is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RuntimeError: the 'deepagents' package is required for the Deep Agents adapter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The sample agent is built on the Deep Agents harness. The &lt;code&gt;all&lt;/code&gt; extra installs the adapter for that harness but not the library the adapter needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; add the extra that brings it in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv tool install --force &lt;span class="s2"&gt;"nemo-helix[all,nemo-agents-plugin-deepagents]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Fix 3: the adapter starts under the wrong Python
&lt;/h2&gt;

&lt;p&gt;The next call failed with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/usr/bin/python3: Error while finding module specification for
'nemo_fabric_adapters.deepagents.adapter'
(ModuleNotFoundError: No module named 'nemo_fabric_adapters')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note the path: &lt;code&gt;/usr/bin/python3&lt;/code&gt;. Helix runs agents through NeMo Fabric, and Fabric starts each agent adapter as a separate process. It picks the interpreter in this order: an &lt;code&gt;ADAPTER_PYTHON&lt;/code&gt; variable, then the active virtual environment, then a &lt;code&gt;python&lt;/code&gt; next to the running program, then &lt;code&gt;python3&lt;/code&gt; on the path.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;uv tool&lt;/code&gt; install sets neither variable. The third step should catch it, but it looks next to the resolved location of the interpreter, which is the system Python, not the tool environment. So it falls through to the system &lt;code&gt;python3&lt;/code&gt;, which has none of the packages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; tell Fabric which Python to use, before starting services.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;ADAPTER_PYTHON&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"$HOME/.local/share/uv/tools/nemo-helix/bin/python"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not specific to Helix. Any NeMo Fabric install that runs without an activated environment hits it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 4: jobs ignore &lt;code&gt;ADAPTER_PYTHON&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;With fix 3 in place the deployed agent answered. Running the same agent as a job did not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nemo agents execute --agent email-security-triage --input &lt;span class="s2"&gt;"..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The job ended with the same &lt;code&gt;/usr/bin/python3&lt;/code&gt; error. Jobs are started with a short list of environment variables carried over from the services process, and &lt;code&gt;ADAPTER_PYTHON&lt;/code&gt; is not on it. &lt;code&gt;PATH&lt;/code&gt; and &lt;code&gt;VIRTUAL_ENV&lt;/code&gt; are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; set those two as well, so jobs find the right Python through the virtual environment rule.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;VIRTUAL_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"$HOME/.local/share/uv/tools/nemo-helix"&lt;/span&gt;
&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"$VIRTUAL_ENV/bin:$PATH"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then restart services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 5: the sample agent's default model
&lt;/h2&gt;

&lt;p&gt;The sample agent's configuration names a default model. With my API key, the hosted API returned a 404 for that model. I have not reported this one, because it may depend on which models a key is entitled to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; edit the agent's configuration to name a model your key can call, and register it again.&lt;/p&gt;

&lt;p&gt;A small local model on CPU was too slow for the sample agent, which has a two-minute limit. Use a hosted model or a GPU.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two more things worth knowing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Failed runs are listed as successful.&lt;/strong&gt; While I was working through the fixes above, every failed call showed in the trace list with status &lt;code&gt;success&lt;/code&gt; and zero errors, and filtering by error returned nothing. The error is recorded in the event file for the run, but it is lost on the way to the trace store. Until that is fixed, do not rely on the status column to find failures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use full paths when registering an agent on 0.9.1.&lt;/strong&gt; Registering or redeploying with a bare file name crashed, and redeploy removed the agent before it crashed. NVIDIA has already fixed this on &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was it worth it?
&lt;/h2&gt;

&lt;p&gt;Yes. Once it runs, the evaluation and trace tooling is the best part of the stack. I ran an experiment that compared models on a sample dataset end to end, and every agent run is laid out step by step.&lt;/p&gt;

&lt;p&gt;It helps to know what Helix is. It is a workbench for engineers who already have agents. There is no visual builder: agents are configuration files that you register from the command line or with a coding assistant. All three projects were before version 1.0 when I tested them, so pin your versions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The reports
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/NVIDIA-NeMo/nemo-helix/issues/4093" rel="noopener noreferrer"&gt;nemo-helix 4093&lt;/a&gt;: &lt;code&gt;nemo setup --auto&lt;/code&gt; and IP addresses (fix 1)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/NVIDIA-NeMo/nemo-helix/issues/4092" rel="noopener noreferrer"&gt;nemo-helix 4092&lt;/a&gt;: the &lt;code&gt;all&lt;/code&gt; extra and &lt;code&gt;deepagents&lt;/code&gt; (fix 2)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/NVIDIA/NeMo-Fabric/issues/635" rel="noopener noreferrer"&gt;NeMo-Fabric 635&lt;/a&gt;: the adapter starts under the system Python (fix 3)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/NVIDIA-NeMo/nemo-helix/issues/4094" rel="noopener noreferrer"&gt;nemo-helix 4094&lt;/a&gt;: jobs and &lt;code&gt;ADAPTER_PYTHON&lt;/code&gt; (fix 4)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/NVIDIA-NeMo/nemo-helix/issues/4091" rel="noopener noreferrer"&gt;nemo-helix 4091&lt;/a&gt;: failed runs stored as success&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you hit something I did not, I would like to hear about it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I am the founder of Katonic AI. We build an enterprise agent platform whose agents compile to NVIDIA's open agent software, which is why we test that software ourselves. A longer version of this, with what each of the three projects does, is on &lt;a href="https://www.katonic.ai/blog/nvidia-nemo-helix-relay-fabric" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nvidia</category>
      <category>ai</category>
      <category>agents</category>
      <category>python</category>
    </item>
  </channel>
</rss>
