Skip to main content

trust-no-agent

An LLM-agent evaluation harness that proves an agent is broken even when its outputs look fine.

Two variants of the same document-QA agent ship here. They are indistinguishable by reading their answers — both are fluent, confident and well written. One of them is measurably wrong, and the point of this repository is that you cannot tell which without the harness.

git clone <repo> && cd trust-no-agent && uv sync && uv run pytest

That is the whole thing. No API key, no configuration, no network: every judge call is served from committed evidence under evals/.judge_cache/, and the run ends with a cost table showing $0.00. Expect 3 xfailed in the summary — those are v1 measured against the real calibrated thresholds (tests/test_separation_contract.py) and failing every one, marked expected because v1 is never fixed. That is the point of the repository, not a bug in the suite.

What you are looking at

app/v1_naive · app/v2_fixed the two variants — same corpus, same model, three deliberate differences
evals/component/ Ragas metrics — why is it bad? (scalar diagnostics)
evals/behavior/ DeepEval checks — pass/fail verdicts, but scored against GEval's library default (threshold=0.5), not the calibrated bars
evals/thresholds.yaml the real gate: thresholds calibrated from v1/v2's actual scored runs
tests/test_separation_contract.py the only test that reads the calibrated thresholds — v1 must miss every bar, v2 must clear all three
evals/.judge_cache/ the committed evidence, one reviewable JSON per call
tests/test_harness_integrity.py proof the harness itself can lie, and does
docs/attribution.md which of the three deliberate differences each separating metric is attributed to

CONSTITUTION.md is binding, not aspirational — read it before changing anything. docs/api-notes.md records what the pinned libraries actually do, as opposed to what their documentation claims; several entries fail silently.

Maintaining this repo

Everything below is for maintainers. A viewer never needs any of it — pytest stays the only command required to see the result.

uv run python -m evals.cli --help     # record · calibrate · compare · report
uv run ruff check . && uv run mypy .  # lint and types

A local record run only writes cache entries — it is billed, and it is the CLI's one command that reads a provider credential, but it does not open a pull request itself. In CI (.github/workflows/live.yml), record runs and is then followed by gh pr create, so the evidence arrives as a reviewable diff. Outside the CLI, two other scripts also write evidence under their own credential reads — app/smoke_check.py and evals/ops/regression_demo.py — both run by hand, never by CI. Across all of them the single-writer guarantee holds repo-wide (tests/test_one_door.py enforces it): every write goes through one sanctioned path, record just isn't the only caller of it.

Live scoring needs two independent opt-ins together — the live marker and EVAL_LIVE=1. Either alone skips, on purpose: one switch has too many plausible accidental causes, and the failure mode is spending money you did not mean to spend.

Metadata

Release files for trust-no-agent 1.0.0

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

Source distribution (sdist)

Source distribution for trust-no-agent 1.0.0
File Size Uploaded
trust_no_agent-1.0.0.tar.gz 990.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for trust-no-agent 1.0.0
File Interpreter ABI Platform
trust_no_agent-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.3 MB

Release files / trust_no_agent-1.0.0.tar.gz

Download URL trust_no_agent-1.0.0.tar.gz
Size 990.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bf643b0160363ed157fc0e19518d321adedc3b483188868af5fae2cd5b3edc3e
BLAKE2b-256 checksum
How to use checksums
83462637dfb7905d49eb19eff668c095178d80995cdd2105e00117c693007c8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / trust_no_agent-1.0.0-py3-none-any.whl

Download URL trust_no_agent-1.0.0-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
483d5d1761cc2f20eb8770f0bb13ecefc1b716777fb906f40e9c74f044628add
BLAKE2b-256 checksum
How to use checksums
d1fa7eba4178b7f5eca260ef9a5ad13ec856c806c2fe8b8731040bdcbf83a8b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.1.0

2 release files

This release

1.0.0 This release

2 release files

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