Use the Hermes Agent Adapter
The NVIDIA NeMo Fabric nvidia.fabric.hermes adapter runs Hermes Agent through
its Python SDK. The adapter maps normalized NeMo Fabric configuration into
Hermes Agent models, tools, skills, Model Context Protocol (MCP) servers,
sessions, and Relay telemetry.
Install the Adapter
The adapter package supports Python 3.11 through 3.14. Use Hermes Agent v0.22.5 with Python 3.14. This release includes dependency security fixes absent from v2026.9.24 and supports Relay telemetry and streaming. Hermes Agent 0.20 and later is not installable from PyPI. Follow the Hermes Agent installation guide and select v0.22.5.
Install the NeMo Fabric runtime and bare Hermes adapter into the Python environment that runs Hermes Agent:
These packages do not install Hermes Agent. If a different environment runs NeMo Fabric, install only the bare adapter in the Hermes Agent environment:
The adapter’s relay and full extras install nemo-relay>=0.10,<0.11. Install Hermes Agent separately in the same environment. Keep that environment separate from applications that use Relay 0.11 for other NeMo Fabric adapters. The adapter reports a compatibility error at startup if Relay telemetry is enabled with an unsupported Hermes or Relay installation.
For local NeMo Fabric development, run the following command from the repository root. The recipe checks out Hermes Agent v0.22.5 at commit bf0203a794a07aac3ff764972ab9087baa4e4f4e and creates an isolated Python 3.14 environment with the adapter’s relay extra. Hermes declares its Python package version as 0.0.0; use the Git tag and commit to identify the release when reviewing scanner results.
For separate environments, set ADAPTER_PYTHON in the runtime environment to
the adapter environment’s Python interpreter. Use
matching NeMo Fabric release versions for the runtime and adapter package
unless a different pairing has been explicitly validated.
Configure the Adapter
Select the Hermes Agent harness integration in HarnessConfig:
Use normalized FabricConfig fields to configure the model, workspace, skills,
MCP servers, replacement system instructions, turn limit, and native tool
selectors, and telemetry. The adapter rejects append system instructions.
During run-plan resolution, NeMo Fabric Core validates the
models.<role>.top_p (from 0 through 1) and positive
models.<role>.max_tokens fields against the Hermes descriptor before
runtime startup. Hermes reads these prevalidated values from AgentConfig. A
model-level max_tokens overrides the harness-level default for the selected
model role.
The Hermes descriptor validates the following harness.settings fields:
For example:
Use runtime.max_turns to set the Hermes agent-loop budget. The adapter maps
that normalized field to AIAgent.max_iterations; max_iterations is not a
Hermes harness setting.
Understand the Runtime Lifecycle
Each NeMo Fabric runtime creates one Hermes Agent AIAgent and one SessionDB.
Ordered invocations reuse those objects and the conversation history until the
runtime stops. The adapter finalizes and flushes Relay subscriber output after
each invocation so ATOF and ATIF artifacts are complete when it returns.
With a live Relay runtime, Hermes emits compaction when a tracked compaction
rewrites history or provider state. It emits compaction.attempt when the
attempt is blocked, skipped, fails, or aborts without a rewrite.
For the complete configuration and lifecycle reference, refer to the Hermes Agent adapter guide.
Runtime Health
Fabric.check() supports live, active, and ready. The adapter checks native agent and database ownership, the initialized invocation interface, and a fresh get_activity_summary() diagnostic response.
Refer to the SDK health-check overview for shared behavior and a comparison of native evidence across adapters.