Fabric 0.6 Upgrade and Adapter Support
NeMo Helix 0.10 uses Fabric 0.6.0, Relay 0.11.0, and Harbor 0.24.0.
Hermes remains on Relay 0.10 in an isolated Python 3.14 environment,
using Fabric’s tested Hermes revision. HTTP allowlisting is not yet supported
for Hermes.
HTTP OTLP collectors in a cluster
Set telemetry.insecure_http_hosts in agent.yaml to allow a non-loopback
HTTP collector:
Each insecure_http_hosts entry is only a hostname or IP address; endpoint
is the full collector URL. Host matching is exact, so list subdomains separately.
Helix forwards the list to relay.observability.insecure_http_hosts; []
clears inherited allowances. Relay rejects other non-loopback HTTP trace
destinations. HTTPS needs no allowlist.
The list also applies to logs, metrics, ATOF and ATIF exports. HTTP sends telemetry and authentication headers unencrypted. Model-provider HTTP policy is separate.
Rebuild and redeploy existing agent images with the upgraded Helix wheel
to install Fabric 0.6.0 and Relay 0.11.0. No manual Relay config edit is needed.
Migrate agent registration
Replace nemo agents create with nemo agents register in scripts and CI;
there is no compatibility alias. In Python, replace
AgentsResource.create(...) with AgentsResource.register(...).
For Harbor, keep host and task-side Fabric versions identical. Exact
fabric_package pin mismatches fail preflight; requirement ranges are left to
the installer, not proven compatible. See
Harbor preflight and custom adapters
for typed configs, descriptor inspection and fabric_discovery_paths.
Persisted Relay observability v3 to v4
When preparing persisted registered-agent evaluations for Fabric, Harbor or Gym,
Helix upgrades the known Fabric 0.4 relay.observability.version: 3 shape to
version 4 in memory. New translations use version 4; stored inputs are not
rewritten and no bulk data migration is needed for this change.
This recognizes version 3 only, not arbitrary incompatible schemas. Standalone
fabric_config inputs must already validate against the installed Fabric, and
the host/task version requirement still applies.
Telemetry routing through gateways
Container deployments and registered-agent Harbor tasks rebase platform URLs onto the reachable gateway. Agent jobs similarly route Intake exports through their authentication proxy when one is used. The rewrite recognizes route paths, regardless of the original hostname:
- Model URLs containing
/apis/inference-gateway/use the gateway origin. - HTTP ATIF and OTLP trace/log/metric endpoints starting with
/apis/intake/use its scheme and host, retaining the Intake path and query. - ATOF endpoints follow the same rule; WebSocket URLs use
wsfor an HTTP gateway andwssfor HTTPS. - Independent collectors without those platform paths, file storage and S3 storage are left alone.
Both authoring telemetry and translated relay.observability exporters are
recognized; source files are not edited. Harbor’s collected Relay files and
Intake exports are separate delivery paths.
For missing traces, check the resolved execution config and connectivity from inside the container, then the exporter protocol, workspace/agent name, Intake/ClickHouse health and logs. Check independent collectors separately. A ready deployment or a saved trial artifact does not prove Intake delivery. See Collect Agent Traces.
Adapter availability is not runtime installation
Install harness runtimes on the platform host for subprocess execution or in the task/agent image for container execution—not only on the CLI machine.
Pi packaging and prerequisites
kind: pi and kind: nvidia.fabric.pi select nvidia.fabric.pi. The Python
wheels ship a host-side pi.fabric-adapter.json under
share/nemo-fabric/adapters/pi/ for contract inspection, not the Node runner
or Pi SDK. There is no nemo-agents-plugin-pi Python extra.
For a Pi-selected config, agent packaging
installs Node 22 (Pi requires Node >=22.19.0),
nemo-fabric-adapters-pi@^0.6.0, and the pi-ai, pi-coding-agent, pi-mcp
and pi-codemode SDK peers at 1.0.3 under @earendil-works. It links the npm descriptor into
Fabric discovery and adds Relay CLI 0.11 plus the Relay 0.11.0 Pi extension at
/opt/pi-relay-extension. Subprocess hosts must provision these themselves.
For startup failures, distinguish a readable host descriptor from an installed
runner; inspect Node/npm and container logs. Relay-enabled execution also needs
harnesses.pi.settings.relay_extension_path to resolve on that host. Unknown
models require models.default.extensions.api matching the endpoint protocol.
The descriptor declares native streaming, cancellation, updates and service
capabilities false; the shared Agents API is not a guarantee of those Pi
capabilities. Translation/template tests are not an end-to-end Pi release gate.