> This page is for NeMo Relay, version v0.10.0.
> For other versions, use one of these documentation indexes:
> - Latest (v0.10.0) (default): https://docs.nvidia.com/nemo/relay/latest/llms.txt
> - dev: https://docs.nvidia.com/nemo/relay/dev/llms.txt
> - v0.10.0: https://docs.nvidia.com/nemo/relay/v0.10.0/llms.txt
> - v0.9.4: https://docs.nvidia.com/nemo/relay/v0.9.4/llms.txt
> - v0.8.4: https://docs.nvidia.com/nemo/relay/v0.8.4/llms.txt
> - v0.7.3: https://docs.nvidia.com/nemo/relay/v0.7.3/llms.txt
> - v0.6.0: https://docs.nvidia.com/nemo/relay/v0.6.0/llms.txt
> - v0.5.0: https://docs.nvidia.com/nemo/relay/v0.5.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/relay/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server.

# Function analyze_stability

> Analyze prompt-block stability across multiple observations.

Generated from `cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-pii-redaction -p nemo-relay-ffi -p nemo-relay-types -p nemo-relay-plugin -p nemo-relay-worker-proto -p nemo-relay-worker`.

<pre />

Analyze prompt-block stability across multiple observations.

The analysis computes one stability score per span, ordered by the first sequence index at which that span appeared, and derives the length of the stable prefix at the start of the prompt.

The result must not depend on the per-process seed `s` that Rust draws for [`HashMap`](https://doc.rust-lang.org/1.96.1/std/collections/hash/map/struct.HashMap.html) iteration, because a profile persisted by one process is read back by another. Over `N` processes producing outcomes with multiplicities `c_1..c_k`, the cross-process agreement rate is

```rust
A = sum_i c_i * (c_i - 1) / (N * (N - 1))
```

the probability that two independent processes agree, and equivalently the probability that a persisted profile satisfies the reuse gate elsewhere. `A = 1` exactly when the analysis is seed-independent, which is what \[`canonical_scores`] and \[`dominant_prefix_length`] each establish.

## Parameters

* `observations`: Prompt observations to compare.
* `thresholds`: Thresholds used for stability classification and confidence.

## Returns

A [`StabilityAnalysisResult`](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/stability/struct-stabilityanalysisresult) summarizing span-level stability.