nemo-relay-plugin-build

Build and package reusable NeMo Relay plugins with deterministic validation and rollback-safe registration.

3.2k|370|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/NVIDIA/skills --skill nemo-relay-plugin-build
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nemo-relay-plugin-build
Source: https://github.com/NVIDIA/skills/tree/main/skills/nemo-relay-plugin-build
Command: npx skills add https://github.com/NVIDIA/skills --skill nemo-relay-plugin-build

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Teams repeatedly copy runtime behavior such as guardrails, subscribers, and intercepts into NeMo Relay application startup code, making it hard to validate, toggle, or roll back. This Skill guides the packaging of that behavior as a config-activated plugin with deterministic validation and safe registration.

Core Features & Use Cases

  • Delivery Model Selection: Choose between an embedded component, a manifest-backed rust_dynamic native plugin, or a worker gRPC plugin with process isolation.
  • Deterministic Validation: Define side-effect-free config validation that returns structured diagnostics before any runtime behavior changes, including for disabled components.
  • Rollback-Safe Registration: Register subscribers, guardrails, and intercepts through PluginContext so partial activation failures roll back cleanly.
  • Use Case: A platform team needs a content-filtering policy toggled per environment through config, with clear operator error messages and validation that runs even when the component is disabled.

Quick Start

Ask your agent to build a NeMo Relay plugin that registers a sanitization guardrail with a stable plugin kind, JSON-compatible config, and validation before registration.

Frequently Asked Questions about nemo-relay-plugin-build

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a NeMo Relay plugin with config validation?

Choose a stable plugin kind, define a minimal JSON-compatible config shape, and implement side-effect-free validation that returns structured diagnostics. Register behavior through PluginContext only after validation passes, so failures roll back cleanly.

Should I use an embedded component, rust_dynamic, or worker plugin in NeMo Relay?

Use an embedded component when behavior ships with the Relay host application. Use rust_dynamic for a trusted in-process native Rust library, or a worker plugin for a local grpc-v1 process when the package ships independently of the host.

What is the difference between NeMo Relay 0.7 and 0.8 native plugin callbacks?

Relay 0.7 keeps typed Rust middleware synchronous and uses the raw ABI v3 completion path for async work, constrained to compat.relay >=0.7,<0.8. Relay 0.8 returns futures through the typed SDK on an SDK-owned Tokio executor, constrained to >=0.8.0,<1.0.

When should I not build a NeMo Relay plugin?

Skip a plugin when behavior is temporary or tenant-scoped, where scope-local middleware fits better, or when you only need first-time instrumentation of tool or LLM calls. Plugins are for reusable process-level behavior activated by shared config.

Is a NeMo Relay worker plugin a security sandbox?

No. A worker plugin provides process isolation through a local grpc-v1 boundary, but it is not a security sandbox. Native rust_dynamic plugins are trusted C-ABI extensions running inside the Relay process with no isolation at all.

How do I add structured config editing for a dynamic NeMo Relay plugin?

Declare the config_schema capability in relay-plugin.toml and reference a local Draft 7 or Draft 2020-12 JSON Schema file from [config_schema].path. Plugins without a schema remain editable as raw JSON objects in nemo-relay plugins edit.