Pre-defined alerts
Rius ships curated detectors for the failure shapes agents actually exhibit. Each has a details page with a plain-language description of exactly when it fires, a small set of configuration knobs, its attached channels, and its firing history. You cannot delete a pre-defined alert, only disable it.

Consistent Error Pattern
Errored spans are grouped by service, step, and normalized error message. A group fires when it reaches the configured number of errored spans across the configured number of distinct traces within the rolling window: the same error, in the same service and step, failing repeatedly across runs.
A single trace retrying the same step never fires on its own, and spans with an empty error message never alert.
Problems this is built to catch:
- An expired or rotated provider credential: every model call in one service starts failing with the same 401, run after run.
- A deploy that broke one step: the same
KeyErrorfrom the same tool in every run since the rollout. - A rate-limited or degraded upstream: the same 429 or timeout recurring across runs while everything else stays green.
| Knob | Default | Meaning |
|---|---|---|
| Time window | 5 minutes | The rolling window each group is measured over |
| Errored spans | at least 3 | Failures of the same error within the window |
| Distinct traces | at least 2 | Separate runs the failures must span |
| Renotify | off | Repeat the notification every N minutes while the firing is open and unacknowledged; off sends it once |
Silent Failure
Fires when a run reports success while work inside it failed: the trace’s root span finishes OK but at least one child span ended with an error. These are the failures nobody notices, because no error surfaces anywhere: the run looks successful, and the answer quietly got worse.
Problems this is built to catch:
- A search tool times out and the agent answers from its own knowledge instead of surfacing the gap.
- Retries are exhausted and the code falls back to a cached value rather than failing loudly.
- A sub-agent in a multi-agent pipeline crashes and the orchestrator ships whatever partial answer it already had.
One firing per run. Only finished traces are evaluated, so an in-flight run never fires early.
| Knob | Default | Meaning |
|---|---|---|
| Time window | 5 minutes | The rolling window finished traces are scanned over |
| Renotify | off | Repeat the notification every N minutes while the firing is open and unacknowledged; off sends it once |
Tool Loop
Fires when the same tool is called with identical parameters at least the configured number of times inside a single trace within the window. Repeated identical calls are the signature of an agent stuck in a loop: it is no longer making progress, just burning tokens. Calls count as identical when the tool name and normalized arguments match.
One firing per trace.
Problems this is built to catch:
- An agent repeating the same search with the same query because no result ever satisfies its stop condition.
- A broken tool schema: the model retries the identical call expecting a different outcome, and never gets one.
- A planner and executor cycling on the same lookup, making no progress while the token bill grows.
| Knob | Default | Meaning |
|---|---|---|
| Identical calls | at least 2 | Same tool, same parameters, inside one trace |
| Time window | 10 minutes | How far back calls within the trace are counted |
| Renotify | off | Repeat the notification every N minutes while the firing is open and unacknowledged; off sends it once |
Next steps
- Custom alerts: thresholds on cost, tokens, latency, and errors that the pre-defined set does not cover.
- Distribution channels: route firings to webhook, email, or Slack.