Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

retobs

PyPI · Docs · Migrating from 0.6

Hosted demo: pending redeploy. The read-only dashboard at retobs-demo.happywater-562fb4f3.westus2.azurecontainerapps.io still serves the 0.6.0 databases, which predate the Investigate views; run the demo below locally until it is rebuilt. See deployment.

A relevant document goes missing somewhere in a multi-stage retrieval pipeline. Recall drops, and nobody can say which operator dropped it: the retriever never found it, a filter removed it, fusion pushed it out, or the reranker cut it below k. retobs records what every operator actually received and returned for each query, then shows, for each relevant document, where it was lost and whether that is recorded or only inferred.

Investigate: the relevant document kb:doc-guide is introduced by the lexical retriever and removed by recency_filter for query q-outage

retobs demo, baseline run: kb:doc-guide is judged relevant for q-outage, is introduced by the lexical retriever, and is removed at recency_filter (reason min_score, recorded). The dense branch never retrieved it, so that removal is its loss boundary.

Try it (no models, no keys)

pip install "retrieval-observatory[dashboard]"
retobs demo
retobs serve --db .retobs/demo/results.db     # http://127.0.0.1:4000

retobs demo evaluates a small deterministic hybrid pipeline twice: a baseline whose recency filter loses kb:doc-guide, and a validation run with the filter repaired. It prints the exact compare, inspect-document, and inspect-query commands for the two run IDs it created.

The loop

1. Connect

pip install retrieval-observatory

Then give your coding agent one request, from the repository root:

Ask your coding agent to connect retobs to this existing retrieval pipeline, run your benchmark, and open a document-flow investigation.

The agent follows the packaged runbook: plan, review, re-plan, apply, run the scenarios, verify eight capabilities, and revert if needed (agent runbook). By hand, start with:

retobs integrate . --phase plan --output retobs/integration-plan.json   # review, then apply and verify

Apply adds @observe to each operator and @trace_scope to the entrypoint; your code's return values, order, and exceptions are unchanged. To wire a pipeline yourself, see manual instrumentation.

2. Investigate

retobs evaluate app/search.py:retrieve --queries data/queries.jsonl --qrels data/qrels.jsonl \
  --corpus data/corpus.jsonl --name search --db .retobs/results.db
retobs serve --db .retobs/results.db

Open #/investigate for the run: the executed pipeline, each query's candidates, and for each document its judgment, final outcome (relevant_delivered, relevant_excluded, retained_below_cutoff, not_observed, judged_nonrelevant, unjudged, insufficient_evidence), recorded transitions, and loss boundary. Without a browser:

retobs inspect-document RUN_ID kb:doc-guide --db .retobs/results.db
retobs inspect-query RUN_ID QUERY_ID --db .retobs/results.db

Walkthrough: investigate your pipeline.

3. Audit

retobs compare BASELINE CANDIDATE --db .retobs/results.db --policy retobs/release-policy.yaml \
  --artifacts artifacts/ --fail-on hold-or-block-or-fail

One release audit (release-audit.json and a standalone release-audit.html) is shared by the CLI, SDK, MCP, dashboard (#/audit), and CI. With --fail-on hold-or-block-or-fail the exit code is the decision:

Exit Decision Meaning
0 PASS Every declared check proves non-inferiority within its tolerance.
1 FAIL A declared check proves a regression, or the failure-rate cap is exceeded.
2 BLOCK Required evidence is missing or the runs are not comparable.
3 HOLD Valid evidence, but inconclusive.
64 / 70 none Usage error / the comparison could not be produced.

Policies are local YAML (schema v3) with semantic selectors such as target: final_retrieval. On the demo, the packaged policy passes. See retrieval release decisions.

Support boundary

What has been measured: the full connect, verify, evaluate, and investigate loop runs against an installed wheel on five fixtures: a plain Python callable, a FastAPI hybrid pipeline with a gate, a LangChain retriever, a LlamaIndex retriever, and a class-based multi-module hybrid pipeline. An agent trial on an unfamiliar repository has not been recorded yet. A pipeline observed only at its final output (a remote endpoint, an uninstrumented function) supports evaluation and delivered/missed outcomes, not loss boundaries. Details: integration support and evidence limitations.

retobs is not an answer evaluator, a leaderboard, or a production monitoring system. 0.7.0 removed synthetic test-set generation, the difficulty classifier, recommendations, counterfactual replay and attribution, drift and hotspot monitoring, and tradeoff views; the migration guide lists replacements and the pinned 0.6.0 reproduction.

Privacy

Queries, candidates, metadata, judgments, and traces may be sensitive. Redaction runs before persistence. retobs serve binds to 127.0.0.1 and is unauthenticated; put it behind trusted controls before exposing it. Read privacy and security.

Documentation

License: MIT.

Metadata

Release files for retrieval-observatory 0.7.0rc3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for retrieval-observatory 0.7.0rc3
File Size Uploaded
retrieval_observatory-0.7.0rc3.tar.gz 937.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for retrieval-observatory 0.7.0rc3
File Interpreter ABI Platform
retrieval_observatory-0.7.0rc3-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / retrieval_observatory-0.7.0rc3.tar.gz

Download URL retrieval_observatory-0.7.0rc3.tar.gz
Size 937.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3ce7cdf36e25b77a1f486185ec49f288d6345a924e33303d38cffae20bddab33
BLAKE2b-256 checksum
How to use checksums
bed80f86f1112ba43b1fc14c1bdd96460f599e65d63ae808dd7bd79fc4eb4ecc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / retrieval_observatory-0.7.0rc3-py3-none-any.whl

Download URL retrieval_observatory-0.7.0rc3-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
1470cfc414d9e2188bc2b52fb54531be2ee0bc7b20a755eae3416389ba4472e2
BLAKE2b-256 checksum
How to use checksums
d818622633c214ae03cc9d12792105d247e39d1d1b960eac9f4a73fac87dd754
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page