Crate nemo_flow_adaptive#
- crate nemo_flow_adaptive#
NeMo Flow Adaptive
Adaptive config helpers and core-plugin integration for NeMo Flow. Adaptive behavior is enabled through the generic core plugin system.
This crate provides the adaptive runtime, persistence abstractions, learner implementations, and ACG analysis types used to derive and apply runtime hints from observed NeMo Flow executions.
Modules
Re-exports
nemo_flow_adaptive::context_helpers::LATENCY_SENSITIVITY_POINTERnemo_flow_adaptive::context_helpers::read_manual_latency_sensitivitynemo_flow_adaptive::context_helpers::resolve_shared_parent_scope_identitynemo_flow_adaptive::context_helpers::set_latency_sensitivity
Structs and Unions
- struct AdaptiveRuntime#
Hosted adaptive runtime that registers NeMo Flow plugin components.
This type validates configuration, builds the configured storage backend, registers intercepts and subscribers, and maintains the hot cache used by adaptive features on the request path.
Implementations
- impl AdaptiveRuntime#
Functions
- fn bind_scope(&mut self, scope_uuid: Uuid) -> Result<()>#
Bind the runtime’s ACG request rewrite to an active scope.
External framework integrations can bind the runtime to a session scope and then invoke
nemo_flow.llm.request_intercepts(...)explicitly at the provider boundary. Once any scope is bound, this runtime’s hosted ACG execution intercept becomes pass-through so external frameworks do not double-translate requests.Errors
Returns an error when the runtime is not yet registered, when ACG is not configured for this runtime, or when the scope-local request intercept cannot be constructed or registered.
- fn build_cache_request_facts(&self, agent_id: &str, provider: &str, annotated_request: &AnnotatedLlmRequest) -> Option<CacheRequestFacts>#
Build cache-diagnostics facts for an annotated request.
Parameters
agent_id: Agent identifier associated with the request.provider: Logical provider name associated with the request.annotated_request: Annotated request to analyze.
Returns
Some(CacheRequestFacts)when enough hot-cache state is available to derive them andNoneotherwise.
- fn deregister(&mut self) -> Result<()>#
Deregister all previously registered adaptive features.
Returns
A
Resultthat isOk(())after registrations have been rolled back.Errors
Returns any rollback error surfaced by the hosted plugin system.
- async fn new(config: AdaptiveConfig) -> Result<Self>#
Create a new adaptive runtime from configuration.
Parameters
config: Adaptive runtime configuration to validate and apply.
Returns
A
Resultcontaining a newAdaptiveRuntime.Errors
Returns
AdaptiveError::InvalidConfigwhen validation reports errors, or any backend-construction error produced while building the configured state backend.
- async fn register(&mut self) -> Result<()>#
Register all configured adaptive features with the shared runtime.
Returns
A
Resultthat isOk(())when registration succeeds.Errors
Returns any error raised while seeding state or registering features.
- fn report(&self) -> &ConfigReport#
Return the configuration report captured during construction.
Returns
The
ConfigReportassociated with this runtime.
- async fn shutdown(mut self) -> Result<()>#
Deregister the runtime and consume it.
Returns
A
Resultthat isOk(())when shutdown completes.Errors
Propagates any error returned by
Self::deregister.
- fn validate_config(config: &AdaptiveConfig) -> ConfigReport#
Validate an adaptive runtime configuration without constructing a runtime.
Parameters
config: Configuration to validate.
Returns
A
ConfigReportcontaining validation diagnostics.
- fn wait_for_idle(&self)#
Block until the telemetry drain has processed all pending events.
Notes
This method performs a simple polling wait and is intended for tests, shutdown paths, or other coordination points.
Traits implemented
- impl fmt::Debug for AdaptiveRuntime#
- impl Drop for AdaptiveRuntime#