retobs
retobs is a local-first reliability layer for retrieval pipelines. It helps you integrate observable retrieval stages, evaluate a callable, compare Runs under a local release policy, and inspect recorded query and candidate-lineage evidence. It is not an answer evaluator or a leaderboard: when identity, topology, candidates, telemetry, or ground truth are unavailable, retobs reports that limit instead of inferring a conclusion.
Install
pip install "retrieval-observatory[dashboard,mcp]"
See it work first
One command, no arguments, no API keys. It builds a regression story end to end — a Test Set, a comparison, a per-query cause, and a validated fix — then hands you a dashboard to explore it.
retobs demo
retobs serve --db .retobs/demo/results.db
Everything below is the same workflow pointed at your own code.
Integrate an existing project
Create and review a plan before any mutation. Apply consumes that reviewed plan; verify reports readiness only after it observes the declared topology, candidate evidence, and telemetry health.
retobs integrate . --phase plan --output retobs/integration-plan.json
retobs integrate . --phase apply --plan retobs/integration-plan.json
retobs integrate . --phase verify --plan retobs/integration-plan.json
Unresolved required mappings or stale file hashes block apply. The apply result lists every changed file and retains reversal information in its apply record.
Evaluate a callable
retobs evaluate mypackage.search:retrieve --queries data/queries.jsonl --qrels data/qrels.jsonl --corpus data/corpus.jsonl
Use the returned Run ID with retobs report, retobs compare, and retobs inspect-query. A comparison is valid only when its required identities align; a query diagnosis is limited to evidence actually recorded.
Gate a retrieval release
Use a local, versioned policy to make the promotion boundary explicit:
retobs integrate . --phase verify --policy retobs/release-policy.yaml
retobs compare BASELINE CANDIDATE --db .retobs/results.db --policy retobs/release-policy.yaml --format html --output artifacts/retobs-release.html --fail-on hold-or-block-or-fail
PASS proves bounded non-inferiority under the declared policy; HOLD is valid but inconclusive evidence; BLOCK is missing or invalid required evidence; and FAIL is a proven policy-critical regression. Promotion readiness and lineage-diagnosis readiness remain separate. See retrieval release decisions and the Candidate Lineage Explorer.
Investigate locally
retobs serve --db .retobs/results.db
The dashboard binds to 127.0.0.1 by default. It is unauthenticated and local-first; put it behind trusted controls before exposing it beyond loopback.
What retobs records
- Evaluation Runs, manifests, query evidence, and complete or partial operator traces.
- Production traces scoped to a service and pipeline, including candidate transitions when instrumentation provides them.
- Instrumentation health: sampling, drops, serialization failures, retries, and permanent export failures.
These are evidence contracts, not guarantees that every integration can supply every field.
Integration support
First-class integration paths are plain Python, HTTP, FastAPI, LangChain, and LlamaIndex. DSPy, Haystack, and OpenAI Agents are supported examples with narrower guarantees. See integration support and the agent runbook.
Privacy and production safety
Queries, candidates, metadata, labels, and traces may be sensitive. Redaction runs before enqueue and persistence according to the integration manifest; queue capacity, overflow policy, and sampling are explicit telemetry configuration. Read privacy and security before production use.
Documentation
- Start
- Workflow
- Concepts
- CLI, SDK, and MCP reference
- Retrieval release decisions
- Candidate Lineage Explorer
- Architecture
- Releases
License: MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file retrieval_observatory-0.5.6.tar.gz.
File metadata
- Download URL: retrieval_observatory-0.5.6.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa609de8393f1719a5d28ee4db6bd84acc5299fef094e2c2ca031e87b9547b06
|
|
| MD5 |
511f36dd0748e858b5d88735bbdddfdb
|
|
| BLAKE2b-256 |
41bda9fe120fa3979aeebad0c337a733dc5e99813d874131fd274913418e8544
|
Provenance
The following attestation bundles were made for retrieval_observatory-0.5.6.tar.gz:
Publisher:
publish.yml on AmeyaKI/retrieval-observatory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrieval_observatory-0.5.6.tar.gz -
Subject digest:
fa609de8393f1719a5d28ee4db6bd84acc5299fef094e2c2ca031e87b9547b06 - Sigstore transparency entry: 2368394527
- Sigstore integration time:
-
Permalink:
AmeyaKI/retrieval-observatory@a9904f27573324363e95997a8e25e7b189332f0c -
Branch / Tag:
refs/tags/v0.5.6 - Owner: https://github.com/AmeyaKI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a9904f27573324363e95997a8e25e7b189332f0c -
Trigger Event:
push
-
Statement type:
File details
Details for the file retrieval_observatory-0.5.6-py3-none-any.whl.
File metadata
- Download URL: retrieval_observatory-0.5.6-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbadef5a116d5c942c6c70dbfc7589e45368c8c21d5dcfad7039d51600227554
|
|
| MD5 |
659382d825e632181a2c1b1b8a05e098
|
|
| BLAKE2b-256 |
166457ddf84ff6c113fa9c726f08e5fd315eca6fb0c011b302c503cb922c0d34
|
Provenance
The following attestation bundles were made for retrieval_observatory-0.5.6-py3-none-any.whl:
Publisher:
publish.yml on AmeyaKI/retrieval-observatory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrieval_observatory-0.5.6-py3-none-any.whl -
Subject digest:
cbadef5a116d5c942c6c70dbfc7589e45368c8c21d5dcfad7039d51600227554 - Sigstore transparency entry: 2368394604
- Sigstore integration time:
-
Permalink:
AmeyaKI/retrieval-observatory@a9904f27573324363e95997a8e25e7b189332f0c -
Branch / Tag:
refs/tags/v0.5.6 - Owner: https://github.com/AmeyaKI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a9904f27573324363e95997a8e25e7b189332f0c -
Trigger Event:
push
-
Statement type: