Skip to navigation

Use the Hermes Agent Adapter

View as Markdown

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 supports Python 3.11 through 3.14. Hermes Agent 0.20 and later is no longer installable from PyPI. For ordinary invocations, follow the Hermes Agent installation guide. The published Hermes v2026.9.24 release requires Relay 0.8 and does not support this adapter’s Relay telemetry or streaming path.

Install the NeMo Fabric runtime and bare Hermes adapter into the Python environment that runs Hermes Agent:

pip install "nemo-fabric[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:

python -m pip install nemo-fabric-adapters-hermes

The adapter package provides relay and full extras for Relay 0.9. Use them only with a Hermes Agent checkout that supports Relay 0.9; the published release requires a conflicting Relay version. Neither extra installs Hermes Agent. If Relay telemetry is enabled with an incompatible Hermes or Relay installation, the adapter fails at startup with a compatibility error.

For Relay telemetry or streaming in local NeMo Fabric development, run the following command from the repository root. The recipe checks out the merged, unreleased Hermes Relay 0.9 revision and creates an isolated Python 3.14 environment with the adapter’s relay extra. Update it to a compatible release when one is available:

just install-hermes-agent
export ADAPTER_PYTHON="$PWD/.venv-hermes/bin/python"

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:

from nemo_fabric import HarnessConfig
harness = HarnessConfig(adapter_id="nvidia.fabric.hermes")

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:

SettingTypeDefaultDescription
reasoning_configobject{"effort": "none"}Configures Hermes model reasoning. The closed object accepts an optional enabled boolean and an optional effort value of none, minimal, low, medium, high, or xhigh.
plugins_enabledarray of nonempty strings[]Enables Hermes plugins by identifier. Relay telemetry uses the generated plugins.toml; do not list the removed observability/nemo_relay plugin.
save_trajectoriesbooleanfalseEnables Hermes-native JSONL conversation trajectory saving. This is separate from normalized NeMo Fabric telemetry.
max_tokenspositive integer512Limits the number of tokens in each Hermes model response.
terminal_timeoutpositive number60Limits a Hermes terminal operation in seconds.

For example:

from nemo_fabric import HarnessConfig
harness = HarnessConfig(
adapter_id="nvidia.fabric.hermes",
settings={
"reasoning_config": {"enabled": True, "effort": "medium"},
"plugins_enabled": ["disk-cleanup"],
"save_trajectories": True,
"max_tokens": 1024,
"terminal_timeout": 90,
},
)

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.

For the complete configuration and lifecycle reference, refer to the Hermes Agent adapter guide.