Skip to main content

Uncertainty-aware governed-delegation analytics and decision support.

Project description

minimal-oversight

PyPI CI Python 3.10+ License: MIT

A governed-delegation analytics and uncertainty-aware decision-support toolkit.

Companion package to "Minimal Oversight: Uncertainty-Aware Governance for Delegated AI Systems" (Azevedo, 2026).

Documentation | Notebooks | Changelog

What it does

Delegated AI systems route uncertain work through pipelines: one model proposes, another reviews, a tool checks, and a gate decides what ships. The design problem is no longer just accuracy; it is trust calibration under uncertainty: how much autonomy to grant, where to place oversight, what quality ceiling the system can sustain, and when intervention becomes necessary.

This package turns those questions into computable quantities:

Question What you get
Can this pipeline meet my quality target? Feasibility check: $C_\text{op}$ vs $p_\text{min}$
Where should I place review effort? Water-filling allocation via the MSO
Which nodes are most dangerous? Delegation centrality, masking index, SOTA score
How much autonomy can I safely grant? Effective autonomy buffer $B_\text{eff}$
When should humans intervene? Autonomy time $T^*_\text{auto}$ and intervention schedule
What should stop being delegated? Scope recommendations with coverage constraints

Install

pip install minimal-oversight

With framework connectors and visualization:

pip install minimal-oversight[frameworks,viz]

Quick start

From scratch

from minimal_oversight import analyze_pipeline
from minimal_oversight.models import Node, PipelineGraph, AggregationType

gen = Node("generator", sigma_skill=0.55, catch_rate=0.65)
rev = Node("reviewer",  sigma_skill=0.60, catch_rate=0.70)
merge = Node("merge",   sigma_skill=0.55, aggregation=AggregationType.PRODUCT)

pipeline = PipelineGraph([gen, rev, merge])
pipeline.add_edge("generator", "reviewer")
pipeline.add_edge("reviewer", "merge")

report = analyze_pipeline(pipeline, p_min=0.80)
print(report)

From LangGraph

from langgraph.graph import StateGraph, END

graph = StateGraph(MyState)
graph.add_node("researcher", research_fn)
graph.add_node("writer", write_fn)
graph.add_edge("researcher", "writer")
graph.add_edge("writer", END)
graph.set_entry_point("researcher")

report = analyze_pipeline(graph.compile(), p_min=0.80)

From Google ADK

from google.adk import Agent

root = Agent(name="support", model="gemini-2.0-flash", sub_agents=[
    Agent(name="billing", model="gemini-2.0-flash"),
    Agent(name="tech",    model="gemini-2.0-flash"),
])

report = analyze_pipeline(root, p_min=0.80)

From production logs

from minimal_oversight.connectors.traces import from_generic_events, to_workflow_traces

events = [
    {"task_id": "t1", "node_id": "gen", "outcome": 1, "corrected": 1, "timestamp": 0},
    {"task_id": "t1", "node_id": "rev", "outcome": 0, "corrected": 1, "timestamp": 1},
]
traces = to_workflow_traces(from_generic_events(events, corrected_field="corrected"))
report = analyze_pipeline(pipeline, p_min=0.80, traces=traces)

Architecture

                     analyze_pipeline()              Practitioner interface
              ┌──────────────────────────────┐
              │  estimation  capacity        │
              │  topology    allocation      │       Decision modules
              │  intervention  viz           │
              ├──────────────────────────────┤
              │  _formulae.py                │       Paper equations (private)
              ├──────────────────────────────┤
              │  schema   connectors/        │
              │  langgraph  adk  traces      │       Framework integration
              └──────────────────────────────┘

Modules

Module Purpose
models Node, PipelineGraph, GovernancePolicy, WorkflowTrace
estimation Infer $\sigma_\text{raw}$, $\sigma_\text{corr}$, $M^*$, catch rate, drift from logs
capacity $C_\text{op}$, $B_\text{eff}$, feasibility checks, $H_\text{crit}$
topology Motif detection, delegation centrality, conditional fragility
allocation MSO solver, scope selection, governance recommendations
intervention $T^*_\text{auto}$, intervention schedule, alerts, failure diagnosis
viz Masking dashboard, autonomy buffer, risk ranking, scope frontier
connectors LangGraph, Google ADK, LangSmith, generic trace parsers

Notebooks

# Topic Shows
01 SDLC pipeline Fan-out/merge, SOTA placement, masking
02 Customer support Chain depth, drift, diagnostic differential
03 Topology stress test All 4 motifs compared
04 LangGraph import Real StateGraph + conditional edges
05 ADK import Real Agent objects + session logs
06 Paper validation All 8 experiments from Section 3

What it is not

  • Not an agent framework — it analyzes pipelines, not builds them
  • Not a workflow orchestrator — it sits above LangGraph / ADK / CrewAI
  • Not just the paper's reproduction code — that's one notebook

It is a governed-delegation analytics and decision-support library, backed by uncertainty-aware and information-theoretic foundations but presented through practitioner questions and one-call analysis.

Citation

@article{azevedo2026minimal,
  title={Minimal Oversight: Uncertainty-Aware Governance for Delegated AI Systems},
  author={Azevedo, Carlos R. B.},
  year={2026}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

minimal_oversight-0.1.2.tar.gz (96.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

minimal_oversight-0.1.2-py3-none-any.whl (47.9 kB view details)

Uploaded Python 3

File details

Details for the file minimal_oversight-0.1.2.tar.gz.

File metadata

  • Download URL: minimal_oversight-0.1.2.tar.gz
  • Upload date:
  • Size: 96.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for minimal_oversight-0.1.2.tar.gz
Algorithm Hash digest
SHA256 92a6b3f450309dec6dabd367f9d225646eb5fe10a1d7a77573302c729bb31799
MD5 06b78ade7ae14ae3e4ba8786a5d363ad
BLAKE2b-256 393c3d92f99297fdb44a5877b2ee083dc198b9c0a51865157e16f1ed8b486634

See more details on using hashes here.

Provenance

The following attestation bundles were made for minimal_oversight-0.1.2.tar.gz:

Publisher: publish.yml on crbazevedo/delegation-lab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file minimal_oversight-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for minimal_oversight-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cf370c0d8a9b6e4e997e276ea2006915d28c090b93abc79801c47ee1fb20070f
MD5 17284ba2c63abd5df2dd04367547ac16
BLAKE2b-256 57df991a35b5c29dc3b2971b0c41d1ffbd6c1dc15529bb2fc8e9287508f5d20e

See more details on using hashes here.

Provenance

The following attestation bundles were made for minimal_oversight-0.1.2-py3-none-any.whl:

Publisher: publish.yml on crbazevedo/delegation-lab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page