nemo-relay
nemo-relay
Generated from cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-ffi.
NeMo Relay Core
The core runtime library for the NeMo Relay multi-language agent framework. This crate provides execution scope management, lifecycle event tracking, and middleware pipelines (guardrails and intercepts) for tool and LLM calls.
Architecture
The runtime is organized around a global context (api::runtime::NemoRelayContextState) that holds all registered middleware (guardrails, intercepts, subscribers) and a scope stack (api::runtime::ScopeStack) that tracks the hierarchical execution context via task-local or thread-local storage.
Primary Entry Points
Most integrations start with the high-level lifecycle helpers in api:
api::scope::push_scope/api::scope::pop_scopecreate nested execution scopes.api::tool::tool_call_executeruns a complete tool middleware pipeline.api::llm::llm_call_executeandapi::llm::llm_stream_call_executerun non-streaming and streaming LLM middleware pipelines.api::registryexposes global and scope-local middleware registration APIs.api::subscriberexposes lifecycle event subscriber registration APIs.
Modules
api- Public API functions, handles, lifecycle event types, runtime helpers, and guardrail/intercept/subscriber registration. These are the primary entry points.error- Error types (error::FlowError) and theerror::Resulttype alias.json- JSON type alias (json::Json) and thejson::merge_jsonutility.observability- Built-in observability backends includingatif::AtifExporter,otel::OpenTelemetrySubscriber, andopeninference::OpenInferenceSubscriber.stream-stream::LlmStreamWrapper- a stream adapter that applies per-chunk intercepts and aggregates streaming LLM responses.
Middleware Pipeline
Both tool and LLM calls flow through a configurable middleware pipeline:
- Request intercepts - transform the request before execution
- Sanitize request guardrails - sanitize/normalize the request
- Conditional execution guardrails - gate execution (reject if criteria not met)
- Execution intercepts - optionally replace the execution function entirely
- Sanitize response guardrails - sanitize/normalize the response
All middleware is priority-ordered (ascending) and registered by name for easy addition and removal at runtime.
Modules
- api: Public API for the NeMo Relay runtime.
- codec: LLM codec types, traits, and built-in implementations.
- config_editor: Typed configuration editor metadata.
- error: Error types for the NeMo Relay runtime.
- json: JSON utilities for the NeMo Relay runtime.
- observability: Optional observability integrations for NeMo Relay Core.
- plugin: Generic plugin infrastructure for NeMo Relay runtimes.
- plugins: First-party plugin implementations for NeMo Relay Core.
- stream: Streaming LLM response wrapper.
Macros
- editor_config: Implements
EditorConfigfor a configuration type.