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 AMO
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 AMO 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.1.tar.gz (96.4 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.1-py3-none-any.whl (47.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: minimal_oversight-0.1.1.tar.gz
  • Upload date:
  • Size: 96.4 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.1.tar.gz
Algorithm Hash digest
SHA256 ce0a5fceb0242d5c2f33070e849c4b048f89ce0f06b6cd9128df451a058d8f0e
MD5 1c336541b45b13b617c985431c2eb996
BLAKE2b-256 77bea6f19861bfd93bdc0bdb4d6bc1813c4bbfae4435b1e845fe81fd601b6f50

See more details on using hashes here.

Provenance

The following attestation bundles were made for minimal_oversight-0.1.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for minimal_oversight-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 088ca554ff53564ce58ef107ed552270ba3c3e704875508f0bba5d801e18d574
MD5 3ff61574090f571c501e146aae7b9e20
BLAKE2b-256 bdffd00bfe1bf7945f872faba61f65dec9fda501ca579c973ce0f812b8456877

See more details on using hashes here.

Provenance

The following attestation bundles were made for minimal_oversight-0.1.1-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