Skip to main content

License GitHub Release Codecov PyPI npm node Crates.io Crates.io Crates.io Ask DeepWiki

NeMo Relay

nemo-relay is the NeMo Relay package for Python applications. It gives Python code access to a portable agent runtime for execution scopes, middleware, plugins, lifecycle events, adaptive behavior, and observability around tool and LLM calls.

The package wraps the shared Rust runtime, so Python applications use the same runtime semantics as the Rust and Node.js surfaces.

Why Use It?

Use the Python binding for the following tasks:

  • Own execution context in Python: Group agent, tool, and LLM work into one scope tree from Python application code.
  • Package policy around callbacks: Use guardrails and intercepts to block work, sanitize observability payloads, rewrite requests, or wrap execution.
  • Emit one lifecycle stream: Send runtime events to in-process subscribers, Agent Trajectory Interchange Format (ATIF), or typed OpenTelemetry workflows.
  • Integrate without a framework migration: Wrap framework or provider callbacks while preserving the application’s orchestration model.

What You Get

The Python package provides the following capabilities:

  • Scope, tool, and LLM helpers: Managed boundaries that emit lifecycle events and run middleware in a consistent order.
  • Middleware APIs: Guardrails and intercepts for tool and LLM requests, responses, and execution, plus mark and scope event sanitizers for data, category_profile, and metadata.
  • Subscribers and exporters: OpenTelemetrySubscriber accepts one required full, gen_ai, or openinference endpoint configuration. The nemo_relay.observability helpers configure plugin-owned endpoint fan-out.
  • Plugin and typed helpers: Public modules for plugins, codecs, typed wrappers, adaptive runtime behavior, and observability plugin configuration.
  • Shared Rust runtime semantics: Python behavior aligned with the Rust and Node.js surfaces.

Installation

Install the published package with uv:

uv add nemo-relay

If you are not using uv, install it with pip:

pip install nemo-relay

Optional Dependencies

LangChain Integration

LangChain integration is available with the langchain extra:

# With uv
uv add "nemo-relay[langchain]"

# With pip
pip install "nemo-relay[langchain]"

LangGraph Integration

LangGraph integration is available with the langgraph extra, this builds upon and includes the langchain extra as well.

# With uv
uv add "nemo-relay[langgraph]"

# With pip
pip install "nemo-relay[langgraph]"

Deep Agents Integration

Deep Agents integration is available with the deepagents extra. This extra builds upon and includes the langgraph and langchain extras.

# With uv
uv add "nemo-relay[deepagents]"

# With pip
pip install "nemo-relay[deepagents]"

LangChain NVIDIA Integration

The LangChain NVIDIA extra builds upon the langchain extra adding a compatible version of the langchain-nvidia-ai-endpoints package.

# With uv
uv add "nemo-relay[langchain-nvidia]"

# With pip
pip install "nemo-relay[langchain-nvidia]"

To install this along with the langgraph extra, use:

# With uv
uv add "nemo-relay[langgraph,langchain-nvidia]"
# With pip
pip install "nemo-relay[langgraph,langchain-nvidia]"

Getting Started

Register a subscriber, create a scope, and emit a mark event:

import nemo_relay


def on_event(event) -> None:
    print(f"{event.kind} {event.name}")


nemo_relay.subscribers.register("printer", on_event)

with nemo_relay.scope.scope("demo-agent", nemo_relay.ScopeType.Agent) as handle:
    nemo_relay.scope.event("initialized", handle=handle, data={"binding": "python"})

nemo_relay.subscribers.flush()
nemo_relay.subscribers.deregister("printer")

Native subscriber delivery is asynchronous, so call nemo_relay.subscribers.flush() before you read subscriber output or exit. From an asyncio task, use await nemo_relay.subscribers.flush_async() so async event sanitizers can continue running on that event loop.

For host integrations that need a serialized event shape, consume the canonical JSON payload from the subscriber event object:

import json
import nemo_relay


def on_event(event) -> None:
    payload = event.to_dict()
    print(payload["kind"], payload["name"])
    assert json.loads(event.to_json()) == payload


nemo_relay.subscribers.register("host-exporter", on_event)
try:
    with nemo_relay.scope.scope("demo-agent", nemo_relay.ScopeType.Agent):
        nemo_relay.scope.event("initialized", data={"binding": "python"})
finally:
    nemo_relay.subscribers.flush()
    nemo_relay.subscribers.deregister("host-exporter")

Package Surface

The public package modules are:

  • nemo_relay.scope
  • nemo_relay.tools
  • nemo_relay.llm
  • nemo_relay.guardrails
  • nemo_relay.intercepts
  • nemo_relay.subscribers
  • nemo_relay.plugin
  • nemo_relay.adaptive
  • nemo_relay.observability
  • nemo_relay.typed
  • nemo_relay.codecs

Integrations

  • nemo_relay.integrations.langchain
  • nemo_relay.integrations.langgraph
  • nemo_relay.integrations.deepagents

The compiled extension is exposed as nemo_relay._native.

Documentation

NeMo Relay Documentation: https://docs.nvidia.com/nemo/relay

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nemo_relay-0.7.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nemo_relay-0.7.0-cp311-abi3-win_arm64.whl (8.4 MB view details)

Uploaded CPython 3.11+Windows ARM64

nemo_relay-0.7.0-cp311-abi3-win_amd64.whl (8.8 MB view details)

Uploaded CPython 3.11+Windows x86-64

nemo_relay-0.7.0-cp311-abi3-musllinux_1_2_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ x86-64

nemo_relay-0.7.0-cp311-abi3-musllinux_1_2_aarch64.whl (10.3 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ ARM64

nemo_relay-0.7.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ x86-64

nemo_relay-0.7.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.4 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ ARM64

nemo_relay-0.7.0-cp311-abi3-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

Details for the file nemo_relay-0.7.0.tar.gz.

File metadata

  • Download URL: nemo_relay-0.7.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for nemo_relay-0.7.0.tar.gz
Algorithm Hash digest
SHA256 9c6e1bc74a7e826f252f224b4a49e82ceb929930d27a4eabedf2a6e1dbc188b3
MD5 2f58cdfb3cd5d9f750e50bb5b63b8581
BLAKE2b-256 7d3267620911976eefa21b7a6aee5813b10532283541835694f15cab8d198eba

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0.tar.gz:

Publisher: ci.yaml on NVIDIA/NeMo-Relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nemo_relay-0.7.0-cp311-abi3-win_arm64.whl.

File metadata

  • Download URL: nemo_relay-0.7.0-cp311-abi3-win_arm64.whl
  • Upload date:
  • Size: 8.4 MB
  • Tags: CPython 3.11+, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for nemo_relay-0.7.0-cp311-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 5b887d026157814489d1400dfebb4676db50c5a127d0dd269459778e567c11db
MD5 e9341bae0b4a9e328f21421987583fd6
BLAKE2b-256 06a7e303d613508080d20562c087d915ad26f81b54daf6513cedc77ed915a5e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0-cp311-abi3-win_arm64.whl:

Publisher: ci.yaml on NVIDIA/NeMo-Relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nemo_relay-0.7.0-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: nemo_relay-0.7.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for nemo_relay-0.7.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e0421bbc95acd37af827d21688030776197182a319e88b6a4e9915c680d554b0
MD5 90905f6ee8d14838805650f8a2195aac
BLAKE2b-256 7b911f83999b30112dbad92e8ba6f030a6cc55ff25ea8011f032cd132d33aaa0

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0-cp311-abi3-win_amd64.whl:

Publisher: ci.yaml on NVIDIA/NeMo-Relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nemo_relay-0.7.0-cp311-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0-cp311-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6712d369a92773833ca6e571caf7754b515956c4db770e0638ed025fcb8b5a67
MD5 f6a0d44c6c810f285404ddb2440ff401
BLAKE2b-256 a22d85442a75ad36e29141ca26eb9ec12ab8c63873f2a96955ea0e2fa4e56aa2

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0-cp311-abi3-musllinux_1_2_x86_64.whl:

Publisher: ci.yaml on NVIDIA/NeMo-Relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nemo_relay-0.7.0-cp311-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0-cp311-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2b68ad6bbada6ae9e02e240597aa877a90f3d89b5d6a2f33f55c5678f1c8783f
MD5 7b995df180f23a36b333c6568c4950af
BLAKE2b-256 764689a0735f3555aeca0dd78c6f7f6c064932594eabbac3c45e4ef9af4b88f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0-cp311-abi3-musllinux_1_2_aarch64.whl:

Publisher: ci.yaml on NVIDIA/NeMo-Relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nemo_relay-0.7.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a69ec23f203421f19797ea1a9693f11ae3c9a0c270cbe4920793de2d9ef04d1
MD5 73cb7753ed1beae233f6b4b6dad08323
BLAKE2b-256 f52e239a7d9275ef4582921b0c2e3c31f659518c9682f48b322c2100f898849d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yaml on NVIDIA/NeMo-Relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nemo_relay-0.7.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 323557325cbb11a3b8bf48136d8195faee0912e02d01903b54b7b78edf8004e0
MD5 51da2d5b60a90341d73a7131f134dab2
BLAKE2b-256 f14bf9553050dd6d18c067ff391a4fa706afe557555c117225d204e47ea13bd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yaml on NVIDIA/NeMo-Relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nemo_relay-0.7.0-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ceebe7e6ccb0f3c0b0602191fc3359374e44c4eddb71483e18b7aeb62d8c0957
MD5 50d201e9f096d5bcbf52d61631c32786
BLAKE2b-256 773e7c72ed71f88bffa7d660c56c88f8eaebdf1f6413a423882ab3c1fca87c5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: ci.yaml on NVIDIA/NeMo-Relay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page