Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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.0rc6.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.0rc6-cp311-abi3-win_arm64.whl (12.6 MB view details)

Uploaded CPython 3.11+Windows ARM64

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

Uploaded CPython 3.11+Windows x86-64

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

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

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

Uploaded CPython 3.11+musllinux: musl 1.2+ ARM64

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

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

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

Uploaded CPython 3.11+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: nemo_relay-0.7.0rc6.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.0rc6.tar.gz
Algorithm Hash digest
SHA256 35ea6cc66e5f84b7370d5b7690ffda26dcb6e51cc3b6aaf855d7fb51a98067ad
MD5 d1f254f577a4c2c13dd3784c992da559
BLAKE2b-256 2bb191ca632e370055d3c18903a69ee789abab6c8bed570123bc13636e23fdd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0rc6.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.0rc6-cp311-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0rc6-cp311-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 f819a1744fa7486d8754d4c67307845010c9ff19f119e1a0c585474b6a98984c
MD5 1e3113a7dbd7bae6146243e300294ee8
BLAKE2b-256 207f0b5745e486cfeaeb2260546bada75cc2b0dc60c5b91b08ea98a3dd657b54

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0rc6-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.0rc6-cp311-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0rc6-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c7434131351cdcbebfa7a8074c2b1bda34402c38507f8395d8e98da2d7105b97
MD5 7a4f87d73804a741cfde3b518e42f328
BLAKE2b-256 b3e653472228f2b13e86f5a2386d1d6e30c3aa39f4c60dd544f7f2bb3d485a37

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0rc6-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.0rc6-cp311-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0rc6-cp311-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cd6a4abb338dd4dcc7956be533c534ea23fd2d305042b3d50030f6e1b6139097
MD5 ab467ec90849fc9e6fe85fd169aff24d
BLAKE2b-256 353d45489c7cd09c322c46fc770a01337a6f77f544b57b3ede6d2d23f2e2d5cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0rc6-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.0rc6-cp311-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0rc6-cp311-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 35e6dd41b5defad53a15cac85f22f5dae5bb6576b64f3dd331ea0fd84fac869d
MD5 9816108d32a1525fb61fde8e92516abb
BLAKE2b-256 364edd000781abf56229834b804998a5841c3f3e29b45d19783fd2454347e637

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0rc6-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.0rc6-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0rc6-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09c03befd27ea88f50177fe1d6eb2c12160f95b0012b1f43a53727e246b544f5
MD5 8dd7aa69b0300bb13bbc34840ef6539a
BLAKE2b-256 7d0612f7a5f644e0a4df7089f9fa683926acc791542a7534c284c9d2164cd0c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0rc6-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.0rc6-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0rc6-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5e65c4a5272efc2c1ecb6e1e70f402c8a4e30dc3929c191ceb0aa44aaa9a5f12
MD5 3b03518141e4520cad42b916ff0b8a28
BLAKE2b-256 602e8f0295aa7748ff68f0125524d5d7b92fd2318b8aa66a52ae66b0723d4f27

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0rc6-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.0rc6-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nemo_relay-0.7.0rc6-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7855246c872dfc06527e0fc1d1aaf5e802ab8408c6ad2c2a627769a27f347226
MD5 521b1c2a7852540a1a5513b160db33d5
BLAKE2b-256 3d6680a25c17169091802d8c6724f1731870178d028138509b4dee2f3abc7c50

See more details on using hashes here.

Provenance

The following attestation bundles were made for nemo_relay-0.7.0rc6-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.

Release history Release notifications | RSS feed

0.7.3

8 files

0.7.2

8 files

0.7.1

8 files

0.7.0

8 files

This release

0.7.0rc6 This release

8 files

0.6.0

8 files

0.5.0

5 files

0.4.0

5 files

0.3.0

5 files

Supported by

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