Composition
Combining monitors and protocols: concurrent(), threshold(), observe(), and the planned sequential().
WarningOutline
This page is an outline: a summary and the sections planned for it, not yet the documentation. See Getting Started for a worked example.
Overview
How several monitors and protocols combine into one sentinel. Covers what a list or mapping passed to Task(sentinel=...) resolves to, the shipped protocols that combine and threshold, how decisions are ranked, instance names and paths, and nesting. sequential(), defer_to_trusted() and resample() are planned.
Planned Sections
- What
Task(sentinel=...)resolves to: a lone protocol, a list or mapping, monitors alone - Instance names, mapping keys and paths (
llm/suspicion) - concurrent(): every child runs; the strongest decision wins (
terminate>reject>modify>escalate>continue) - threshold():
reject_atandterminate_at, as one number or per monitor and dimension - observe(): recording scores with nothing acting on them, and collecting a benign distribution
sequential([...]): an ordered chain of children that hands escalations forward, e.g.sequential([rule(), human()])(planned)defer_to_trusted()andresample()(planned)- Nesting compositions
- Writing your own composition over the runner